Anthropic 的爬虫:ClaudeBot、Claude-SearchBot 和 Claude-User

发布于

简短回答

Anthropic 运行三个代理:ClaudeBot 收集可能用于训练其模型的内容,Claude-SearchBot 抓取内容以改进 Claude 的搜索结果,Claude-User 在 Claude 用户的问题需要时获取页面。每个都有自己的 robots.txt 标识,Anthropic 表示这三个都遵循 robots.txt。只屏蔽 ClaudeBot 并不会停止搜索或用户抓取。

Anthropic 在一个帮助页面中记录了其爬虫,结构与其他 AI 厂商相似:一个用于训练,一个用于搜索,一个用于代表用户进行实时获取。如果你希望 Claude 能够找到并引用你的页面,后两个最为重要。

本页内容
  1. ClaudeBot 是做什么的?
  2. Claude-SearchBot 是做什么的?
  3. Claude-User 是做什么的?
  4. 如何为 Claude 编写 robots.txt 规则?
  5. Anthropic 的做法与 OpenAI 和 Perplexity 相比如何?
  6. 应该按 IP 地址屏蔽 Anthropic 吗?
  7. 为什么 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 的关系。

如果你为这三家写一个 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,任何人都可以复制。

参考资料

更多文章