TL;DR: AI 크롤러 robots.txt 설정, 핵심만 정리
- '학습 차단, 검색 허용'이 업계 표준 — 주요 뉴스 사이트 79%가 이 전략을 사용
- robots.txt를 무시하는 봇이 있다 — ChatGPT-User, Perplexity-User, Claude-User, meta-externalfetcher는 robots.txt를 따르지 않음
- Google-Extended는 크롤러가 아니다 — Gemini 학습만 제어하는 토큰이며, 검색 순위와 무관
- PerplexityBot의 준수율은 낮다 — Duke 대학 연구에서 약 20% 수준으로 측정됨
- llms.txt는 아직 실효성이 낮다 — 주요 AI 서비스 중 이를 활용한다고 확인된 곳이 없음
AI 검색이 트래픽의 일부를 차지하기 시작하면서, robots.txt로 AI 크롤러를 관리하는 것이 기술 SEO의 새로운 과제가 되었습니다. 그러나 AI 크롤러마다 동작 방식이 다르고, robots.txt를 무시하는 봇도 존재합니다.
이 글에서는 주요 AI 크롤러 9종의 공식 문서를 근거로, 각 봇의 역할과 robots.txt 동작을 정리하고, 실전에서 사용할 수 있는 설정 예시를 제공합니다.
AI 크롤러 전체 비교표
각 크롤러의 역할과 robots.txt 준수 여부를 한눈에 확인할 수 있습니다.
출처: OpenAI — Bots, Anthropic — Crawling Bots, Perplexity — PerplexityBot
| 회사 | User-Agent | 용도 | 학습 데이터 수집 | robots.txt 준수 |
|---|---|---|---|---|
| OpenAI | GPTBot | AI 모델 학습 | O | O |
| OpenAI | OAI-SearchBot | ChatGPT 검색 | X | O |
| OpenAI | ChatGPT-User | 사용자 요청 브라우징 | X | X |
| Anthropic | ClaudeBot | AI 모델 학습 | O | O |
| Anthropic | Claude-SearchBot | 검색 색인 | X | O |
| Anthropic | Claude-User | 사용자 요청 브라우징 | X | O (차단 시 사용자 쿼리 접근 불가) |
| Perplexity | PerplexityBot | AI 검색 결과 | O | 부분적 (~20%) |
| Perplexity | Perplexity-User | 사용자 요청 브라우징 | X | X |
| Google-Extended | Gemini 학습 제어 토큰 | — | — (토큰) | |
| Apple | Applebot | 검색 + 학습 | O | O |
| Apple | Applebot-Extended | 학습 제어 토큰 | — | O |
| Amazon | Amazonbot | 일반 크롤링 + 학습 | O | O |
| Amazon | Amzn-SearchBot | Alexa/Rufus 검색 | X | O |
| Meta | meta-externalagent | AI 모델 학습 | O | O |
| Meta | meta-externalfetcher | 사용자 요청 브라우징 | X | X |
| Meta | Meta-WebIndexer | 검색 색인 | X | O |
| ByteDance | Bytespider | AI 학습 | O | 비신뢰 |
핵심 패턴: 각 회사는 '학습용'(robots.txt 준수), '검색용'(robots.txt 준수), '사용자 요청용'(robots.txt 무시)으로 크롤러를 분리하는 구조입니다. 사용자 요청 봇은 robots.txt로 차단할 수 없습니다.
robots.txt를 무시하는 봇들
이 점을 명확히 이해해야 합니다. 다음 봇들은 사용자가 직접 URL을 입력하거나 대화 중 링크를 요청했을 때 작동하며, robots.txt를 따르지 않습니다.
| User-Agent | 회사 | 동작 방식 |
|---|---|---|
| ChatGPT-User | OpenAI | 사용자가 ChatGPT에서 링크 요청 시 직접 방문 |
| Claude-User | Anthropic | 사용자가 Claude에서 링크 요청 시 직접 방문 |
| Perplexity-User | Perplexity | 사용자가 Perplexity에서 링크 요청 시 직접 방문 |
| meta-externalfetcher | Meta | 사용자 요청 기반 외부 콘텐츠 가져오기 |
이 봇들은 사용자의 웹 브라우저와 유사한 역할을 하므로, robots.txt의 적용 대상이 아닙니다. 차단하려면 서버 수준(WAF, IP 차단, rate limiting)에서 대응해야 합니다.
회사별 상세 분석
OpenAI: 3종 크롤러
출처: OpenAI — Bots
GPTBot은 AI 모델 학습용 데이터를 수집합니다. robots.txt를 준수하며, IP 범위를 JSON으로 공개합니다. 학습 데이터 수집을 원하지 않으면 이 봇만 차단하면 됩니다.
OAI-SearchBot은 ChatGPT 검색 기능을 위한 봇입니다. 학습 데이터 수집 목적이 아니며, robots.txt를 준수합니다. 이 봇을 차단하면 ChatGPT 검색 결과에서 제외됩니다.
ChatGPT-User는 사용자가 대화 중 특정 URL을 요청했을 때 작동합니다. robots.txt를 따르지 않습니다.
Anthropic: 3종 크롤러
ClaudeBot은 AI 모델 학습용 데이터를 수집합니다. robots.txt를 준수하며, Crawl-delay 지시어도 지원합니다. Crawl-delay를 지원하는 AI 크롤러는 ClaudeBot과 Bingbot 정도로, 드문 사례입니다.
Claude-SearchBot은 검색 색인용이며, robots.txt를 준수합니다.
Claude-User는 사용자 요청 기반이며 robots.txt를 따르지 않습니다.
Perplexity: 2종 크롤러, 준수율 주의
PerplexityBot은 AI 검색 결과를 위한 봇입니다. 공식적으로는 robots.txt를 준수한다고 안내하지만, 실제 준수율은 낮습니다.
출처: Duke University — AI Bot Compliance Study
Duke 대학 연구에 따르면, PerplexityBot의 robots.txt 준수율은 약 20% 수준으로 측정되었으며, 같은 연구에서 ChatGPT와 GoogleBot은 99% 이상의 준수율을 보였습니다.
이 점을 고려하면, robots.txt만으로 PerplexityBot을 확실히 차단하기 어려울 수 있습니다. 서버 수준의 추가 대응이 필요합니다.
Perplexity-User는 사용자 요청 기반이며 robots.txt를 무시합니다.
Google: Google-Extended는 크롤러가 아니다
Google-Extended는 별도의 크롤러가 아닙니다. robots.txt에서 Gemini의 학습 데이터 수집을 제어하기 위한 제어 토큰(control token)입니다. 실제 크롤링은 Googlebot이 수행하며, Google-Extended를 차단해도 Google 검색 순위에는 영향이 없습니다.
# Google-Extended 차단 = Gemini 학습만 차단
# Google 검색 순위에 영향 없음
User-agent: Google-Extended
Disallow: /
참고로 Google은 Crawl-delay 지시어를 지원하지 않습니다.
Apple: Googlebot 규칙 폴백
Applebot은 Apple 검색과 AI 학습에 사용됩니다. Applebot 전용 규칙이 없으면 Googlebot 규칙을 폴백으로 사용합니다. Googlebot을 허용하면서 Applebot만 차단하려면, Applebot 전용 규칙을 명시적으로 작성해야 합니다.
Applebot-Extended는 학습 제어 전용 토큰으로, 검색 기능에는 영향을 주지 않습니다.
Amazon: noarchive 메타 태그 지원
Amazonbot은 일반 크롤링과 AI 학습을 겸합니다. 특이점은 noarchive 메타 태그(Meta Tag)를 지원한다는 것입니다. 이를 통해 페이지 단위로 학습 데이터 수집을 차단할 수 있습니다.
<!-- 페이지 단위로 Amazonbot 학습 차단 -->
<meta name="robots" content="noarchive">
robots.txt가 사이트 전체에 적용되는 것과 달리, 이 방식은 특정 페이지만 선택적으로 차단할 수 있어 유용합니다. Amazon은 Crawl-delay를 지원하지 않습니다.
Amzn-SearchBot은 Alexa, Rufus 등 Amazon 검색 서비스용이며, robots.txt를 준수합니다.
Meta: 5종 크롤러
meta-externalagent는 AI 모델 학습용이며, robots.txt를 준수합니다.
meta-externalfetcher는 사용자 요청 기반이며, robots.txt를 무시합니다.
Meta-WebIndexer는 검색 색인용이며, robots.txt를 준수합니다.
ByteDance: Bytespider
Bytespider는 ByteDance의 AI 학습용 크롤러입니다. robots.txt 준수가 불안정하며, IP 범위를 공개하지 않습니다. 서버 수준 차단이 어려운 봇 중 하나입니다.
Naver: AI 학습 분리 불가
Naver의 검색 크롤러 Yeti에는 AI 학습 전용 크롤러가 없습니다. "Yeti-Extended" 같은 것은 존재하지 않으며, AI 학습 옵트아웃을 위한 robots.txt 지시어도 문서화되어 있지 않습니다. 즉, Naver의 AI 학습만 선택적으로 차단하는 것은 현재 불가능합니다.
IP 검증 엔드포인트
AI 봇을 사칭하는 스크래퍼가 존재합니다. 정당한 AI 크롤러인지 확인하려면, 각 회사가 공개한 IP 범위와 대조해야 합니다.
| 회사 | IP 범위 확인 URL | 형식 |
|---|---|---|
| OpenAI (GPTBot) | https://openai.com/gptbot.json | JSON |
| OpenAI (OAI-SearchBot) | https://openai.com/searchbot.json | JSON |
| OpenAI (ChatGPT-User) | https://openai.com/chatgpt-user.json | JSON |
| Anthropic | https://claude.com/crawling/bots.json | JSON |
| Perplexity | https://perplexity.com/perplexitybot.json | JSON |
| ByteDance | 미공개 | — |
Google은 Googlebot의 IP 범위를 별도로 공개합니다. Apple과 Amazon도 각각의 공식 문서에서 IP 검증 방법을 안내합니다.
실전 robots.txt 설정
전략 1: 학습 차단, 검색 허용 (업계 표준)
주요 뉴스 사이트 79%가 채택한 방식입니다. AI 모델 학습 데이터 수집은 차단하되, AI 검색 결과에는 노출되도록 합니다.
# ==============================================
# AI 크롤러: 학습 차단, 검색 허용
# ==============================================
# OpenAI — 학습 차단
User-agent: GPTBot
Disallow: /
# OpenAI — 검색 허용
User-agent: OAI-SearchBot
Allow: /
# Anthropic — 학습 차단
User-agent: ClaudeBot
Disallow: /
# Anthropic — 검색 허용
User-agent: Claude-SearchBot
Allow: /
# Perplexity — 검색용 봇 (학습용이 아님, 하지만 준수율 ~20%로 낮음)
# 차단 시 Perplexity 검색에서 사이트 노출 감소
User-agent: PerplexityBot
Allow: /
# Google — Gemini 학습만 차단 (검색 순위 무관)
User-agent: Google-Extended
Disallow: /
# Apple — 학습 차단
User-agent: Applebot-Extended
Disallow: /
# Amazon — 학습 차단
User-agent: Amazonbot
Disallow: /
# Meta — 학습 차단
User-agent: meta-externalagent
Disallow: /
# ByteDance — 학습 차단 (준수 불안정)
User-agent: Bytespider
Disallow: /
# ==============================================
# 일반 크롤러 허용
# ==============================================
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
전략 2: 전면 허용 (AI 검색 노출 극대화)
AI 검색 노출을 최대화하고, 학습 데이터 제공도 허용하는 전략입니다. 콘텐츠가 널리 인용될수록 이득인 경우에 적합합니다.
# 모든 AI 크롤러 허용
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
전략 3: 전면 차단 (유료 콘텐츠 보호)
유료 구독 콘텐츠나 독점 데이터를 보호해야 하는 경우입니다.
# 모든 AI 학습 크롤러 차단
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: Applebot-Extended
Disallow: /
User-agent: Amazonbot
Disallow: /
User-agent: meta-externalagent
Disallow: /
User-agent: Bytespider
Disallow: /
# 검색 봇도 차단 (AI 검색 결과에서 제외)
User-agent: OAI-SearchBot
Disallow: /
User-agent: Claude-SearchBot
Disallow: /
# 일반 검색 엔진은 허용
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
User-agent: *
Disallow: /
Sitemap: https://example.com/sitemap.xml
Crawl-delay: 지원하는 봇은 극소수
Crawl-delay(크롤 지연) 지시어는 크롤러의 요청 간격을 초 단위로 지정합니다. 그러나 이를 실제로 지원하는 봇은 매우 적습니다.
| User-Agent | Crawl-delay 지원 |
|---|---|
| ClaudeBot | O |
| Bingbot | O |
| Googlebot | X |
| GPTBot | X |
| Amazonbot | X |
| 기타 AI 봇 | X |
# ClaudeBot에 10초 간격 크롤링 요청
User-agent: ClaudeBot
Crawl-delay: 10
Disallow: /private/
Crawl-delay를 지원하지 않는 봇에 대해서는 서버 수준의 속도 제한이 필요합니다.
서버 수준 속도 제한
robots.txt는 "요청"이지 "명령"이 아닙니다. 준수하지 않는 봇에 대응하려면 서버 수준에서 차단하거나 속도를 제한해야 합니다.
Cloudflare: 원클릭 AI 차단
Cloudflare는 2025년 7월부터 "Block AI Scrapers and Crawlers" 옵션을 기본 활성화했습니다. 무료 플랜에서도 사용 가능합니다.
설정 경로: Security > Bots > Block AI Scrapers and Crawlers
추가로, WAF(Web Application Firewall) 규칙으로 특정 봇의 요청 빈도를 제한할 수 있습니다.
# Cloudflare WAF 규칙 예시 (Rate Limiting)
# 조건: User-Agent에 "PerplexityBot" 포함
# 동작: 10초당 5회 초과 시 차단
Expression:
(http.user_agent contains "PerplexityBot")
Action: Rate Limit
Rate: 5 requests per 10 seconds
Response: 429 Too Many Requests
nginx: User-Agent 기반 속도 제한
# /etc/nginx/conf.d/ai-bot-rate-limit.conf
# AI 봇 User-Agent를 IP 기반 rate limit 키로 매핑
# 키가 빈 문자열("")이면 rate limit 적용 안 됨 (일반 사용자)
map $http_user_agent $ai_bot_limit_key {
default "";
"~*GPTBot" $binary_remote_addr;
"~*ClaudeBot" $binary_remote_addr;
"~*PerplexityBot" $binary_remote_addr;
"~*Bytespider" $binary_remote_addr;
"~*Amazonbot" $binary_remote_addr;
"~*meta-externalagent" $binary_remote_addr;
}
# AI 봇 전용 속도 제한 존 (분당 10요청, IP별)
limit_req_zone $ai_bot_limit_key zone=ai_bot_limit:10m rate=10r/m;
server {
# AI 봇 속도 제한 적용
location / {
limit_req zone=ai_bot_limit burst=5 nodelay;
# 선택: 특정 봇 완전 차단
if ($http_user_agent ~* "Bytespider") {
return 403;
}
proxy_pass http://backend;
}
}
Apache: .htaccess 기반 차단
# .htaccess — 특정 AI 봇 차단
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (Bytespider|GPTBot|ClaudeBot) [NC]
RewriteRule .* - [F,L]
</IfModule>
llms.txt: 현재 실효성은 낮다
llms.txt는 AI 크롤러에게 사이트 구조와 핵심 콘텐츠를 안내하기 위해 제안된 파일입니다. 약 84만 개 사이트가 채택했습니다.
그러나 현실적으로 주요 AI 서비스 중 llms.txt를 활용한다고 공식 확인한 곳은 없습니다.
출처: Google — John Mueller on llms.txt
Google의 John Mueller는 "Google의 어떤 AI 시스템도 llms.txt를 사용하지 않는다"고 밝혔습니다.
llms.txt를 작성하는 것이 해가 되지는 않지만, 이것이 AI 검색 노출에 직접적인 영향을 미친다는 증거는 아직 없습니다. robots.txt와 구조화된 데이터에 우선 집중하는 것이 현실적입니다.
AI 크롤러 차단 현황: 2025년 통계
| 지표 | 수치 |
|---|---|
| ClaudeBot 차단 사이트 수 | 약 580만 |
| GPTBot 차단 사이트 수 | 약 560만 |
| 주요 뉴스 사이트 중 AI 학습 봇 차단 비율 | 79% |
| AI 봇의 robots.txt 무시 비율 (2025 Q2) | 13.26% |
| 가장 일반적인 전략 | 학습 차단, 검색 허용 |
대부분의 퍼블리셔가 "학습은 차단하되 검색은 허용"하는 선택적 전략(Selective Strategy)을 채택하고 있습니다. 이는 AI 검색에서의 노출 기회를 유지하면서 무단 학습을 방지하려는 합리적인 접근입니다.
실전 체크리스트
AI 크롤러 관리를 위한 점검 항목입니다.
robots.txt 설정:
- 학습용 봇(GPTBot, ClaudeBot, Google-Extended, meta-externalagent 등)을 차단 또는 허용했는가?
- 검색용 봇(OAI-SearchBot, Claude-SearchBot)은 의도대로 설정했는가?
- Applebot 전용 규칙을 명시했는가? (미설정 시 Googlebot 규칙을 따름)
서버 수준 대응:
- robots.txt를 무시하는 봇(ChatGPT-User, Perplexity-User 등)에 대한 대응이 있는가?
- PerplexityBot, Bytespider처럼 준수율이 낮은 봇에 대한 서버 수준 차단이 있는가?
- Cloudflare "Block AI Scrapers" 옵션을 확인했는가?
IP 검증:
- User-Agent를 사칭하는 스크래퍼를 구분하기 위해 공식 IP 범위를 확인하고 있는가?
- 서버 로그에서 AI 봇의 실제 크롤링 빈도를 모니터링하고 있는가?
페이지 단위 제어:
- 특정 페이지만 학습 차단이 필요한 경우, Amazonbot의
noarchive메타 태그를 고려했는가?
결론: robots.txt는 시작일 뿐이다
AI 크롤러 관리는 robots.txt 설정만으로 완결되지 않습니다. robots.txt를 무시하는 봇이 존재하고, 준수율이 낮은 봇도 있기 때문입니다. robots.txt로 기본 의사를 표시하되, 서버 수준의 속도 제한과 IP 검증을 병행해야 합니다.
현실적인 접근은 다음과 같습니다.
- robots.txt로 학습 차단·검색 허용 의사를 명시한다
- 서버 수준(Cloudflare, nginx, WAF)에서 비준수 봇을 차단한다
- 서버 로그를 모니터링하여 실제 크롤링 패턴을 확인한다
- IP 검증으로 사칭 봇을 구분한다
AI 크롤러 정책은 빠르게 변하고 있으므로, 각 회사의 공식 문서를 주기적으로 확인하는 것이 중요합니다.
AI 크롤러 관리가 필요하시면 XEO 무료 진단을 신청하세요.