robots.txt에 뭘 적어야 하나 — AI 크롤러 12종 정리

·기록

AI 크롤러 이름이 계속 늘어나면서 robots.txt에 뭘 어떻게 적어야 할지 헷갈리는 경우가 많습니다. 봇 12종을 하는 일별로 분류하고, 그대로 복사해 쓸 수 있는 템플릿과 자주 나오는 실수 세 가지를 정리했습니다.

먼저 기본 문법

robots.txt는 사이트 최상위에 두는 텍스트 파일입니다. 주소는 항상 도메인.com/robots.txt여야 하고, 하위 폴더에 두면 아무도 읽지 않습니다.

User-agent: 봇이름
Allow: /
Disallow: /admin/

규칙은 봇 이름별로 묶음(그룹)을 이룹니다. 특정 봇에 대한 그룹이 있으면 그것만 적용되고, 없으면 User-agent: * 그룹이 적용됩니다. 둘이 합쳐지지 않습니다. 이걸 모르면 뒤에 나올 실수 두 번째에 걸립니다.

봇 12종 — 하는 일별 분류

이름만 봐서는 뭘 하는 봇인지 알 수 없습니다. 셋으로 나눠서 봐야 판단이 섭니다.

검색 봇 — 막으면 손해입니다

소속하는 일
OAI-SearchBotOpenAIChatGPT 검색이 인용할 출처를 수집
PerplexityBotPerplexity답변에 붙는 출처 링크를 수집
ClaudeBotAnthropicClaude 응답에 쓸 자료를 수집
GooglebotGoogle구글 검색 · AI 개요의 기반
BingbotMicrosoftBing 검색 · ChatGPT가 참조
Yeti네이버네이버 검색 수집

이 여섯은 전부 열어두는 게 맞습니다. 막으면 해당 검색이나 AI 답변에서 사라집니다. 특히 Yeti는 국내 사이트에서 놓치기 쉬운데, 막혀 있으면 네이버에 아예 수집되지 않습니다.

그리고 Bingbot을 눈여겨보세요. ChatGPT 검색이 Bing 인덱스를 참조하기 때문에, GEO를 하면서 Bing을 막아두면 앞뒤가 안 맞습니다.

에이전트 봇 — 열어두는 쪽을 권합니다

하는 일
ChatGPT-User사용자가 링크를 주면 그때 열어본다
Perplexity-User같은 방식의 실시간 조회
Claude-User같은 방식의 실시간 조회

사람이 직접 요청했을 때만 움직이는 봇입니다. 대량 수집이 아니라 한 사람이 그 페이지를 보려고 여는 것에 가깝습니다. 막으면 "그 링크 요약해줘"가 실패합니다.

학습 봇 — 판단에 따라 정하세요

하는 일
GPTBotOpenAI 모델 학습 데이터 수집
CCBotCommon Crawl — 여러 모델의 학습 재료
Google-ExtendedGemini 학습 여부 제어 (검색 순위와 무관)

이 셋은 막아도 검색 노출에 영향이 없습니다. 콘텐츠가 학습에 쓰이는 게 싫으면 막고, 상관없으면 열어두면 됩니다. 정답이 없는 영역이에요.

다만 Google-Extended는 이름 때문에 오해가 많습니다. 구글 검색 순위와는 무관합니다. Gemini 학습에만 관여합니다.

그대로 복사해 쓰는 템플릿

검색·에이전트는 전부 허용하고 학습만 막는 구성입니다. 학습도 허용하려면 아래쪽 세 블록을 지우면 됩니다.

# 기본 — 명시되지 않은 모든 봇
User-agent: *
Allow: /

# 검색 봇 — 인용을 만들어주므로 허용
User-agent: OAI-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Yeti
Allow: /

# 에이전트 봇 — 사용자 요청 시 실시간 조회
User-agent: ChatGPT-User
Allow: /

# 학습 봇 — 노출과 무관, 원하면 아래 세 블록 삭제
User-agent: GPTBot
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: Google-Extended
Disallow: /

Sitemap: https://내도메인.com/sitemap.xml

자주 나오는 실수 셋

하나 · Disallow: 를 빈칸으로 두는 것

Disallow: 뒤가 비어 있으면 "아무것도 막지 않는다"는 뜻입니다. Disallow: /"전부 막는다"입니다. 슬래시 하나 차이로 정반대가 됩니다.

사이트가 통째로 검색에서 사라지는 사고의 절반은 이 슬래시 하나에서 나옵니다.

둘 · 그룹이 합쳐진다고 생각하는 것

이렇게 써두고 GPTBot이 /를 못 읽는다고 생각하기 쉽습니다.

User-agent: *
Disallow: /private/

User-agent: GPTBot
Disallow: /secret/

실제로는 GPTBot에게 /private/ 규칙이 적용되지 않습니다. 자기 그룹이 있으면 그것만 읽고 * 그룹은 무시하거든요. 특정 봇 그룹을 만들 때는 그 그룹 안에 필요한 규칙을 전부 다시 적어야 합니다.

셋 · robots.txt만 고치고 끝내는 것

Cloudflare나 다른 방화벽을 쓰신다면 방화벽이 robots.txt보다 먼저 실행됩니다. robots.txt에 Allow: /를 써놔도 방화벽에서 막으면 요청 자체가 도달하지 못합니다.

robots.txt는 "들어와도 된다"는 안내문이지 문을 여는 열쇠가 아닙니다. 문은 따로 확인해야 합니다.

제대로 됐는지 확인하기

파일을 고쳤으면 실제 응답으로 확인합니다.

curl https://내도메인.com/robots.txt
curl -A "OAI-SearchBot" -I https://내도메인.com/

첫 줄은 파일 내용이 제대로 보이는지, 둘째 줄은 그 봇이 실제로 들어올 수 있는지를 봅니다. 둘째 줄에서 403이 나오면 robots.txt와 무관하게 어딘가에서 막고 있는 겁니다.

참고로 이 사이트의 robots.txt는 직접 열어보실 수 있게 두었습니다. 무료 진단 도구에 주소를 넣으면 크롤러 접근 상태를 포함해 한 번에 확인됩니다.

정리

봇을 이름으로 외우려 하지 말고 하는 일로 나누세요. 검색 봇은 열고, 에이전트 봇도 열고, 학습 봇은 취향껏. 이 세 줄이면 판단이 끝납니다.

그리고 파일을 고친 뒤에는 반드시 실제 응답을 확인하세요. 적어놓은 것과 실제로 열려 있는 것은 다른 문제입니다.

이 사이트는 검색 유입을 0에서 만들어가는 과정을 기록합니다. 월·수·금 발행.
문의는 텔레그램으로 받습니다.