Google의 자동화된 크롤러는 로봇 제외 프로토콜(REP)을 지원합니다. 즉, 사이트를 크롤링하기 전에 Google 크롤러는 사이트의 robots.txt 파일을 다운로드하고 파싱하여 사이트에서 크롤링할 수 있는 부분에 관한 정보를 추출합니다. REP는 사용자가 제어하는 Google 크롤러(예: 피드 구독)나 사용자 안전을 강화하는 데 사용되는 크롤러(예: 멀웨어 분석)에는 적용되지 않습니다. Show
이 페이지에서는 Google의 REP 해석에 관해 설명합니다. 원래 표준에 관해서는 RFC 9309를 확인하세요. robots.txt 파일이란 무엇인가요?크롤러가 사이트의 섹션에 액세스하지 못하도록 하려면 적절한 규칙으로 robots.txt 파일을 만들면 됩니다. robots.txt 파일은 어떤 크롤러가 사이트의 어느 부분에 액세스할 수 있는지에 관한 규칙이 포함된 간단한 텍스트 파일입니다. 예를 들어, example.com의 robots.txt 파일은 다음과 같을 수 있습니다. # This robots.txt file controls crawling of URLs under https://example.com. # All crawlers are disallowed to crawl files in the "includes" directory, such # as .css, .js, but Google needs them for rendering, so Googlebot is allowed # to crawl them. User-agent: * Disallow: /includes/ User-agent: Googlebot Allow: /includes/ Sitemap: https://example.com/sitemap.xml robots.txt를 처음 사용한다면 robots.txt 소개부터 시작하세요. robots.txt 파일 만들기 팁과 자주 묻는 질문(FAQ)과 답변에 관한 광범위한 목록도 있습니다. 파일 위치 및 유효성 범위robots.txt 파일은 지원되는 프로토콜에서 사이트의 최상위 디렉터리에 있어야 합니다. robots.txt 파일의 URL은 다른 URL에서와 같이 대소문자를 구분합니다. Google 검색의 경우 지원되는 프로토콜은 HTTP, HTTPS, FTP입니다. HTTP와 HTTPS에서 크롤러는 HTTP 비조건부 disallow: [path]7 요청으로 robots.txt 파일을 가져옵니다. FTP에서 크롤러는 익명 로그인을 사용하여 표준 disallow: [path]8 명령어를 사용합니다. robots.txt 파일에 나열된 규칙은 robots.txt 파일이 호스팅되는 호스트와 프로토콜, 포트 번호에만 적용됩니다. 유효한 robots.txt URL의 예다음 표에는 robots.txt URL의 예와 유효한 URL 경로가 나와 있습니다. 첫 번째 열에는 robots.txt 파일의 URL이 포함되고 두 번째 열에는 robots.txt 파일이 적용되거나 적용되지 않는 도메인이 포함됩니다. robots.txt URL 예disallow: [path]9 일반적인 경우로, 다른 하위 도메인이나 프로토콜, 포트 번호에는 유효하지 않습니다. 같은 호스트와 프로토콜, 포트 번호의 모든 하위 디렉터리에 있는 모든 파일에는 유효합니다. 유효함:
allow: [path]5 하위 도메인의 robots.txt는 해당 하위 도메인에서만 유효합니다. 유효함: allow: [path]6 유효하지 않음:
sitemap: [absoluteURL]0유효한 robots.txt 파일이 아닙니다. 크롤러는 하위 디렉터리의 robots.txt 파일은 확인하지 않습니다. sitemap: [absoluteURL]1 IDN은 punycode 버전과 같습니다. RFC 3492도 참고하세요. 유효함:
유효하지 않음: allow: [path]6 sitemap: [absoluteURL]5 유효함: sitemap: [absoluteURL]6 유효하지 않음: allow: [path]3 sitemap: [absoluteURL]8 호스트 이름으로 IP 주소를 사용한 robots.txt는 이 IP 주소를 호스트 이름으로 크롤링하는 경우에만 유효합니다. 이러한 IP 주소에 호스팅된 모든 웹사이트에서 자동으로 유효하지 않습니다. 하지만 robots.txt 파일을 공유할 수 있으며 이 경우 공유된 호스트 이름으로 사용할 수 있습니다. 유효함: sitemap: [absoluteURL]9 유효하지 않음: allow: [path]3 (212.96.82.21에 호스팅된 경우도 포함) user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml1 표준 포트 번호(HTTP: user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml2, HTTPS: user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml3, FTP: user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml4)는 기본 호스트 이름과 같습니다. 유효함:
유효하지 않음: user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml7 user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml8 비표준 포트 번호의 robots.txt 파일은 이러한 포트 번호를 통해 사용할 수 있는 콘텐츠에서만 유효합니다. 유효함: user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml9 유효하지 않음: allow: [path]3 오류 및 HTTP 상태 코드 처리robots.txt 파일을 요청할 때 서버 응답의 HTTP 상태 코드는 Google 크롤러에서 robots.txt 파일을 사용하는 방식에 영향을 미칩니다. 다음 표는 Googlebot이 다양한 HTTP 상태 코드에 맞게 robots.txt 파일을 처리하는 방식을 요약한 것입니다. 오류 및 HTTP 상태 코드 처리user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h1성공을 알리는 HTTP 상태 코드는 Google 크롤러가 서버에서 제공한 robots.txt 파일을 처리하도록 합니다. user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h2 Google에서는 RFC 1945에 정의된 대로 5개 이상의 리디렉션 홉을 따른 다음 중지하고 이를 robots.txt의 user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h3로 처리합니다. 이는 리디렉션 체인의 허용되지 않는 URL에도 적용됩니다. 크롤러가 리디렉션으로 인해 규칙을 가져올 수 없기 때문입니다. Google은 robots.txt 파일의 논리적 리디렉션(프레임, 자바스크립트, 메타 새로고침 유형 리디렉션)을 따르지 않습니다. user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h4 Google 크롤러는 user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h5를 제외한 모든 user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h6 오류를 유효한 robots.txt 파일이 없는 것처럼 처리합니다. 즉, Google은 크롤링 제한이 없다고 가정합니다.크롤링 속도를 제한하기 위해 user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h7 및 user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h8 상태 코드를 사용하지 마세요. user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h5를 제외한 user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h6 상태 코드는 크롤링 속도에 영향을 미치지 않습니다. 크롤링 속도를 제한하는 방법 알아보기 user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)1 서버가 Google의 robots.txt 요청에 명확한 응답을 제공할 수 없으므로 Google에서는 사이트가 완전히 허용되지 않는 것처럼 일시적으로 user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)2 및 user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h5 서버 오류를 해석합니다. Google은 서버 오류가 아닌 HTTP 상태 코드를 가져올 때까지 robots.txt 파일을 크롤링하려고 합니다. user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)4 오류로 인해 재시도가 상당히 빈번하게 발생합니다. robots.txt에 30일 넘게 연결할 수 없으면 Google은 마지막으로 캐시된 robots.txt 사본을 사용합니다. 사용할 수 없는 경우, Google은 크롤링 제한이 없다고 가정합니다. 크롤링을 일시적으로 정지해야 하면 사이트의 모든 URL에 user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)5 HTTP 상태 코드를 제공하는 것이 좋습니다. 누락된 페이지와 관련하여 user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h3 상태 코드가 아닌 user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)2를 반환하도록 사이트가 잘못 구성되었다고 Google이 판단할 수 있는 경우 사이트의 user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)2 오류를 user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h3로 처리합니다. 예를 들어 user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)2 상태 코드를 반환하는 페이지의 오류 메시지가 '페이지를 찾을 수 없음'이라면 이 상태 코드를 user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp1로 해석합니다.기타 오류시간 초과, 잘못된 응답, 연결 재설정/중단, HTTP 청킹 오류와 같은 DNS 또는 네트워크 문제로 인해 가져올 수 없는 robots.txt 파일은 서버 오류로 처리됩니다. 캐싱Google은 일반적으로 robots.txt 파일의 콘텐츠를 최대 24시간 동안 캐시하지만 캐시된 버전을 새로고침할 수 없는 때(예: 시간 초과나 user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)2 오류로 인해)는 더 오래 캐시할 수도 있습니다. 캐시된 응답은 다른 크롤러에 의해 공유될 수 있습니다. Google은 max-age Cache-Control HTTP 헤더를 기반으로 하여 캐시 기간을 늘리거나 줄일 수 있습니다. 파일 형식robots.txt 파일은 UTF-8로 인코딩된 일반 텍스트 파일이어야 하고 행은 user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp3이나 user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp4, user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp5로 구분해야 합니다. Google은 robots.txt 파일 시작 부분의 유니코드 바이트 순서 표시(BOM)를 비롯하여 robots.txt 파일의 잘못된 행을 무시하고 유효한 행만 사용합니다. 예를 들어 다운로드한 콘텐츠가 robots.txt 규칙이 아닌 HTML이면 Google은 콘텐츠를 파싱하고 규칙을 추출하며 나머지는 모두 무시하려고 합니다. 마찬가지로 robots.txt 파일의 문자 인코딩이 UTF-8이 아니면 Google은 UTF-8 범위에 속하지 않는 문자를 무시할 수 있으므로 robots.txt 규칙이 무효화될 수 있습니다. 현재 Google은 robots.txt 파일 크기를 500키비바이트(KiB)로 제한합니다. 최대 파일 크기를 넘는 콘텐츠는 무시됩니다. robots.txt 파일이 너무 커질 수 있는 규칙을 통합하면 robots.txt 파일 크기를 줄일 수 있습니다. 예를 들어, 제외된 자료를 별도의 디렉터리에 배치합니다. 구문유효한 robots.txt 행은 필드와 콜론, 값으로 구성됩니다. 공백은 선택사항이지만 가독성 향상을 위해 사용하는 것이 좋습니다. 행의 시작과 끝에 있는 공백은 무시됩니다. 주석을 포함하려면 주석 앞에 user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp6 문자를 붙입니다. user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp6 문자 다음에 오는 모든 내용은 무시됩니다. 일반적인 형식은 user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp8입니다. Google에서 지원하는 필드는 다음과 같습니다.
user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots0 및 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots1 필드는 규칙 또는 지시어이라고도 합니다. 규칙은 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots5 형식으로 지정되며, 여기에서 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots6는 선택사항입니다. 기본적으로 지정된 크롤러에 관한 크롤링의 제한은 없습니다. 크롤러는 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots6가 없는 규칙을 무시합니다. 지정되는 경우 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots6 값은 같은 프로토콜과 포트 번호, 호스트, 도메인 이름을 사용하여 robots.txt 파일을 가져온 웹사이트의 루트를 기준으로 합니다. 경로값은 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots9 기호로 시작하여 루트를 지정해야 하고 값은 대소문자를 구분합니다. 경로값에 기반한 URL 일치 자세히 알아보기 user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp 9user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp9 행은 적용되는 크롤러 규칙을 식별합니다. robots.txt 파일에서 사용할 수 있는 user-agent 문자열의 전체 목록은 Google의 크롤러 및 user-agent 문자열을 참고하세요. user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp9 행의 값은 대소문자를 구분하지 않습니다. user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots 1user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots1 규칙은 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots1 규칙이 그룹화된 user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp9 행으로 식별된 크롤러가 액세스하면 안 되는 경로를 지정합니다. 크롤러는 경로가 없는 규칙을 무시합니다. Google은 크롤링이 허용되지 않는 페이지의 콘텐츠 색인을 생성할 수 없지만 여전히 URL의 색인을 생성하여 스니펫 없이 검색결과에 표시할 수 있습니다. 색인 생성 차단 방법 알아보기 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots1 규칙 값은 대소문자를 구분합니다. 사용: disallow: [path] user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots 0user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots0 규칙은 지정된 크롤러가 액세스할 수 있는 경로를 지정합니다. 경로를 지정하지 않으면 규칙이 무시됩니다. user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots0 규칙 값은 대소문자를 구분합니다. 사용: allow: [path] user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots 2Google, Bing, 기타 주요 검색엔진에서는 sitemaps.org에 정의된 대로 robots.txt의 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots2 필드를 지원합니다. user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots2 필드의 값은 대소문자를 구분합니다. 사용: sitemap: [absoluteURL] disallow: [path]04 행은 사이트맵 또는 사이트맵 색인 파일의 위치를 가리킵니다. 프로토콜과 호스트를 비롯하여 정규화된 URL이어야 하고 URL로 인코딩되지 않아도 됩니다. URL은 robots.txt 파일과 같은 호스트에 있지 않아도 됩니다. 여러 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots2 필드를 지정할 수 있습니다. 사이트맵 필드는 특정 사용자 에이전트와 연결되지 않고 크롤링이 허용되는 경우 모든 크롤러가 따를 수 있습니다. 예: user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml 행 및 규칙 그룹화각 크롤러에 user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp9 행을 반복하여 여러 사용자 에이전트에 적용되는 규칙을 그룹화할 수 있습니다. 예: user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h 이 예에는 네 가지 고유한 규칙 그룹이 있습니다.
그룹에 관한 기술적 설명은 REP 섹션 2.1을 참고하세요. 사용자 에이전트 우선순위특정 크롤러에 하나의 그룹만 유효합니다. Google 크롤러는 robots.txt 파일에서 크롤러의 사용자 에이전트와 일치하는 가장 구체적인 사용자 에이전트가 있는 그룹을 찾아서 올바른 규칙 그룹을 결정합니다. 다른 그룹은 무시됩니다. 일치하지 않는 모든 텍스트는 무시됩니다. 예를 들어 disallow: [path]07와 disallow: [path]08은 모두 disallow: [path]09과 같습니다. robots.txt 파일 내 그룹의 순서는 관련이 없습니다. 사용자 에이전트에 두 개 이상의 특정 그룹이 선언된 경우 특정 사용자 에이전트에 적용되는 그룹의 모든 규칙이 내부적으로 하나의 그룹에 결합됩니다. 사용자 에이전트 특정 그룹과 전역 그룹( disallow: [path]10)은 결합되지 않습니다. 예
|