Anthropic 的爬虫:ClaudeBot、Claude-SearchBot 和 Claude-User
Anthropic 运行三个代理:ClaudeBot 收集可能用于训练其模型的内容,Claude-SearchBot 抓取内容以改进 Claude 的搜索结果,Claude-User 在 Claude 用户的问题需要时获取页面。每个都有自己的 robots.txt 标识,Anthropic 表示这三个都遵循 robots.txt。只屏蔽 ClaudeBot 并不会停止搜索或用户抓取。
Anthropic 在一个帮助页面中记录了其爬虫,结构与其他 AI 厂商相似:一个用于训练,一个用于搜索,一个用于代表用户进行实时获取。如果你希望 Claude 能够找到并引用你的页面,后两个最为重要。
本页内容
ClaudeBot 是做什么的?
ClaudeBot 收集可能用于训练 Anthropic 生成式 AI 模型的网络内容。根据 Anthropic 的说法,禁止它表示你网站今后的内容应被排除在训练数据集之外。
Anthropic 还表示,它遵循基于 IETF 草案的机器可读的禁止 AI 训练信号,并且 robots.txt 中指明 ClaudeBot 的规则优先于这个通用设置。与其他训练爬虫一样,是否屏蔽它是一个政策选择。
Claude-SearchBot 是做什么的?
Claude-SearchBot 抓取网络内容,以提高 Claude 搜索结果的相关性和准确性。Anthropic 表示,屏蔽它会使你的内容无法被搜索索引,这可能降低你在用户搜索结果中的可见度和准确性。
如果你希望 Claude 的搜索功能在有人提问之前就了解你的页面,就应该允许这个代理。因为它是搜索爬虫,所以任何搜索爬虫都看重的东西对它同样有利:在 robots.txt 中列出的站点地图、清晰的内部链接,以及在首次响应中就返回内容的页面。
Claude-User 是做什么的?
Claude-User 在 Claude 用户提出需要访问网站的问题时访问该网站,例如有人分享一个网址,或请 Claude 查找某些信息。Anthropic 表示,屏蔽它会阻止响应用户查询的检索,这可能降低你在用户发起的网络搜索中的可见度。
请注意它与其他一些厂商的区别。Anthropic 表示其机器人遵循 robots.txt 指令,并介绍了通过 robots.txt 屏蔽 Claude-User 的方法。相比之下,OpenAI 和 Perplexity 则表示它们由用户请求触发的抓取程序可能不遵循 robots.txt。
如何为 Claude 编写 robots.txt 规则?
每个代理都有自己的标识,根据 RFC 9309,对某个爬虫来说,指明它的规则组会取代 * 规则组。常见的选择是允许搜索和用户抓取,并选择退出训练:
User-agent: Claude-SearchBot
User-agent: Claude-User
Allow: /
User-agent: ClaudeBot
Disallow: /
User-agent: *
Allow: /
Anthropic 还将 Crawl-delay 作为非标准扩展来支持,例如在 User-agent: ClaudeBot 下写 Crawl-delay: 1,如果你想放慢抓取而不是屏蔽的话。规则必须位于每个主机顶级目录下的 robots.txt 中,因此请把它们添加到你想覆盖的每个子域名。
Anthropic 的做法与 OpenAI 和 Perplexity 相比如何?
三家厂商遵循相同的模式,只是名称不同,这使得合并的 robots.txt 很容易理解。主要区别在于,各家如何对待用户请求触发的实时抓取与 robots.txt 的关系。
- 搜索爬虫:Anthropic 是
Claude-SearchBot,OpenAI 是OAI-SearchBot,Perplexity 是PerplexityBot。 - 训练爬虫:Anthropic 是
ClaudeBot,OpenAI 是GPTBot。Perplexity 表示PerplexityBot不用于为 AI 基础模型抓取内容。 - 用户抓取:
Claude-User、ChatGPT-User和Perplexity-User。Anthropic 表示其机器人遵循 robots.txt;OpenAI 表示 robots.txt 可能不适用于ChatGPT-User;Perplexity 表示Perplexity-User通常会忽略它。
如果你为这三家写一个 robots.txt,请把搜索和用户标识放在一个规则组,把训练标识放在另一个规则组。这样政策便于阅读,也能清楚看出你针对每种用途做了什么选择。
应该按 IP 地址屏蔽 Anthropic 吗?
Anthropic 建议不要这样做。其文档称,屏蔽 IP 地址可能无法正确或持久地保证选择退出,因为这也会使爬虫无法读取你的 robots.txt。请使用 robots.txt 来声明你的政策。
Anthropic 确实在 claude.com/crawling/bots.json 公布了其爬虫的 IP 地址。使用这份列表的有用方式与屏蔽相反:让你的防火墙验证声称是 Claude-SearchBot 或 Claude-User 的请求确实来自 Anthropic,然后放行。
为什么 Claude 仍然可能读不到我的页面?
即使 robots.txt 很宽松,你的防火墙或 CDN 仍可能对 Anthropic 的代理返回 403 或验证页面。Anthropic 表示其机器人遵守反规避技术,不会尝试绕过验证码,所以一个验证页面就会让这次访问直接结束。文字只有在运行 JavaScript 后才出现的页面,到达时也可能几乎是空的。
AISeeWhy 会与浏览器并列,分别以 ClaudeBot、Claude-SearchBot 和 Claude-User 的身份请求你的页面,并检查你针对每个爬虫的 robots.txt 规则,让你看到自己写下的政策是否就是服务器实际执行的政策。
常见问题
屏蔽 ClaudeBot 会让我的网站从 Claude 的回答中消失吗?
它本身不会。搜索索引和用户请求的抓取使用的是 Claude-SearchBot 和 Claude-User,它们有各自的 robots.txt 标识。
Claude-User 会遵循 robots.txt 吗?
Anthropic 表示其机器人遵循 robots.txt,并介绍了在其中屏蔽 Claude-User 的方法,效果是 Claude 无法为用户的问题检索你的页面。
Anthropic 的爬虫会破解验证码吗?
不会。Anthropic 表示其机器人遵守反规避技术,不会尝试绕过验证码。
我能放慢 ClaudeBot 的速度,而不是直接屏蔽它吗?
可以。Anthropic 将 Crawl-delay 作为非标准扩展来支持,例如在 robots.txt 的 ClaudeBot 规则组中写 Crawl-delay: 1。
如何验证请求确实来自 Anthropic?
将来源 IP 与 Anthropic 在 claude.com/crawling/bots.json 公布的列表进行比对。仅凭 user agent,任何人都可以复制。