Robots.txt 파일에 대한 심층 가이드
게시 됨: 2020-08-10robots.txt는 사이트 검색 엔진에서 크롤링해야 하는 영역과 무시해야 하는 영역을 제어하는 데 도움이 되도록 웹사이트에 추가할 수 있는 매우 강력한 파일입니다. robots.txt를 정기적으로 검토하여 최신 상태인지 확인하고 가능하면 모니터링 도구를 사용하여 변경 사항이 발생할 때 알림을 받는 것이 중요합니다.
Semetrical에서는 기술 SEO 서비스 제공의 일환으로 클라이언트 웹사이트의 기술 감사를 수행할 때 차단되는 경로가 있어야 하는지 확인하기 위해 클라이언트의 robots.txt 파일을 감사합니다. 또한 SEO 팀이 중복과 같은 기술적 SEO 감사 프로세스의 일부로 문제를 발견하면 새로운 robots.txt 규칙이 작성되어 파일에 추가될 수 있습니다.
robots.txt는 중요한 파일이므로 궁극적으로 그것이 무엇인지, 누군가가 그것을 사용하는 이유 및 규칙을 작성할 때 발생할 수 있는 일반적인 함정을 다루는 가이드를 마련했습니다.
로봇 txt 파일이란 무엇입니까?
robots.txt 파일은 웹사이트를 방문할 때 크롤러가 호출하는 첫 번째 포트입니다. 기본적으로 웹 크롤러에게 사이트의 어느 부분을 크롤링해야 하고 어느 부분을 무시해야 하는지 알려주는 다양한 사용자 에이전트에 대한 지침을 나열하는 텍스트 파일입니다. robots.txt 파일에 사용되는 주요 지침은 "허용" 또는 "비허용" 규칙으로 지정됩니다.
역사적으로 "noindex" 규칙도 작동했지만 2019년 Google은 noindex 지시문이 게시되지 않은 규칙이기 때문에 지원을 중단했습니다.
파일을 제대로 사용하지 않으면 웹사이트에 해로울 수 있으며 트래픽과 순위가 크게 떨어질 수 있습니다. 예를 들어, 전체 웹사이트가 검색 엔진에서 차단되거나 사이트의 일부가 실수로 차단되면 실수가 발생할 수 있습니다. 이런 일이 발생하면 사이트의 해당 부분에 연결된 순위가 점차 낮아지고 트래픽이 차례로 떨어집니다.
실제로 robots.txt 파일이 필요합니까?
아니요, 특히 URL이 최소인 소규모 웹사이트의 경우 웹사이트에 robots.txt가 있어야 하는 것은 아니지만 중대형 웹사이트에는 적극 권장됩니다. 대규모 사이트에서는 액세스할 수 있는 사이트 부분과 크롤러에서 차단해야 하는 섹션을 쉽게 제어할 수 있습니다. 파일이 존재하지 않으면 일반적으로 웹사이트가 정상적으로 크롤링되고 인덱싱됩니다.
robots txt 파일은 주로 무엇에 사용됩니까?
robots.txt에는 많은 사용 사례가 있으며 Semetrical에서는 아래 시나리오에 사용했습니다.
- 이러한 페이지는 일반적으로 크롤러에게 중요하지 않으며 웹사이트 전체에 중복이 많이 발생할 수 있으므로 내부 검색 결과를 차단합니다.
- 특정 패싯이 SEO 관점에서 가치가 없지만 사용자가 웹사이트에 있을 때 UX에 필요한 경우 패싯 탐색의 일부를 차단합니다.
- 하나의 패싯 수준이 검색 엔진에 유용할 수 있지만 두 개의 다른 패싯 필터를 결합하면 검색 엔진이 크롤링하고 색인을 생성하는 것과 관련이 없을 수 있는 패싯 탐색의 여러 수준을 차단합니다.
- 복제를 일으키거나 크롤링 예산을 낭비하는 매개변수를 차단합니다. 이것은 다른 사람들이 robots.txt에서 매개변수를 차단하지 말라고 말할 수 있기 때문에 약간 논쟁의 여지가 있지만 매개변수가 필요하지만 크롤러가 매개변수를 크롤링할 필요가 없는 많은 클라이언트 웹사이트에서 작동했습니다. 차단하고 있는 매개변수에 가치 있는 링크가 없거나 트래픽을 유도하는 가치 있는 키워드 순위가 있는지 확인하는 것이 좋습니다.
- 결제 페이지 및 로그인 섹션과 같은 웹사이트의 비공개 섹션을 차단합니다.
- 크롤러가 웹사이트의 모든 URL에 쉽게 액세스할 수 있도록 XML 사이트맵 위치를 포함합니다.
- 특정 봇만 사이트에 액세스하고 크롤링할 수 있도록 허용합니다.
- 중재할 수 없는 사용자 생성 콘텐츠 차단.
robots txt를 어디에 넣을 수 있고 사이트에 추가하는 방법은 무엇입니까?
robots.txt 파일은 웹사이트의 루트에 위치해야 합니다. 예를 들어 Semetrical의 사이트에서는 www.semetrical.com/robots.txt에 위치하며 이름은 robots.txt로 지정해야 합니다. 웹사이트에는 robots.txt가 하나만 있을 수 있으며 ASCII를 포함하는 UTF-8 인코딩 텍스트 파일이어야 합니다.
blog.example.com과 같은 하위 도메인이 있는 경우 robots.txt는 blog.example.com/robots.txt와 같은 하위 도메인의 루트에 위치할 수 있습니다.
robots.txt 파일은 어떻게 생겼습니까?
일반적인 robots.txt 파일은 다음을 포함하는 다양한 구성요소와 요소로 구성됩니다.
- 사용자 에이전트
- 허용하지 않음
- 허용하다
- 크롤링 지연
- 사이트맵
- 댓글(가끔 볼 수 있음)
다음은 사용자 에이전트, 허용하지 않는 규칙 및 사이트맵을 포함하는 Semetrcals robots.txt의 예입니다.
User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/ Disallow: /comments/feed/ Disallow: /trackback/ Disallow: /index.php/ Disallow: /xmlrpc.php Disallow: /blog-documentation/ Disallow: /test/ Disallow: /hpcontent/ Sitemap: https://devsemetrical.wpengine.com/sitemap.xml사용자 에이전트
사용자 에이전트는 지시문 그룹의 시작을 정의합니다. 이는 종종 아래 지침이 웹사이트를 방문하는 모든 봇에 대한 것임을 나타내는 와일드카드(*)로 표시됩니다. 이에 대한 예는 다음과 같습니다.
사용자 에이전트: *
User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/특정 봇을 차단하거나 특정 봇만 특정 페이지에 액세스하는 것을 허용하려는 경우가 있습니다. 이렇게 하려면 봇 이름을 사용자 에이전트로 지정해야 합니다. 이에 대한 예는 다음과 같습니다.
User-agent: AdsBot-Google Disallow: /checkout/reserve Disallow: /resale/checkout/order Disallow: /checkout/reserve_search알아야 할 일반적인 사용자 에이전트는 다음과 같습니다.

또한 각 도구에는 사이트를 크롤링하는 자체 사용자 에이전트가 있으므로 특정 소프트웨어가 웹사이트를 크롤링하지 못하도록 차단하거나 초당 크롤링할 수 있는 URL 수를 지연시키는 기능도 있습니다. 예를 들어 SEMRush 또는 Ahrefs가 웹사이트를 크롤링하지 못하도록 차단하려는 경우 파일에 다음이 추가됩니다.
User-agent: SemrushBot Disallow: * User-agent: AhrefsBot Disallow: *크롤링되는 URL 수를 지연시키려면 아래 규칙이 파일에 추가됩니다.
User-agent: AhrefsBot Crawl-Delay: [value] User-agent: SemrushBot Crawl-Delay: [value]금지 지시문
disallow 지시문은 생성된 규칙에 따라 특정 경로나 URL 집합을 크롤링하지 않도록 검색 엔진에 지시하는 robots.txt 파일에 사용자가 넣을 수 있는 규칙입니다. 웹 사이트의 여러 섹션을 차단할 수 있으므로 파일에 한 줄 또는 여러 줄의 허용 안 함 규칙이 있을 수 있습니다.
disallow 지시문이 비어 있고 아무 것도 지정하지 않으면 봇이 전체 웹사이트를 크롤링할 수 있으므로 특정 경로나 전체 웹사이트를 차단하려면 URL 접두사 또는 슬래시 "/"를 지정해야 합니다. 예를 들어 아래 예에서는 /cgi-bin/ 또는 /wp-admin/의 경로에서 실행되는 모든 URL을 차단하고 있습니다.
User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/Google과 같은 봇으로부터 전체 웹사이트를 차단하려면 disallow 지시문 뒤에 슬래시를 추가해야 합니다. 일반적으로 스테이징 웹 사이트를 찾거나 인덱싱하지 않으려는 경우 스테이징 환경에서만 이 작업을 수행하면 됩니다. 예는 다음과 같습니다.
User-agent: * Disallow: /허용 지시문
대부분의 검색 엔진은 본질적으로 disallow 지시문에 대응하는 allow 지시문을 따릅니다. 예를 들어 /wp-admin/을 차단하면 일반적으로 해당 경로에서 실행되는 모든 URL이 차단되지만 /wp-admin/admin-ajax.php에 대한 허용 규칙이 있는 경우 봇은 / admin-ajax.php는 차단하지만 /wp-admin/에서 실행되는 다른 경로는 차단합니다. 아래 예를 참조하십시오.
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php크롤링 지연
크롤링 지연 지시문은 봇이 웹사이트를 크롤링하는 속도를 늦추는 데 도움이 됩니다. 비공식 규칙이므로 모든 검색 엔진이 크롤링 지연 지시문을 따르는 것은 아닙니다.
– Google은 이 지침을 따르지 않습니다.
– Baidu는 이 지시를 따르지 않을 것입니다.
– Bing 및 Yahoo는 크롤링 작업 후 "n"초 동안 대기하도록 규칙이 지시하는 크롤링 지연 지시문을 지원합니다.
– Yandex는 크롤링 지연 지시문도 지원하지만 "n"초마다 한 번만 사이트에 액세스하는 규칙을 약간 다르게 해석합니다.

아래 크롤링 지연 지시문의 예:
User-agent: BingBot Disallow: /wp-admin/ Crawl-delay: 5사이트맵 지침
사이트맵 지시문은 검색 엔진에 XML 사이트맵을 찾을 수 있는 위치를 알려주고 다양한 검색 엔진이 웹사이트에서 URL을 쉽게 찾을 수 있도록 합니다. 이 지침을 따를 주요 검색 엔진에는 Google, Bing, Yandex 및 Yahoo가 포함됩니다.
robots.txt 파일의 맨 아래에 사이트맵 지시문을 배치하는 것이 좋습니다. 이에 대한 예는 다음과 같습니다.
User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/ Disallow: /comments/feed/ Sitemap: https://devsemetrical.wpengine.com/sitemap.xml코멘트
robots.txt 파일은 댓글을 포함할 수 있지만 댓글의 존재는 해시태그 뒤의 모든 것이 무시되므로 봇이 아니라 인간만을 위한 것입니다. 주석은 다음과 같은 여러 가지 이유로 유용할 수 있습니다.
– 특정 규칙이 존재하는 이유를 제공합니다.
– 규칙을 추가한 참조
– 규칙이 적용되는 사이트 부분 참조
– 규칙이 무엇을 하는지 설명
– 다음은 다양한 robots.txt 파일에 있는 주석의 예를 보여줍니다.
#Student Disallow: /student/*-bed-flats-* Disallow: /student/*-bed-houses* Disallow: /comments/feed/ #Added by Semetrical Disallow: /jobs*/full-time/* Disallow: /jobs*/permanent/* #International Disallow: */company/fr/* Disallow: */company/de/*규칙의 순서가 중요합니까?
규칙의 순서는 중요하지 않지만 여러 허용 및 금지 규칙이 URL에 적용되는 경우 가장 긴 일치 경로 규칙이 적용되고 덜 구체적인 더 짧은 규칙보다 우선합니다. 두 경로의 길이가 같으면 덜 제한적인 규칙이 사용됩니다. 특정 URL 경로를 허용하거나 허용하지 않으려면 "*"를 사용하여 문자열을 더 길게 만들어 규칙을 더 길게 만들 수 있습니다. 예: 허용하지 않음: ********/make-longer
Google의 자체 웹사이트에는 우선순위 규칙을 보여주는 샘플 상황이 나열되어 있습니다. 아래 표는 구글에서 가져왔습니다.

robots.txt 파일을 확인하는 방법은 무엇입니까?
잘못된 규칙이 있으면 웹사이트에 큰 영향을 미칠 수 있으므로 라이브로 푸시하기 전에 robots.txt 파일을 확인하고 유효성을 검사하는 것이 항상 중요합니다.
테스트하는 가장 좋은 방법은 Search Console의 robots.txt 테스터 도구로 이동하여 적절한 규칙으로 차단해야 하는 여러 URL을 테스트하는 것입니다. 이것은 또한 파일에 추가하려는 새 규칙을 테스트하는 좋은 방법입니다.

robots.txt에서 정규식 사용의 예
robots.txt 파일에서 규칙을 생성할 때 패턴 일치를 사용하여 하나의 금지 규칙에서 URL 범위를 차단할 수 있습니다. 정규식은 패턴 일치를 수행하는 데 사용할 수 있으며 Google과 Bing이 모두 준수하는 두 가지 주요 문자는 다음과 같습니다.
- URL의 끝과 일치하는 달러 기호($)
- 모든 문자 시퀀스를 나타내는 와일드카드 규칙인 별표(*).
Semetrical에서 패턴 일치의 예:
Disallow: */searchjobs/*이렇게 하면 www.example.com/searchjobs/construction과 같이 /searchjobs/의 경로가 포함된 모든 URL이 차단됩니다. 이는 검색 엔진이 사이트의 해당 섹션을 크롤링하고 색인을 생성하지 않도록 사이트의 검색 섹션을 차단해야 하기 때문에 클라이언트에게 필요했습니다.
Disallow: /jobs*/full-time/*이렇게 하면 /jobs/ 다음에 /full-time/이 오는 경로를 포함하는 URL이 차단됩니다.
www.example.com/jobs/admin-secretarial-and-pa/full-time/
. 이 시나리오에서는 UX에 대한 필터로 정규직이 필요하지만 검색 엔진의 경우 "직위" + "정규직"에 맞게 페이지를 색인화할 필요가 없습니다.
Disallow: /jobs*/*-000-*-999/*이렇게 하면 다음과 같은 급여 필터가 포함된 URL이 차단됩니다.
www.example.com/jobs/city-of-bristol/-50-000-59-999/
. 이 시나리오에서는 급여 필터가 필요하지만 검색 엔진이 급여 페이지를 크롤링하고 색인을 생성할 필요는 없습니다.
Disallow: /jobs/*/*/flexible-hours/이렇게 하면 탄력 시간을 포함하고 그 사이에 두 개의 패싯 경로가 포함된 URL이 차단됩니다. 이 시나리오에서 우리는 키워드 연구를 통해 사용자가 위치 + 탄력적 근무시간 또는 직업 + 탄력적 근무시간을 검색할 수 있지만 사용자가 "직위" + "위치" + "유연한 시간"을 검색하지 않는다는 것을 발견했습니다. 예시 URL은 다음과 같습니다.
www.example.com/jobs/admin-secretarial-and-pa/united-kingdom/flexible-hours/
.
Disallow: */company/*/*/*/people$이렇게 하면 회사와 사람 사이의 세 가지 경로와 사람으로 끝나는 URL이 포함된 URL이 차단됩니다. 예를 들면
www.example.com/company/gb/04905417/company-check-ltd/people
.
Disallow: *?CostLowerAsNumber=*이 규칙은 가격 책정을 주문한 매개변수 필터를 차단합니다.
Disallow: *?Radius=* Disallow: *?radius=*이 두 가지 규칙은 봇이 사용자 검색 반경을 변경한 매개변수 URL을 크롤링하는 것을 차단했습니다. 사이트에 두 버전이 모두 포함되어 있으므로 대문자 및 소문자 규칙이 모두 추가되었습니다.
robots.txt에 대해 알아야 할 사항
- robots.txt는 대소문자를 구분하므로 규칙에 올바른 대소문자를 사용해야 합니다. 예를 들어 /hello/는 /Hello/와 다르게 처리됩니다.
- Google과 같은 검색 엔진이 새로운 규칙을 찾기 위해 robots.txt를 더 빨리 다시 캐시하도록 하려면 Search Console에서 robots.txt URL을 검사하고 색인 생성을 요청할 수 있습니다.
- 웹사이트가 여러 규칙이 있는 robots.txt에 의존하고 robots.txt URL이 장기간 4xx 상태 코드를 제공하는 경우 규칙이 무시되고 차단된 페이지의 색인을 생성할 수 있습니다. 항상 200 상태 코드를 제공하는지 확인하는 것이 중요합니다.
- 웹사이트가 다운된 경우 검색 엔진이 사이트가 유지 관리를 위해 다운된 것으로 이해하고 나중에 웹사이트를 다시 크롤링하기 위해 다시 올 것이기 때문에 robots.txt가 5xx 상태 코드를 반환하는지 확인하십시오.
- URL이 이미 색인화되어 있고 색인에서 해당 URL을 제거하기 위해 허용되지 않음이 웹사이트에 추가되면 해당 URL이 삭제되고 제거되는 데 시간이 걸릴 수 있습니다. 또한 URL은 한동안 색인에 남아 있을 수 있지만 메타 설명에는 "이 사이트의 robots.txt 때문에 이 결과에 대한 설명을 사용할 수 없습니다. 자세히 알아보기"와 같은 메시지가 표시됩니다.
- robots.txt 허용 안 함 규칙은 수신 링크와 같은 외부 요인에 따라 관련성이 있고 색인이 생성되어야 한다고 Google이 결정할 수 있으므로 페이지가 검색 결과에 표시되지 않는다고 항상 보장하지는 않습니다.
- 허용하지 않는 규칙이 있고 페이지의 소스 코드 내에 "인덱스 없음" 태그도 배치하면 검색 엔진이 페이지에 액세스하여 "인덱스 없음" 태그를 찾을 수 없으므로 "인덱스 없음" 태그가 무시됩니다.
- 인덱싱된 페이지, 특히 들어오는 링크가 있는 페이지에 대한 허용 안 함 규칙은 그렇지 않으면 다른 페이지에 혜택을 주기 위해 전달될 백링크의 링크 자산을 잃게 된다는 것을 의미합니다. 그렇기 때문에 금지 규칙을 추가하기 전에 페이지에 백링크가 있는지 확인하는 것이 중요합니다.
- 허용 또는 금지 규칙을 작성할 때 경로의 선행 슬래시가 없으면 규칙이 무시됩니다. 예: "허용하지 않음: 검색 작업.
Semetrical의 기술 SEO 전문가와 상담하고 싶다면 기술 SEO 서비스 페이지를 방문하여 자세한 정보를 확인하십시오.
