Robots.txt 配置手册:哪些 AI 爬虫该放行,哪些该屏蔽

2026年6月17日1266 次阅读
教程
Robots.txt 配置手册:哪些 AI 爬虫该放行,哪些该屏蔽

robots.txt 是你和 AI 爬虫之间的第一道门。配错了,要么把想要的流量拒之门外,要么把不想给的内容全部敞开。这篇文章整理了目前市面上主要的 AI 爬虫标识,并给出两种典型场景下的完整配置示例。

article.media/b55fb93d-a273-41cd-9fed-c650610d536e.png

当前主流 AI 爬虫 User-Agent 清单

以下分类基于爬虫的实际用途:训练爬虫用于离线积累语料,RAG 检索爬虫用于用户提问时的实时联网检索。两者的配置策略完全不同,不能混为一谈。

厂商User-Agent用途类型备注
OpenAIGPTBot训练爬虫GPT 系列模型的离线语料
OpenAIChatGPT-UserRAG 检索爬虫ChatGPT 联网模式的实时抓取
AnthropicClaudeBot训练 + RAGClaude 模型训练与实时检索
GoogleGoogle-Extended训练爬虫控制是否提供给 Gemini 离线训练,不影响 Googlebot 搜索收录
PerplexityPerplexityBotRAG 检索爬虫AI 搜索实时检索和信源抓取
ByteDanceBytespider训练 + RAG豆包大模型及火山引擎搜索
AppleApplebot-Extended训练爬虫Apple Intelligence 模型训练数据
MetaMeta-ExternalAgent训练爬虫Meta AI(Llama 系列)语料收集

场景一:希望 AI 最大化引用你的内容(内容型、产品型网站)

如果你的官网内容希望被 ChatGPT、Perplexity 在回答用户问题时实时引用,同时也愿意贡献给大模型的训练语料库,使用以下开放配置:

# 明确放行主要 AI 爬虫(同时覆盖训练和实时检索)
User-agent: GPTBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Bytespider
Allow: /
User-agent: Applebot-Extended
Allow: /
User-agent: Meta-ExternalAgent
Allow: /
Sitemap: https://yourdomain.com/sitemap.xml

注意:如果你的全站已经对所有爬虫开放(User-agent: * 下没有 Disallow),以上配置并非必须——AI 爬虫默认继承通用规则。但显式声明有助于排查后续配置冲突,建议加上。

场景二:保护原创内容,仅允许 AI 实时检索(不参与模型训练)

这是目前很多媒体、知识付费平台选择的策略:不希望自己的内容被无偿用于训练,但希望用户在 Perplexity、ChatGPT 联网时能搜到并引用官网内容,带来实际流量。

# 拒绝 OpenAI 的训练爬虫
User-agent: GPTBot
Disallow: /
# 放行 ChatGPT 联网模式的实时检索(不用于训练)
User-agent: ChatGPT-User
Allow: /
# 拒绝 Gemini 训练,不影响 Google 搜索收录
User-agent: Google-Extended
Disallow: /
# 拒绝 Apple Intelligence 训练
User-agent: Applebot-Extended
Disallow: /
# 拒绝 Meta Llama 训练
User-agent: Meta-ExternalAgent
Disallow: /
# 保留 Perplexity 实时检索
User-agent: PerplexityBot
Allow: /
Sitemap: https://yourdomain.com/sitemap.xml

llms.txt 与 robots.txt:分工而非替代

近一两年常有人问:有了 llms.txt,还需要配 robots.txt 吗?答案是两者管的事完全不同,谁也替代不了谁。robots.txt 回答的是「允不允许抓」——它是准入控制;llms.txt 回答的是「该优先读哪些」——它是内容导航,在根目录用纯文本(及 llms-full.txt 全文版)告诉大模型最值得阅读的核心页面。一个管门禁,一个管引路。正确的做法是:先用 robots.txt 放行该放行的 AI 爬虫,再用 llms.txt 把它引到最有价值的页面上。只配 llms.txt 却在 robots.txt 里把爬虫挡在门外,等于贴了路牌却锁了大门。

Crawl-delay 与厂商遵守度的现实

如果批量抓取给服务器带来压力,可以用 Crawl-delay 指令限制爬虫的抓取间隔。但要清楚一个现实:robots.txt 全程是「君子协定」,各厂商的遵守程度并不一致。主流厂商(OpenAI、Anthropic、Perplexity)对 Allow 与 Disallow 的遵守度较高,但对 Crawl-delay 这类非标准扩展指令,支持情况参差不齐,不能假定一定生效。真要硬性限速,应该在 WAF 或网关层按 User-Agent 做速率限制,而不是只依赖 robots.txt 里的一行声明。

三个最常见的误配

  • 把 Google-Extended 当成 Googlebot 屏蔽:很多人想「拒绝 AI 训练」,结果误删了 Googlebot 的抓取权限,把传统搜索收录也一起断了。记住 Google-Extended 只控制 Gemini 训练,和搜索收录是两回事。
  • 只屏蔽训练爬虫却忘了放行检索爬虫:屏蔽 GPTBot 的同时,连 ChatGPT-User 也一并 Disallow,结果用户联网提问时官网根本搜不到——既没贡献训练,也丢了实时流量,两头落空。
  • 规则顺序与通配符写错:同一个 User-agent 下,更具体的规则应写在前;漏写结尾的 Allow 或多写一个 Disallow 根目录规则,都可能把整站意外关闭。改完务必用线上工具实测一次。

配置生效后的三项验证

  1. 状态码检查:访问 https://yourdomain.com/robots.txt,确认 HTTP 状态码为 200 OK。返回 4045xx 的话,部分爬虫会默认整站可访问(OpenAI 的规范如此),产生意外的全站开放。
  2. WAF / CDN 白名单:robots.txt 只是一份"君子协定",对恶意爬虫没有约束力。但主流 AI 厂商的爬虫是遵守的。反过来,如果你的 Cloudflare 或其他 WAF 开启了严格的 Bot 防护,可能会把 GPTBot、PerplexityBot 一起拦掉,导致协议放行却实际被阻断。需要单独将上述 UA 加入 WAF 白名单。
  3. Sitemap 是否可访问:在 robots.txt 末尾声明 Sitemap 路径,并确保 sitemap.xml 能被外部正常访问(非 noindex 状态),这是 AI 爬虫快速定位更新页面的重要入口。