robots.txt에서 AI 크롤러를 막으면 결과는 그 봇이 무슨 일을 하는지에 따라 다릅니다. 학습용 봇을 막으면 사이트 콘텐츠를 모델 학습에 쓰지 말라는 표시가 되고, 검색용 봇을 막으면 해당 서비스의 AI 검색 답변에 사이트가 나오지 않습니다. 봇 이름이 비슷해 보여도 용도가 다르므로 하나씩 구분해서 정해야 합니다.
OpenAI의 봇 세 가지
OpenAI 개발자 문서는 봇을 용도별로 나눕니다. OAI-SearchBot은 ChatGPT 검색 기능에 웹사이트를 보여 주는 데 쓰입니다. 이 봇을 막은 사이트는 ChatGPT 검색 답변에 나오지 않으며, 내비게이션 링크로는 여전히 나올 수 있다고 문서는 적었습니다. 검색에 나오게 하려면 robots.txt에서 허용하고 공개 IP 대역도 허용하라고 권고합니다.
GPTBot은 생성형 AI 기반 모델을 더 유용하고 안전하게 만드는 데 쓰이며 학습에 쓰일 수 있는 콘텐츠를 크롤링합니다. GPTBot을 disallow하면 사이트 콘텐츠를 생성형 AI 기반 모델 학습에 쓰지 말라는 표시가 됩니다. ChatGPT-User는 사용자가 질문할 때 웹 페이지를 방문하는 것 같은 사용자 요청 동작에 쓰이며, 사용자 요청이라 robots.txt 규칙이 적용되지 않을 수 있습니다. 검색 노출 여부를 정하는 데는 쓰이지 않으므로 검색 옵트아웃과 자동 크롤링 관리는 OAI-SearchBot으로 하라고 문서는 안내합니다.
구글의 Google-Extended
구글 Search Central의 크롤러 문서에 따르면 Google-Extended는 게시자가 구글이 크롤링한 콘텐츠를 어떻게 쓰게 할지 관리하는 독립 robots.txt 제품 토큰입니다. 향후 Gemini 모델 학습, 그리고 Gemini 앱과 Vertex AI의 Grounding with Google Search에서 콘텐츠를 쓸지 여부를 정합니다.
문서는 Google-Extended가 사이트의 구글 검색 포함 여부에 영향을 주지 않고 구글 검색의 랭킹 신호로도 쓰이지 않는다고 명시합니다. 별도의 HTTP 요청 UA 문자열이 없고, 크롤링은 기존 구글 UA로 하며 토큰은 제어 용도로만 씁니다.
구글 검색의 AI 기능은 별개입니다. 구글 AI features 문서는 Googlebot용 robots.txt가 검색 크롤링과 AI 기능 접근의 제어 수단이라고 설명합니다. 검색에 표시되는 정보를 제한하려면 nosnippet, data-nosnippet, max-snippet, noindex를 씁니다.
Perplexity의 봇 두 가지
Perplexity 문서에 따르면 PerplexityBot은 Perplexity 검색 결과에 웹사이트를 노출하고 링크하도록 설계되었고, AI 기반 모델용 콘텐츠 크롤링에는 쓰이지 않습니다. 검색에 나오게 하려면 robots.txt에서 허용하고 공개 IP 범위 요청도 허용하라고 권고합니다.
Perplexity-User는 사용자가 질문하면 정확한 답을 위해 웹 페이지를 방문하고 응답에 그 페이지 링크를 포함할 수 있습니다. 사용자가 요청한 fetch라 이 fetcher는 robots.txt 규칙을 대체로 무시한다고 문서는 적었습니다.
Anthropic의 봇 세 가지
Anthropic 지원 문서는 세 봇을 나눠 설명합니다. ClaudeBot은 생성형 AI 모델의 유용성과 안전성을 높이기 위해 학습에 기여할 수 있는 웹 콘텐츠를 수집하며, 제한하면 향후 자료를 학습 데이터셋에서 제외하라는 신호가 됩니다. Claude-User는 Claude 이용자가 질문할 때 웹사이트에 접근하는 봇으로, 비활성화하면 user-directed web search에서의 가시성이 줄 수 있다고 적었습니다. Claude-SearchBot은 검색 결과의 관련성과 정확성을 높이기 위해 웹을 탐색하며, 비활성화하면 검색 최적화를 위한 색인이 막혀 가시성과 정확도가 줄 수 있다고 적었습니다.
Anthropic의 봇은 robots.txt의 업계 표준 지시를 존중하고 비표준 Crawl-delay도 지원합니다. IP 차단은 봇이 robots.txt를 읽지 못하게 하므로 안정적이지 않을 수 있다고 안내합니다.
용도별로 한눈에 보기
| 서비스 | 학습용 | 검색용 | 사용자 요청용 |
|---|---|---|---|
| OpenAI | GPTBot | OAI-SearchBot | ChatGPT-User |
| 구글 | Google-Extended(Gemini 학습과 grounding) | Googlebot(검색과 AI 기능) | 해당 항목 없음 |
| Perplexity | 학습용 크롤링에는 쓰지 않는다고 명시 | PerplexityBot | Perplexity-User |
| Anthropic | ClaudeBot | Claude-SearchBot | Claude-User |
정할 때의 순서
- 학습에 쓰이는 것을 원하지 않으면 학습용 봇만 막습니다. 검색 노출에는 영향이 없습니다.
- AI 검색 답변에 나오고 싶다면 검색용 봇은 허용하고 공개 IP 대역도 막지 않습니다.
- 사용자 요청용 봇은 robots.txt가 적용되지 않을 수 있으므로, 노출되면 안 되는 콘텐츠는 로그인 같은 다른 방법으로 보호합니다.
- 변경 후 반영에는 시간이 걸릴 수 있습니다. OpenAI 안내는 약 24시간을 언급합니다.
llms.txt 같은 별도 파일의 필요성은 llms.txt는 지금 만들어야 할까?에서, Perplexity 인용은 Perplexity는 어떤 출처를 인용할까?에서 다룹니다.
참고한 자료
- OpenAI, 봇 안내https://developers.openai.com/api/docs/bots
- 구글 Search Central, 구글 일반 크롤러: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
- 구글 Search Central, AI features and your website: https://developers.google.com/search/docs/appearance/ai-features
- Perplexity, 봇 안내https://docs.perplexity.ai/guides/bots
- Anthropic 지원 문서, 웹 크롤링과 차단 방법: https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler