GPTBot和ClaudeBot怎么配?先分清三类访问

先说结论
很多网站开始配置 AI(人工智能)爬虫时,首先想到的是:到底应该全部允许,还是全部拒绝?
很多网站开始配置 AI(人工智能)爬虫时,首先想到的是:到底应该全部允许,还是全部拒绝?
这个问题不能统一回答。因为爬虫——也就是自动访问网站、读取网页内容的程序——来到网站,可能是为了三件完全不同的事:训练模型、支持搜索,或者响应某位用户的具体请求。
网站通常通过 robots.txt 表达自己的抓取规则。它是放在网站根地址下的公开文本文件,例如 https://www.example.com/robots.txt,用于告诉愿意遵守规则的爬虫:哪些页面可以访问,哪些页面不希望被访问。
这也是做 GEO(生成式引擎优化,本文指围绕网站内容在生成式 AI 搜索中的可见性进行优化)时必须分清的一件事:允许 AI 搜索爬虫,不等于同时允许模型训练爬虫。
本文讨论的是 OpenAI 和 Anthropic 与训练、搜索、用户请求直接相关的六个 User-agent。User-agent 是爬虫访问网站时报告的身份名称。只有先认清每个身份的用途,才能把规则写对。
如果网站希望保留出现在 ChatGPT 和 Claude 搜索结果中的机会,同时不希望公开内容被训练爬虫抓取,可以先采用以下选择:
- OpenAI:允许
OAI-SearchBot,拒绝GPTBot; - Anthropic:允许
Claude-SearchBot,根据业务需要决定是否允许Claude-User,拒绝ClaudeBot; ChatGPT-User需要单独看待:它由用户操作触发,OpenAI 明确说明,robots.txt规则可能不适用于这类访问。
先回答三个授权问题
配置前,不要先复制代码,先让内容、法务、安全和业务负责人回答三个问题。
一、是否允许公开内容用于模型训练抓取
模型训练,是指使用数据改进生成式 AI 模型的能力。
OpenAI 用 GPTBot 抓取可能用于训练生成式 AI 基础模型的内容;Anthropic 用 ClaudeBot 收集可能用于模型训练的网页内容。
如果网站不接受这类用途,就应分别拒绝这两个爬虫。拒绝训练爬虫,并不等于必须放弃 AI 搜索可见性。
二、是否希望内容进入AI搜索系统
OpenAI 用 OAI-SearchBot 支持 ChatGPT 搜索;Anthropic 用 Claude-SearchBot 改善 Claude 搜索结果的相关性和准确性。
允许这两个搜索爬虫,只表示网站没有通过 robots.txt 拒绝它们,并为页面进入相关搜索系统保留机会。它不保证页面一定会被抓取、收录、展示或引用。
OpenAI 明确说明,OAI-SearchBot 与 GPTBot 的设置彼此独立。网站可以允许前者,同时拒绝后者。OpenAI爬虫官方说明
三、是否允许AI根据用户请求读取网页
用户在 ChatGPT 或 Claude 中提出具体问题时,系统可能按需访问某个网页。这类访问分别对应 ChatGPT-User 和 Claude-User。
Anthropic 说明,网站可以通过 robots.txt 管理 Claude-User。拒绝它,可能导致 Claude 无法根据用户请求取回网页内容。
OpenAI 对 ChatGPT-User 的说明不同:这类访问由用户操作触发,不是自动遍历全网的爬取,robots.txt 规则可能不适用。它也不负责决定页面能否出现在 ChatGPT 搜索结果中。要管理搜索,应配置 OAI-SearchBot。Anthropic机器人官方说明

六个User-agent分别负责什么
| 平台 | User-agent | 官方用途 | 拒绝后的主要影响 |
|---|---|---|---|
| OpenAI | GPTBot |
抓取可能用于训练生成式 AI 基础模型的内容 | 表示网站内容不应被用于相应的训练用途 |
| OpenAI | OAI-SearchBot |
支持网站出现在 ChatGPT 搜索结果中 | 网站不会出现在 ChatGPT 搜索答案中,但仍可能以导航链接出现 |
| OpenAI | ChatGPT-User |
在用户或自定义 GPT 提出请求时访问网页 | robots.txt 规则可能不适用,不能把 Disallow 当成可靠的访问拦截手段 |
| Anthropic | ClaudeBot |
收集可能用于模型训练的网页内容 | 表示网站未来的材料应排除在相应的训练数据抓取之外 |
| Anthropic | Claude-SearchBot |
改善 Claude 搜索结果的相关性和准确性 | 可能降低网站在 Claude 搜索中的可见性及相关结果的准确性 |
| Anthropic | Claude-User |
在用户提问时按需访问网页 | 可能导致 Claude 无法根据相关用户请求取回网页内容 |
因此,放行 GPTBot 和 ClaudeBot 不是保留 AI 搜索机会的必要条件。它们处理的是训练抓取授权,不是搜索展示授权。

写配置前,必须知道六条边界
1. 三类访问需要分别决定
训练、搜索和用户触发访问是三项不同选择。不要因为希望页面进入 AI 搜索,就默认允许训练爬虫;也不要因为拒绝训练抓取,就连搜索爬虫一起拒绝。
2. Allow不等于保证收录
Allow: / 的意思是允许该爬虫访问全部路径。它只说明 robots.txt 没有拒绝访问,不代表平台一定会抓取、收录、展示或引用页面。
3. Disallow不是安全措施
Disallow: / 的意思是请求该爬虫不要访问任何路径。它表达的是网站的抓取偏好,不是身份验证,也不能阻止所有访问者打开页面。
RFC 9309 是 robots.txt 所依据的互联网标准。该标准明确说明,robots 规则不能代替内容安全措施。敏感内容必须使用登录验证、访问权限、网络隔离等方式保护。RFC 9309
4. robots.txt按主机分别生效
主机在这里指一个具体的域名入口。example.com、www.example.com 和 help.example.com 即使属于同一家公司,也需要分别检查和配置自己的 robots.txt。
5. Crawl-delay不是通用标准
Crawl-delay 的意思是设置抓取间隔。Anthropic 支持这项非标准指令,但它不属于 RFC 9309。不能因为 Anthropic 支持,就认为 OpenAI 或其他爬虫也会执行。
6. ChatGPT-User需要单独处理
在 robots.txt 中为 ChatGPT-User 写入 Allow 或 Disallow,可以表达网站偏好,但不能据此认定用户触发访问一定会被允许或阻止。OpenAI 的官方说明是:这类访问由用户发起,robots 规则可能不适用。
方案一:允许搜索,拒绝训练
如果网站希望保留 AI 搜索机会,同时谨慎处理训练授权,可以从下面这套配置开始:
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: Claude-User
Allow: /
User-agent: ClaudeBot
Disallow: /
Sitemap: https://www.example.com/sitemap.xml
这套示例允许两家的搜索爬虫,拒绝两家的训练爬虫,并表达了允许用户触发访问的偏好。需要再次提醒:OpenAI 说明 ChatGPT-User 访问可能不受 robots 规则约束。
Sitemap 是网站地图文件,用于列出希望爬虫发现的页面。示例中的地址必须替换成网站自己的地址。
上线前,必须把这些内容与现有 robots.txt 合并,不能覆盖线上原文件。原有的 Googlebot、bingbot、后台目录、账户页、购物车、站内搜索页、参数页和测试目录等规则,都要继续保留。
方案二:搜索和训练都允许
如果公司已经确认,公开内容可以被两家的训练爬虫访问,可以采用以下配置:
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: Claude-User
Allow: /
User-agent: ClaudeBot
Allow: /
采用这套方案前,应由内容、法务、安全和业务共同确认授权范围。
即使写了 Allow: /,付费内容、客户数据、合同资料、个人信息和未发布页面也不能直接暴露在公网。robots.txt 是公开的抓取规则,不是保护敏感内容的工具。
方案三:只开放指定公开目录
如果网站只准备向训练爬虫开放公开知识库,可以按路径配置:
User-agent: GPTBot
Allow: /knowledge/
Disallow: /
User-agent: ClaudeBot
Allow: /knowledge/
Disallow: /
这组规则表示:允许访问 /knowledge/ 目录,其他路径全部拒绝。
RFC 9309 规定,当多条规则都能匹配同一个访问路径时,应采用匹配内容更长、也就是更具体的那条规则。由于 /knowledge/ 比 / 更具体,所以知识库目录会被允许,其他目录仍然被拒绝。
这段代码只演示训练爬虫的目录控制。搜索爬虫和用户触发访问是否也按目录开放,仍要分别配置。
规则上线后,还要查看服务器日志并进行实际测试。服务器日志会记录访问者使用的身份名称、访问路径、访问时间和服务器返回结果。只查看 robots.txt 的文字,不能证明爬虫已经按预期访问。
已有robots.txt,应该怎样合并
第一步:保存线上原文件
先保存生产环境正在使用的 robots.txt,并记录修改时间。不要用网上找到的模板直接覆盖原文件。
第二步:整理现有User-agent组
列出文件中的全部 User-agent。如果同一个 User-agent 分散在多个位置,尽量整理到同一组,减少后续检查和维护中的混乱。
第三步:保留原有业务限制
后台、账户、购物车、站内搜索、参数页、测试目录和重复网址等现有规则,不能因为新增 AI 爬虫配置而丢失。
第四步:分别决定六类访问
对 GPTBot、OAI-SearchBot、ChatGPT-User、ClaudeBot、Claude-SearchBot 和 Claude-User 逐项判断。
不要只写 User-agent: *。通配规则只能表达统一选择,无法准确体现网站对训练、搜索和用户访问的不同态度。
第五步:逐个主机部署
主域名、www 域名、帮助中心和其他子域的 robots.txt 互不替代。每个主机都要单独检查、部署和验证。
Crawl-delay什么时候使用
Anthropic 支持非标准扩展 Crawl-delay。如果服务器承受的访问压力较大,但网站又不希望完全拒绝 ClaudeBot,可以参考以下配置:
User-agent: ClaudeBot
Crawl-delay: 1
Allow: /
这项指令只适用于明确表示支持它的爬虫,不能当成通用配置。
如果服务器持续出现高频访问、403、429 或超时,还要检查 CDN、WAF、缓存和服务器容量。
CDN 是内容分发网络,用于把网站内容分发到不同节点;WAF 是网站应用防火墙,用于识别和拦截异常访问。403 通常表示服务器拒绝访问,429 表示请求过于频繁。robots.txt 不能代替服务器限流和访问控制。
上线前后检查这十项
HTTP 状态码是服务器返回的访问结果代码。配置完成后,至少检查以下内容:
| 检查项 | 通过标准 |
|---|---|
| 文件位置 | 每个主机都能通过根地址下的 /robots.txt 访问规则文件 |
| HTTP状态 | 返回 200,即服务器正常提供文件,而不是登录页或验证码页面 |
| 文件格式 | 使用 UTF-8 这种通用文本编码,并以纯文本显示,没有乱码 |
| GPTBot用途 | 团队已经明确允许或拒绝潜在训练抓取 |
| ClaudeBot用途 | 团队已经明确允许或拒绝潜在训练抓取 |
| 搜索爬虫 | OAI-SearchBot、Claude-SearchBot 已单独配置 |
| 用户访问 | ChatGPT-User、Claude-User 已分别评估,并理解两家的规则差异 |
| 原有规则 | 后台、账户、参数页和 Sitemap 等原有规则仍然保留 |
| WAF和CDN | 没有把需要允许的官方请求全部拦截为 403 或 429 |
| 日志复核 | 可以按 User-agent、路径、状态码和时间查看访问记录 |
三个常见误区
误区一:放行GPTBot,就能进入ChatGPT搜索
不对。
ChatGPT 搜索对应的是 OAI-SearchBot,GPTBot 对应潜在训练用途。两项设置彼此独立。
误区二:放行ClaudeBot,就等于放行Claude搜索
不对。
Anthropic 已经将 ClaudeBot、Claude-SearchBot 和 Claude-User 分开。要保留搜索可见性,需要单独配置 Claude-SearchBot。
误区三:robots.txt能保护敏感数据
不能。
robots.txt 是公开文件,任何访问者都可以看到其中列出的路径。敏感内容必须通过登录验证、访问权限、网络隔离和服务器配置进行保护。
最后应该怎么选
如果只想保留 AI 搜索机会,可以允许 OAI-SearchBot 和 Claude-SearchBot,先拒绝 GPTBot 和 ClaudeBot。
如果已经完成内容授权评估,再决定是否放行两家的训练爬虫。
如果只准备开放部分知识内容,就按目录编写规则,并通过服务器日志确认实际访问结果。
不要把六个 User-agent 统一设置为 Allow,也不要统一设置为 Disallow。训练、搜索和用户请求是三个不同的业务选择,应该分别决定、分别配置、分别验证。
常见问题
1. GPTBot和OAI-SearchBot有什么区别?
GPTBot 用于抓取可能进入生成式 AI 基础模型训练流程的内容;OAI-SearchBot 用于支持 ChatGPT 搜索。两项 robots 设置彼此独立。
2. ClaudeBot和Claude-SearchBot有什么区别?
ClaudeBot 收集可能用于模型训练的网页内容;Claude-SearchBot 用于改善 Claude 搜索结果的相关性和准确性。
3. 不放行GPTBot,会影响ChatGPT搜索吗?
按照 OpenAI 当前说明,GPTBot 和 OAI-SearchBot 可以独立配置。要保留搜索机会,应重点确认 OAI-SearchBot 没有被 robots.txt、WAF 或服务器拒绝。
4. 不放行ClaudeBot,还能出现在Claude搜索中吗?
Anthropic 将 ClaudeBot 和 Claude-SearchBot 分开。网站可以拒绝 ClaudeBot,同时允许 Claude-SearchBot,但页面最终是否被展示或引用仍不能保证。
5. Crawl-delay是通用标准吗?
不是。它不属于 RFC 9309 的标准指令。Anthropic明确表示支持该扩展,其他爬虫是否支持,需要查看各自的官方文档。
6. 修改后多久生效?
不同平台的处理周期不同。OpenAI 说明,其搜索系统可能需要约 24 小时才能根据更新后的 robots.txt 调整。因此,不能在保存配置后立即根据一次问答结果判断是否生效。
GEO 指南
想被腾讯元宝引用,要做公众号吗?
GEO 指南
想被AI答案引用,先做这6步
GEO 指南
想被AI引用,内容该发哪里