개발자 도구

robots.txt 유효성 검사기

robots.txt 내용을 붙여넣어 구문을 확인하세요. User-agent, Disallow, Allow, Sitemap 지시문을 분석하고 크롤러 접근 규칙을 시각화합니다.


[[ fetchError ]]

[[ labels.or_paste ]]
[[ labels.sample_label ]]:
[[ labels.no_input ]]

[[ labels.result_label ]]

[[ labels.errors_label ]]
  • [[ labels.line_label ]] [[ err.line ]]: [[ errorMessage(err) ]]
✓ [[ labels.no_errors ]]

[[ labels.blocks_label ]]

User-agent: [[ ua === '*' ? labels.all_crawlers + ' (*)' : ua ]]
[[ labels.no_rules ]]
Crawl-delay [[ block.crawlDelay ]]

[[ labels.sitemaps_label ]]

Tips

  • User-agent: *는 모든 크롤러에 적용됩니다. 특정 봇 이름(예: Googlebot)을 지정한 블록이 와일드카드 블록보다 우선합니다.
  • Disallow:를 빈 값으로 두면 "모든 경로 허용"을 의미합니다. Disallow: /(슬래시만)는 모든 것을 차단합니다. 혼동하지 마세요.
  • Allow: 지시문은 두 규칙이 모두 일치할 때 Disallow:보다 우선합니다. 예: Disallow: /private/ 후에 Allow: /private/public.html을 쓰면 해당 파일만 허용됩니다.
  • Crawl-delay:는 요청 사이 간격(초)을 지정하는 비표준 지시문입니다. Bing과 Yandex는 지원하지만 Google은 지원하지 않습니다.
  • Sitemap: 지시문으로 검색 엔진에 사이트맵 URL을 알릴 수 있습니다. Google과 Bing 모두 이 지시문을 인식합니다.

자주 묻는 질문

네. Disallow로 페이지를 차단하면 크롤러가 내용을 읽을 수 없어 색인이 되지 않습니다. 단, 외부 사이트에서 링크된 경우 "알려졌지만 크롤링되지 않은" 페이지로 검색 결과에 나타날 수 있습니다. 완전한 제외를 위해서는 noindex 메타 태그와 함께 사용하세요.

아니요. robots.txt는 출처별로 적용됩니다. example.com/robots.txtblog.example.com에 적용되지 않습니다. 각 서브도메인에 별도의 robots.txt가 필요합니다.

Googlebot*(임의 문자열)와 $(URL 끝)를 지원합니다. 예: Disallow: /private/*.pdf$/private/ 아래의 모든 PDF를 차단할 수 있습니다. 모든 크롤러가 와일드카드를 지원하지는 않습니다.

여담 ― robots.txt의 탄생 ― 인터넷이 예절을 배운 날

1994년, 네덜란드 엔지니어 Martijn Koster가 로봇 배제 프로토콜(REP)을 고안했습니다. 당시 웹 크롤러들이 사이트를 무분별하게 돌아다니며 서버에 과부하를 주는 문제가 있었습니다. Koster의 아이디어는 단순했습니다: "사이트 루트에 규칙을 담은 파일을 놓으면 크롤러가 읽을 것이다." 그 파일이 robots.txt가 됐습니다.

중요한 점은 robots.txt가 강제력 없는 신사 협정이라는 것입니다. Googlebot, Bingbot 같은 선량한 크롤러는 이를 존중하지만 악의적인 봇은 무시합니다. 따라서 robots.txt는 검색 엔진에 색인하지 않을 페이지를 알리는 데는 효과적이지만, 민감한 콘텐츠를 무단 접근으로부터 보호하는 용도로는 절대 사용해서는 안 됩니다.

로봇 배제 프로토콜은 비공식 관행으로 약 30년간 존재하다가, 2022년 9월에야 IETF에 의해 RFC 9309로 공식 등록되었습니다. 탄생 후 거의 28년 만의 표준화였습니다.