很多人在 robots.txt 中屏蔽 AI 爬虫时,以为自己是在保护内容,实际却可能是在主动退出 ChatGPT、Perplexity 和 Claude 的答案来源。原因在于,OpenAI、Anthropic 和 Perplexity 并非各自只派出一种爬虫,而是分别使用两到三种爬虫:一种抓取内容,用于未来的模型训练;另一种实时检索网页,并在答案中标注来源链接。通常真正需要屏蔽的是前者,务必保留的是后者。如果只写一组 User-agent: * 和 Disallow: /,两类爬虫都会被挡在门外。
训练爬虫与检索爬虫不是一回事
以 OpenAI 为例,GPTBot 负责抓取内容,纳入未来模型训练所需的语料;OAI-SearchBot 负责将网页收录进 ChatGPT 的搜索索引,让页面有机会在实时答案中被引用并附上链接;ChatGPT-User 则只会在用户于对话中要求访问某个 URL 时触发。也就是说,屏蔽 GPTBot 只会影响“内容是否用于训练”,并不影响 ChatGPT 当下能否引用你的页面。Anthropic 和 Perplexity 的分工逻辑相似,只是爬虫名称不同。若没分清这一层,就很容易拦掉本该放行的爬虫,却漏掉真正想屏蔽的对象。
- “GPTBot”(OpenAI):抓取内容,用于基础模型训练;屏蔽它不会让你从 ChatGPT 搜索中消失。
- “OAI-SearchBot”(OpenAI):为 ChatGPT 搜索和即时答案建立索引,并带来来源引用;希望被引用,就必须放行。
- “ChatGPT-User”(OpenAI):当用户在对话中主动要求访问某个 URL 时触发。
- “ClaudeBot”(Anthropic):抓取内容,用于训练及模型用途。
- “Claude-SearchBot”和“Claude-User”(Anthropic):分别负责搜索索引,以及由用户触发的内容检索。
- “PerplexityBot”(Perplexity):为 Perplexity 答案引擎建立索引;屏蔽它,等于退出 Perplexity 的引用来源。
- “Perplexity-User”(Perplexity):用户提问时即时抓取内容。它曾被指未完全遵守 robots.txt。
- 其他常见对象:“Google-Extended”(并非实际爬虫,而是一项控制设置,用于决定内容能否用于 Gemini 训练和提供事实依据)、“CCBot”(Common Crawl,许多模型训练语料的来源)、“Bytespider”(字节跳动,抓取频率较高)。
robots.txt 的基本规则:先别急着发布配置
robots.txt 必须放在域名根目录,URL 固定为域名后加 /robots.txt。每个主机都要有自己的文件:blog.example.com 和 www.example.com 是两个不同的主机,前者的规则无法控制后者;http、https 以及不同端口也会被视为不同来源。核心语法只有三个关键词:User-agent 指定对象,Disallow 屏蔽路径,Allow 设置例外。Allow 与 Disallow 冲突时,主流搜索引擎通常采用“最长路径优先”原则,因此可以用 Allow 在大范围屏蔽规则中开放特定路径。
- robots.txt 是一种“访问请求”,不是“防火墙”:遵守规则的爬虫(GPTBot、ClaudeBot、Googlebot)会照做,但恶意或不守规矩的爬虫可以直接忽略。若要强制拦截,必须依靠服务器层的 WAF、防火墙规则或验证机制。
- 禁止后续抓取,不等于删除已有数据:robots.txt 只影响“之后还能否抓取”,已经进入训练数据的内容不会因此消失。
- User-agent 名称必须准确:匹配时不区分大小写,但只要拼写错误,例如写成 GPT-Bot 或 Perplexity Bot,就等于没有配置。每组规则也只对匹配到的 User-agent 生效。
场景 1:允许引用,拒绝训练(多数 B2B SaaS 的默认选择)
如果你既希望出现在 AI 答案中,并被标注为信息来源,又不想让内容被免费用于训练下一代模型,就应放行搜索爬虫、屏蔽训练爬虫。这是我们为多数 B2B 客户采用的默认配置:优先保证品牌曝光,是否授权训练则按需决定。实际配置时,应将每个爬虫写成独立的 User-agent 组,并分别设置规则;为搜索爬虫明确写入 Allow: /,不仅能清楚表达放行意图,也可以覆盖网站过去遗留的全站屏蔽设置。
- User-agent: GPTBot → Disallow: /(训练爬虫,屏蔽)
- User-agent: ClaudeBot → Disallow: /(训练爬虫,屏蔽)
- User-agent: CCBot → Disallow: /(Common Crawl 训练语料来源,屏蔽)
- User-agent: OAI-SearchBot → Allow: /(ChatGPT 搜索引用,放行)
- User-agent: PerplexityBot → Allow: /(Perplexity 引用,放行)
- User-agent: Claude-SearchBot → Allow: /(Claude 搜索引用,放行)
- 如果不希望内容进入 Gemini 训练,可增加 User-agent: Google-Extended → Disallow: /(不会影响 Google 搜索排名)

场景 2:连引用机会也不保留,全面屏蔽 AI 访问
付费墙后的内容、涉及合规敏感信息的页面,或仍处于授权谈判阶段的资料,可能连检索访问也需要屏蔽。做法是逐一列出所有已知的 AI User-agent,并分别设置 Disallow: /。但必须清楚这一选择的代价:屏蔽后,内容在 AI 答案中的引用将降为零,相当于主动退出这一持续增长的流量来源。对 B2B 营销网站来说,这通常只适合作为防御性、临时性的配置,不应被当作默认方案。
- OpenAI:分别为 GPTBot、OAI-SearchBot 和 ChatGPT-User 设置 Disallow: /。
- Anthropic:分别为 ClaudeBot、Claude-SearchBot 和 Claude-User 设置 Disallow: /。
- Perplexity:分别为 PerplexityBot 和 Perplexity-User 设置 Disallow: /。
- 可选的额外限制:分别为 Google-Extended、Applebot-Extended、Bytespider、CCBot 设置 Disallow: /。
别让“一键屏蔽所有 AI”的模板拖累你的 GEO
网上流传着不少“把这段粘贴进 robots.txt,就能屏蔽 AI”的模板。问题在于,这类模板往往会对所有 AI User-agent 设置 Disallow: /,连负责检索和引用网站的搜索爬虫也一并拦掉。结果是,你以为自己在保护内容,实际上却主动退出了 ChatGPT 搜索、Perplexity 以及 Claude 的来源列表。对于希望获得 AI 引用和品牌曝光的 B2B 品牌,这种做法几乎总是适得其反。发布任何模板前,先确认它屏蔽的究竟是训练还是检索。
配置完成后,如何确认它确实生效?
- 直接检查:在浏览器中打开你的域名并加上 /robots.txt,确认文件存在、位于根目录,而且各个 User-agent 组没有拼写错误。
- 查看服务器日志:在 User-agent 字段中搜索 GPTBot、ClaudeBot 和 PerplexityBot,检查被屏蔽的对象是否返回 403,以及被放行的对象能否正常抓取页面。
- 验证爬虫身份:AI 爬虫的 User-agent 可以伪造。OpenAI 和 Anthropic 都公布了官方 IP 段,可通过反向 DNS 与正向 DNS 交叉验证,避免被假冒爬虫欺骗。
- 模拟请求:使用 curl 携带对应的 User-agent 抓取页面,检查 robots.txt 规则是否按预期放行或屏蔽。
- 定期复查:各家公司可能新增或更改 User-agent 名称,例如 OAI-SearchBot 后来从 GPTBot 中独立出来。建议每季度检查一次,避免配置过时。
robots.txt 不是保险柜,而是门口的一块告示牌。它决定你欢迎哪类 AI 进入,又把哪类 AI 拦在门外。在 GEO 领域,把搜索爬虫拒之门外,往往也意味着把潜在业务机会挡在门外。— Tenten GEO Consulting Team
配置 robots.txt 只是搭建 GEO 技术基础的第一步。真正决定内容能否被 AI 引用的因素,还包括结构化信息、llms.txt、内容能否被清晰提取,以及品牌在各类引擎中的实际曝光度。如果你想确认网站是否正被 AI 引用,或是否被自己的 robots.txt 误拦,可以预约一次 30 分钟的 GEO 诊断。我们会基于你的实际域名检测爬虫访问与引用状态,并当场说明问题出在哪里。



