Robots.txt 사양

추상

이 문서는 Google의 웹 사이트 크롤러가 공개적으로 크롤링하고 색인을 생성하는 방법을 제어 할 수있는 robots.txt 파일을 Google에서 처리하는 방법을 자세히 설명합니다. 액세스 가능한 웹 사이트.

변경된 사항

2019 년 7 월 1 일 Google은 robots.txt 프로토콜이 인터넷 표준이되기 위해 노력하고 있다고 발표했습니다. 이러한 변경 사항은이 문서에 반영됩니다.

변경 사항 목록

변경된 사항은 다음과 같습니다.

  • 언어가 인터넷 초안에 따라 다르기 때문에이 문서에서 “요구 사항 언어”섹션을 제거했습니다.
  • Robots.txt는 이제 모든 URI 기반 프로토콜을 허용합니다.
  • Google은 최소 5 개의 리디렉션 홉을 따릅니다. 아직 가져온 규칙이 없기 때문에 리디렉션이 최소 5 개 홉 동안 추적되며 robots.txt가 발견되지 않으면 Google은이를 robots.txt에 대해 404로 처리합니다. 2xx (프레임, 자바 스크립트 또는 메타 새로 고침 유형 리디렉션)를 반환하는 HTML 콘텐츠를 기반으로하는 robots.txt 파일의 논리적 리디렉션 처리는 권장되지 않으며 첫 페이지의 콘텐츠는 적용 가능한 규칙을 찾는 데 사용됩니다.
  • 5xx의 경우 30 일 이상 robots.txt에 연결할 수없는 경우 robots.txt의 마지막 캐시 사본이 사용되거나 사용할 수없는 경우 Google은 크롤링 제한이 없다고 가정합니다.
  • Google은 실패한 요청이나 불완전한 데이터를 서버 오류로 취급합니다.
  • “레코드”는 이제 적절하게 “라인”또는 “규칙”이라고합니다.
  • Google은 “<field> 간단한 오류 또는 오타가있는 요소 (예 : “user-agent”대신 “useragent”).
  • Google은 현재 크기 제한을 500KiB (키비 바이트)로 적용하고이 제한 이후의 콘텐츠는 무시합니다.
  • RFC5234에 따라 유효한 ABNF (Augmented Backus-Naur Form)가되고 robots.txt의 UTF-8 문자를 포함하도록 공식 구문이 업데이트되었습니다.
  • “그룹 정의 업데이트 “더 짧고 더 간결하게 만들었습니다. 빈 그룹에 대한 예를 추가했습니다.
  • 지원 중단 된 Ajax 크롤링 체계에 대한 참조를 제거했습니다.

기본 정의

정의
크롤러 크롤러는 웹 사이트를 크롤링하는 서비스 또는 에이전트입니다. 일반적으로 크롤러입니다. 자동으로 표준 웹 브라우저로 액세스 할 수있는 콘텐츠를 노출하는 호스트의 알려진 URL에 재귀 적으로 액세스합니다. 새 URL이 발견되면 (기존 크롤링 된 페이지의 링크 또는 Sitemap 파일과 같은 다양한 수단을 통해) 동일한 방식으로 크롤링됩니다.
사용자- agent 특정 크롤러 또는 크롤러 집합을 식별하는 수단
지시 사항 크롤러에 적용 가능한 가이드 라인 목록 또는 robots.txt 파일에 명시된 크롤러 그룹
URL RFC 1738에 정의 된 Uniform Resource Locator입니다.
Google 관련 이러한 요소는 Google의 robots.txt 구현에만 해당되며 다른 당사자와 관련이 없을 수 있습니다.

적용 성

이 문서에 명시된 가이드 라인은 Google의 모든 자동화 크롤러가 따릅니다. 에이전트가 사용자를 대신하여 URL에 액세스합니다 (예 : 번역, 수동 구독 피드, 멀웨어 분석).이 가이드 라인은 적용 할 필요가 없습니다.

Fi 파일 위치 및 유효 범위

robots.txt 파일은 적절한 프로토콜과 포트 번호를 통해 액세스 할 수있는 호스트의 최상위 디렉토리에 있어야합니다. robots.txt에 일반적으로 허용되는 프로토콜은 모두 URI 기반이며, 특히 Google 검색 (예 : 웹 사이트 크롤링)의 경우 ‘http’및 ‘https’가 있습니다. http 및 https에서 robots.txt 파일은 HTTP 비 조건부 GET 요청을 사용하여 가져옵니다.

Google 관련 : Google은 FTP 사이트의 robots.txt 파일도 허용하고 따릅니다. FTP 기반 robots.txt 파일은 익명 로그인을 사용하여 FTP 프로토콜을 통해 액세스합니다.

robots.txt 파일에 나열된 지시문은 파일이 호스팅되는 호스트, 프로토콜 및 포트 번호에만 적용됩니다. .

유효한 robots.txt URL의 예

HTTP 결과 코드 처리

일반적으로 robots.txt 파일을 가져올 때 다음과 같은 세 가지 결과가 있습니다.

  • 전체 허용 : 모든 콘텐츠를 크롤링 할 수 있습니다.
  • 전체 금지 : 콘텐츠를 크롤링 할 수 없습니다.
  • 조건부 허용 : robots.txt의 명령어에 따라 특정 콘텐츠의 크롤링 기능이 결정됩니다.
HTTP 결과 코드 처리
2xx (성공) 성공 결과가 “조건부 허용”임을 나타내는 HTTP 결과 코드 크롤링
3xx (리디렉션) Google은 HTTP / 1.0에 대해 RFC 1945에 정의 된대로 5 개 이상의 리디렉션 홉을 따른 다음 중지하고이를 404로 처리합니다. . robots.txt 리디렉션을 허용되지 않는 URL로 처리하는 것은 권장되지 않습니다. 아직 가져온 규칙이 없기 때문에 리디렉션이 최소 5 개 홉 동안 추적되며 robots.txt를 찾을 수없는 경우 Google은이를 robots.txt에 대해 404로 처리합니다. 2xx (프레임, 자바 스크립트 또는 메타 새로 고침 유형 리디렉션)를 반환하는 HTML 콘텐츠를 기반으로하는 robots.txt 파일의 논리적 리디렉션 처리는 권장되지 않으며 첫 페이지의 콘텐츠는 적용 가능한 규칙을 찾는 데 사용됩니다.
4xx (클라이언트 오류) 모든 4xx 오류는 동일한 방식으로 처리되며 유효한 robots.txt 파일이 없다고 가정합니다. 제한이 없다고 가정합니다. 이는 크롤링에 대한 “전체 허용”입니다.
5xx (서버 오류)

서버 오류가 표시됨 크롤링을 ‘완전히 허용하지 않음’으로 만드는 일시적인 오류입니다. 요청은 서버 오류가 아닌 HTTP 결과 코드를 얻을 때까지 재 시도됩니다. 503 (서비스를 사용할 수 없음) 오류는 상당히 자주 재 시도합니다. robots.txt가 다음과 같은 경우 30 일 이상 도달 할 수없는 경우 robots.txt의 마지막 캐시 사본이 사용됩니다. 사용할 수없는 경우 Google은 크롤링 제한이 없다고 가정합니다. 크롤링을 일시적으로 중지하려면 503 HTTP 결과 코드를 제공하는 것이 좋습니다.

Google 관련 : 누락 된 페이지에 대해 404 대신 5xx를 반환하도록 사이트가 잘못 구성되었다고 판단되면 해당 사이트의 5xx 오류를 404로 처리합니다.

실패 요청 또는 불완전한 데이터 시간 초과, 잘못된 응답, 연결 재설정 또는 중단, HTTP 청크 오류와 같은 DNS 또는 네트워킹 문제로 인해 가져올 수없는 robots.txt 파일의 처리는 다음과 같이 처리됩니다. 서버 오류입니다.
캐싱 robots.txt 콘텐츠는 일반적으로 최대 24 시간 동안 캐시되지만 캐시 된 파일을 새로 고치는 상황에서는 더 오래 캐시 될 수 있습니다. 버전이 불가능합니다 (예 : 시간 초과 또는 5xx 오류로 인해). 캐시 된 응답은 다른 크롤러가 공유 할 수 있습니다. Google은 max-age Cache-Control HTTP 헤더에 따라 캐시 수명을 늘리거나 줄일 수 있습니다.

파일 형식

예상 파일 형식은 UTF-8로 인코딩 된 일반 텍스트입니다. 파일은 CR, CR / LF 또는 LF로 구분 된 행으로 구성됩니다.

유효한 행만 고려됩니다. 다른 모든 내용은 무시됩니다. 예를 들어 결과 문서가 HTML 페이지 인 경우 유효한 텍스트 행만 고려되고 나머지는 경고 나 오류없이 삭제됩니다.

문자 인코딩이 사용되는 경우 문자가 사용되는 경우 UTF-8의 하위 집합이 아니므로 파일 내용이 잘못 구문 분석 될 수 있습니다.

robots.txt 파일의 시작 부분에있는 선택적 유니 코드 BOM (바이트 순서 표시)은 무시됩니다.

유효한 각 줄은 필드, 콜론 및 값으로 구성됩니다. 공백은 선택 사항이지만 가독성을 높이기 위해 권장됩니다. 주석은 “#”문자를 사용하여 파일의 모든 위치에 포함될 수 있습니다. 주석 시작 후 줄 끝까지의 모든 내용은 주석으로 처리되고 무시됩니다. 일반 형식은 <field>:<value><#optional-comment>입니다. 줄 시작과 끝의 공백은 무시됩니다.

<field> 요소는 대소 문자를 구분하지 않습니다. < value > 요소는 < 필드에 따라 대소 문자를 구분할 수 있습니다. > 요소.

간단한 오류나 오타가있는 <field> 요소 처리 (예 : “대신”useragent ” user-agent “)는 지원되지 않습니다.

크롤러 당 최대 파일 크기를 적용 할 수 있습니다. 최대 파일 크기 이후의 콘텐츠는 무시됩니다. Google은 현재 500KiB (키비 바이트)의 크기 제한을 적용합니다. robots.txt 파일의 크기를 줄이려면 robots.txt 파일의 크기가 커지는 명령어를 통합하세요. 예를 들어, 제외 된 자료를 별도의 디렉토리에 배치하십시오.

형식 구문 / 정의

다음은 RFC 5234에 설명 된 ABNF (Augmented Backus-Naur Form) 설명입니다.

줄 및 규칙 그룹화

h2>

하나 이상의 규칙이 뒤 따르는 하나 이상의 user-agent 행. 그룹은 user-agent 줄 또는 파일 끝으로 종료됩니다. 마지막 그룹에는 규칙이 없을 수 있습니다. 즉, 모든 것을 암시 적으로 허용합니다.

예제 그룹 :

user-agent: adisallow: /cuser-agent: bdisallow: /duser-agent: euser-agent: fdisallow: /guser-agent: h

4 개의 개별 그룹이 지정되어 있습니다. :

  • “a”에 대해 하나의 그룹
  • “b”에 대해 하나의 그룹
  • “e”및 “f”에 대해 하나의 그룹
  • “h”에 대한 하나의 그룹

마지막 그룹 (그룹 “h”)을 제외하고 각 그룹에는 고유 한 그룹 구성원 행이 있습니다. 마지막 그룹 (그룹 “h”)은 비어 있습니다.가독성을 높이기 위해 공백과 빈 줄을 선택적으로 사용합니다.

사용자 에이전트의 우선 순위

특정 크롤러에 대해 하나의 그룹 만 유효합니다. 크롤러는 여전히 일치하는 가장 구체적인 사용자 에이전트가있는 그룹을 찾아 올바른 라인 그룹을 판별해야합니다. 다른 모든 그룹은 크롤러에서 무시됩니다. 사용자 에이전트는 대소 문자를 구분합니다. 일치하지 않는 모든 텍스트는 무시됩니다 (예 : googlebot/1.2googlebot*는 모두 googlebot). robots.txt 파일 내의 그룹 순서는 관련이 없습니다.

특정 사용자 에이전트에 대해 둘 이상의 그룹이 선언 된 경우 특정 사용자 에이전트에 적용 할 수있는 그룹의 모든 규칙이 단일 그룹으로 결합됩니다.

예 1

다음 robots.txt 파일 가정 :

 user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3) 

크롤러가 관련 그룹 :

크롤러 당 팔로우하는 그룹
Googlebot 뉴스 다음 그룹은 그룹 1입니다. 가장 구체적인 그룹 만 따르고 나머지는 모두 무시합니다.
Googlebot (웹) 다음 그룹은 그룹 3입니다.
Googlebot 이미지 이어지는 그룹은 그룹 3입니다. 특정 googlebot-images 그룹이 없으므로보다 일반적인 그룹을 따릅니다. .
Googlebot 뉴스 (이미지 크롤링시) > 다음 그룹은 그룹 1입니다. 이러한 이미지는 Googlebot 뉴스에서 크롤링되므로 Googlebot 뉴스 그룹 만 추적됩니다.
Otherbot (웹) 팔로우 한 그룹은 그룹 2입니다.
Otherbot (뉴스) 팔로우 한 그룹은 그룹 2입니다. 관련 크롤러, 구체적으로 일치하는 경우에만 유효합니다.

예 2

다음 robots.txt 파일 가정 :

 user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp 

크롤러가 특정 사용자 에이전트와 관련된 그룹을 병합하는 방법입니다.

 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots 

Google의 크롤러 및 사용자 에이전트 문자열도 참조하세요.

그룹 구성원 규칙

표준 전용 그룹 구성원 규칙은이 섹션에서 다룹니다. 이러한 규칙은 크롤러에 대한 “지시문”이라고도합니다. 이러한 지시문은 directive: 형식으로 지정되며 여기서 는 선택 사항입니다. 기본적으로 지정된 크롤러에 대한 크롤링에는 제한이 없습니다. 가없는 지시어는 무시됩니다.

지정된 경우 값은 robots.txt 파일을 가져온 웹 사이트의 루트 (동일한 프로토콜, 포트 번호, 호스트 및 도메인 이름 사용) 루트를 지정하려면 경로 값이 “/”로 시작해야합니다. 경로는 대소 문자를 구분합니다. 자세한 내용은 아래 “경로 값을 기반으로 URL 일치”섹션에서 확인할 수 있습니다.

disallow

disallow 지시문은 다음과 같은 경로를 지정합니다. 지정된 크롤러가 액세스해서는 안됩니다. 경로를 지정하지 않으면 지시문이 무시됩니다.

사용법 :

disallow: 

허용

allow 지시문은 지정된 크롤러가 액세스 할 수있는 경로를 지정합니다. 경로를 지정하지 않으면 지시문이 무시됩니다.

사용 :

allow: 

경로 값을 기반으로 한 URL 일치

경로 값은 사이트의 특정 URL에 규칙이 적용되는지 여부를 결정하는 기준으로 사용됩니다. 와일드 카드를 제외하고 경로는 URL의 시작 (및 동일한 경로로 시작하는 모든 유효한 URL)을 일치시키는 데 사용됩니다. 경로의 7 비트가 아닌 ASCII 문자는 UTF-8 문자 또는 RFC 3986에 따라 백분율 이스케이프 된 UTF-8 인코딩 문자로 포함될 수 있습니다.

Google, Bing 및 기타 주요 검색 엔진은 경로 값에 대한 제한된 형식의 “와일드 카드”. 다음과 같습니다.

  • *는 0 개 이상의 유효한 문자 인스턴스를 지정합니다.
  • $는 URL의 끝을 지정합니다.

Google에서 지원하는 그룹 구성원이 아닌 행

Google, Bing 및 기타 주요 검색 엔진은 sitemap, sitemaps.org에서 정의합니다.

사용법 :

sitemap: 

는 Sitemap, Sitemap 색인 파일 또는 이에 상응하는 URL을 가리 킵니다. URL은 robots.txt 파일과 동일한 호스트에 있지 않아도됩니다. 여러 sitemap 항목이있을 수 있습니다. 그룹 구성원이 아닌 행으로서, 이는 특정 사용자 에이전트에 연결되지 않으며 허용되지 않는 한 모든 크롤러가 뒤따를 수 있습니다.

그룹 구성원 행의 우선 순위

그룹 구성원 수준, 특히 allow 및 지시문은 항목의 길이를 기반으로하는 가장 구체적인 규칙이 덜 구체적인 (짧은) 규칙보다 우선합니다. 와일드 카드가있는 규칙을 포함하여 충돌하는 규칙의 경우 가장 덜 제한적인 규칙이 사용됩니다.

robots.txt 마크 업 테스트

Google은 robots.txt 마크 업 테스트를위한 두 가지 옵션을 제공합니다.

p>

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다