Robots.txt

jeong dain·2022년 9월 6일
2

Robots.txt 란?

웹사이트에 웹 크롤러 같은 로봇들의 접근을 제어하기 위한 규약

  • 1994년 6월에 만들어진 로봇 배제 규약이나 권고사항이므로 지켜야할 의무는 없음

검진엔진들의 인덱싱 목적으로 크롤러가 사용될 때, robots.tsx 에 ‘안내문 형식’으로 특정 경로에 대한 크롤링을 자제해 줄 것을 권고하는 것. 보통 서버의 트래픽이 한정되어있어 과부하를 방지하거나, 개인 정보가 들어있는 사이트들이 검색엔진에 노출을 원하지 않을 경우 사용된다.

크롤링이란?


웹페이지의 내용을 가져오는 것. 스크래핑(Scraping)이라고도 한다.

검색어에 대한 출력 페이지가 많아지면서 검색 엔진 사이트들이 검색 속도를 위해 robot 이라는 프로그램을 만들어서 자동으로 웹 페이지들을 크롤링하는 방법을 사용

  • 책, 논문, 사진등의 자료 크롤링 시 저작권에 주의해야 한다.
  • 크롤링 하는 로봇 프로그램이 웹 사이트에 방문하면 /robots.txt 파일을 먼저 찾아서 읽고, 해당 규약에 맞춰 내용을 수집하게 된다

대표적인 로봇 종류


이름User-Agent
GoogleGooglebot
Google imageGooglebot-image
MsnMSNBot
NaverYeti
DaumDaumoa
BingBingbot
DuckDuckGoDuckDuckBot
Nate

사용 방법


⭐ 폴더명 끝에 / 가 없을 경우 없을 경우 확장자가 없는 파일로 인식하므로 반드시 붙여줘야 한다.

  • 모든 문서에 대한 접근 허가(사실상 의미X)
User-agent: *
Allow: /
  • 모든 무선에 대한 접근 차단
    • robots.txt 파일에는 최소 한 개 이상의 Disallow 필드가 있어야 한다.
    • Disallow 값을 비워 둘 경우 모든 하위 경로에 대한 접근 허용
User-agent: *
Disallow: /
  • 모든 문서에 대해 접근을 차단하고, 첫 페이지(루트 페이지)에 대해서만 허가
User-agent: *
Disallow: /
Allow : /$
  • 구글봇 차단 시
User-agent: Googlebot 
Allow: /foo/bar/  특정 디렉토리 접근 허가
Disallow: /foo/bar/  특정 디렉토리의 접근을 차단
Disallow: /help  /help.html 과 /help/index.html 둘 다 차단
Disallow: /help/  /help.html 허용, /help/index.html 차단
  • 특정 페이지 차단
    • /private-image, /private-video 등을 차단
User-agent: Yeti
Disallow: /private*/
  • 사이트맵 표시
    • 웹사이트의 콘텐츠가 검색엔진에게 더 잘 발견되게 한다
Sitemap: http://www.example.com/sitemap.xml 전체 절대경로 URL 표기
  • 파라미터 차단
/?hauth.start=Yahoo&hauth.time=1405615860
Disallow: /*?hauth.start=*&hauth.time=*

차단 페이지


  • 로그인이 필요한 페이지 차단
    • 페이지에 접속했을 때 로그인 페이지로 넘어가게되면 99% 이탈하는 경우가 많은데, 이탈률이 높은 페이지는 구글에서 랭킹을 하락시키기 때문에 이런 경우를 차단해야 한다.

중요


robots.txt 파일을 사용하여 중요한 것을 숨기기X
→ 중요한 정보는 반드시 보안 암호 뒤에 넣거나 웹에서 완전히 빼야한다

로봇 메타 태그


  • robots.txt 에 액세스를 허용하지 않아도 다른 사이트에서 연결될 경우 구글에서 색인이 가능
    → URL 주소를 포함한 페이지의 앵커 텍스트와 기타 정보가 노출될 수 있음
  • meta 태그를 페이지 상단에 추가하여 해당 페이지는 색인되지 않도록 설정
    • … 안에 태그
<meta name="robots" content="index,nofollow"> // 색인 대상O, 페이지 내 링크 수집X
<meta name="robots" content="noindex,follow"> // 색인 대상X, 페이지 내 링크 수집O
<meta name="robots" content="noindex,nofollow"> // 색인 대상X, 페이지 내 링크 수집X
<meta name="googlebot" content="noindex, nofollow"> // 구글에서만 사이트 노출X
profile
Web Frontend Developer #TypeScript #React #NextJS🤸‍♀️

0개의 댓글