robots.txt

원래 검색 엔진의 작동 방식

  • 인터넷 검색엔진 배제 표준(Robots Exclusion Protocol) 이다.
  • 크롤러라는 로봇이 인터넷을 순회하면서 사이트의 정보를 수집한다.
  • 인덱서는 크롤러가 수집 한 정보를 분석한다.
  • 분석된 데이터를 기반으로 검색 엔진당 알고리즘에 따라 검색 결과를 반환한다.

robots.txt이란?

  • robots.txt는 크롤러에게 ‘크롤링 할 페이지’ 또는 ‘크롤링하지 않으려는 페이지’를 알려주는 텍스트 파일이다.
  • 그 도메인의 최상위 디렉토리에 공개된다.
  • robots.txt은 아직 권고안이라 꼭 지킬 의무는 없다.

robots.txt 형식

  • User-agent: 검색봇 이름
  • Allow : 접근 허가 설정 (구글봇에만 적용 가능)
  • Disallow: 접근 차단 설정
  • Crawl-delay: 다음 방문까지의 디레이(초)
  • Sitemap : 사이트 맵 지정

robots.txt 사용 예제

모든 검색봇에 모든 문서에 대해 접근을 허가

User-agent: *
Allow: /

‘*’(와일드카드)는 모든 로봇을 뜻하며, ‘/‘슬래시는 모든 디렉토리를 뜻한다.

모든 검색봇에 모든 문서에 대해 접근을 차단

User-agent: *
Disallow: /

특정 디렉토리의 접근을 허가

User-agent: Googlebot
Allow: /foo/bar/

특정 디렉토리의 접근을 차단

User-agent: Googlebot
Disallow: /foo/bar/

구글봇(Googlebot)만 허용하고 나머지는 모두 차단

User-agent: Googlebot
Allow: /

User-agent: *
Disallow: /

홈페이지의 디렉토리의 일부만 검색엔진에 노출

 User-agent: * 
 Disallow: /conection/ 
 Disallow: /my_conection/ 

홈페이지의 디렉토리의 일부만 검색엔진에 노출 차단

User-agent: *
Disallow: /my_page/

사이트 부하(퍼포먼스)의 관점

크롤러 순회로 인해 사이트 부하가 증가하는 경우 robots.txt에서 중요하지 않은 대량의 콘텐츠를 크롤러 순회에서 제거하여 사이트 부하를 줄이고, 중요한 콘텐츠에 대한 순회 효율을 향상시킬 수 있다.

그러면, 중요한 콘텐츠와 중요하지 않은 콘텐츠를 구별하는 것으로, SEO와 사이트 부하 측면으로도 좋을 것이다.

여기에서 중요하지 않은 콘텐츠를 살펴보면,

  • 검색엔진에 색인하지 않아도 되는 페이지
  • 가치가 낮은 콘텐츠 페이지
  • 동일한 콘텐츠의 여러 페이지
  • 사이트에 넣은 광고의 방문 페이지
  • 제한된 사람에게만 공개하고 싶은 페이지
  • 관리 시스템 파일

등이 될것이다.

보안 관점

robots.txt에 “크롤링하고 싶은 페이지” 또는 “크롤링하지 않으려는 페이지"를 설정하게 되면 제한된 사람에게만 공개하고 싶은 콘텐츠가 보여질 수 있다.

이는 robots.txt에 “관리 시스템 파일” 또는 “제한된 사람에게만 공개하고 싶은 페이지"를 설정하면 검색 엔진 검색 결과에 나타나지 않지만 robots.txt에는 공개 되고 있으므로, robots.txt에서 직접 보여지게 된다. 즉, “관리에 관한 파일"이나 “한정된 사람에게 밖에 공개하고 싶지 않은 페이지"를 알려질 수 있다는 것이다.

robots.txt로 설정하게 되면, 검색엔진의 검색결과에 표시되는 보안위험은 완화될 수 있지만, robots.txt에서 보안에 중요한 콘텐츠를 알리게 되면 보안 위험이 발생한다.

그래서, “보안적으로 중요한 관리에 관한 파일"이나 “특정의 한정된 사람에게 밖에 공개하고 싶은 페이지"는 로그인 인증이나 IP 주소 제한 등, 확실히 액세스 제한을 마련할 필요하다.

참조