[控场AI]
· 10 分钟阅读· 5,230 字

AI爬虫该不该访问你的网站?训练与搜索要分开决策

AI爬虫该不该访问你的网站?训练与搜索要分开决策

AI爬虫分训练、搜索与用户触发三类,robots.txt可分控,封禁决策要分开做。

OpenAI、Anthropic、Perplexity 各自运营多个 user agent,用途分为训练、搜索和用户触发三类,robots.txt 可以分别控制。屏蔽训练爬虫只影响未来抓取,不影响已收集数据;屏蔽搜索爬虫则会让网站退出 AI 回答的来源池,可能从回答中彻底消失。文章据此提出一个判断框架:想被 AI 助手推荐,就允许搜索爬虫;内容本身就是产品,则可有理由屏蔽训练爬虫。文中给出三套示例配置、五类常见错误(通配符全封、防火墙拦截、名称拼错、误以为 robots.txt 万能、忽略子域名),并强调设置后必须用检查工具和服务器日志验证。llms.txt 可作为低成本补充,但最终应追踪 AI 助手是否真的引用你。

许多网站在2023年就给 GPTBot 加上 Disallow: /,之后再没回头看。有些甚至把能查到的所有 AI user agent 全都封了。这样做本身没问题,但很多人做出这个决定时并不知道:不同 AI 爬虫承担的任务并不一样。封掉训练爬虫,内容不会进入训练集;封掉搜索爬虫,则可能从 AI 回答里彻底消失。本文把这两类爬虫拆开,帮你做出有意识的取舍。

rss source: Should AI crawlers access your site?

一个公司,多个爬虫

OpenAI、Anthropic 和 Perplexity 都不止一个 user agent。各家官方文档按用途把它们分开,并且在 robots.txt 里可以分别控制。

OpenAI 的四个爬虫

  • GPTBot:抓取可能用于训练 OpenAI 生成式 AI 基础模型的内容。禁用它,等于声明你的内容不应用于训练。
  • OAI-SearchBot:让网站在 ChatGPT 的搜索功能中出现。OpenAI 表示,选择退出 OAI-SearchBot 的站点不会出现在 ChatGPT 搜索回答里,但仍可能作为导航链接出现。
  • ChatGPT-User:为 ChatGPT 和自定义 GPT 中的某些用户操作访问页面。OpenAI 称它不用于自动爬取,且由于动作由用户发起,robots.txt 规则可能并不适用。
  • OAI-AdsBot:验证作为广告提交到 ChatGPT 的页面,不用于训练模型。

OpenAI 强调每个设置相互独立:你可以允许 OAI-SearchBot 而禁止 GPTBot。它还提到,搜索相关的 robots.txt 变更大约需要 24 小时生效。

Anthropic 的三个爬虫

据 Anthropic 帮助中心:

  • ClaudeBot:收集可能用于模型训练的网页内容。限制它,意味着未来的内容应被排除在训练数据集之外。
  • Claude-User:当用户向 Claude 提问时抓取页面。禁用它可能降低你在用户主动网络搜索中的可见度。
  • Claude-SearchBot:浏览网络以提升搜索结果质量。禁用它则阻止搜索优化索引,可能减少你在用户搜索结果中的曝光。

Anthropic 表示其爬虫遵守 robots.txt,并支持非标准的 Crawl-delay 指令。它还提醒,用 IP 地址屏蔽可能并不可靠,因为它会让 Anthropic 无法读取你的 robots.txt。

Perplexity 的两个爬虫

  • PerplexityBot:在 Perplexity 搜索结果中展示并链接网站。Perplexity 称它不用于为 AI 基础模型抓取内容。
  • Perplexity-User:支持用户操作。Perplexity 表示它通常忽略 robots.txt,因为抓取是用户请求的。

检索增强生成(RAG)为什么让搜索爬虫变得关键。 很多人把“AI 回答”想象成模型凭记忆写出来,但当前主流产品在回答带时效或具体事实的问题时,往往先实时检索一批网页,再把检索到的内容交给模型组织语言。这一步就是检索增强生成。它能展示和链接哪些来源,取决于它事先抓取并建了索引的页面池。OAI-SearchBot、Claude-SearchBot、PerplexityBot 这类爬虫正是为填充这个池子服务的。因此屏蔽搜索爬虫,并不只是“不让它读”,而是让你的页面根本不进入候选集,模型自然无从引用。这也解释了为什么屏蔽训练爬虫和屏蔽搜索爬虫会带来完全不同的后果:前者影响未来模型的参数,后者影响此刻的曝光。

训练爬虫和搜索爬虫是两种决策

一个更有用的思考框架是:

训练爬虫(GPTBot、ClaudeBot)喂给未来模型。屏蔽它们,关乎你对内容使用方式的控制,对是否出现在实时搜索回答中没有文档记录的直接影响。

搜索爬虫(OAI-SearchBot、Claude-SearchBot、PerplexityBot)支撑检索侧。屏蔽它们,你就退出了这些产品能够展示和链接的来源池。

用户触发抓取(ChatGPT-User、Claude-User、Perplexity-User)代表某个具体的人问某个具体的问题。一些厂商表示 robots.txt 可能不适用。

如果你的目标是被 AI 助手推荐,就允许搜索爬虫。是否允许训练爬虫,是另一个独立的商业判断。

robots.txt 的工作原理与边界。 robots.txt 是放在网站根目录下的纯文本文件,爬虫在抓取前应先读取它,再决定是否访问某个路径。它依赖爬虫的自愿遵守,本质上是一种约定而非强制锁。规则按 user-agent 分组,每个分组以一行或多行 User-agent 开头,下面跟 Allow 或 Disallow 路径;更具体(名称精确匹配)的分组会覆盖通配分组 *。路径支持前缀匹配,Disallow: / 表示拒绝整站。需要注意的是,robots.txt 只约束“自动抓取”,对由真人点击触发的抓取约束力较弱,这也是文中把“用户触发抓取”单列的原因。另外它在子域名之间不共享,每个主机都要单独提供一份。

如何做决定:三个问题

1. 我们希望 AI 助手推荐自己吗? 对大多数卖东西的企业来说,答案是肯定的。允许搜索爬虫。

2. 内容本身就是产品吗? 出版商、付费研究机构和授权内容网站有理由屏蔽训练爬虫——内容就是他们要卖的东西。

3. 你能接受内容被用于训练吗? 对于有公开营销页面的软件公司,很多团队认为被模型“认识”的收益大于成本;也有人不同意。两者都有道理。注意,屏蔽训练爬虫只影响未来的抓取,不影响已经收集的数据。

没有普适的正确答案,只有你知情后主动选择的答案。

示例 robots.txt 配置

每组以 User-agent 行开头,规则仅作用于该组指定的 agent。

允许所有 AI 爬虫

User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: Claude-User
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Perplexity-User
Allow: /

如果没有规则屏蔽这些 agent,它们默认通常是被允许的。显式列出并非必须,但能让意图更明确。

出现在 AI 搜索中,退出训练

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

这与各家自己的描述一致:屏蔽训练爬虫,允许搜索爬虫。需要注意,这是基于你对官方文档的解读。厂商可能调整爬虫策略,建议定期复查。

只屏蔽私密区域

User-agent: GPTBot
User-agent: ClaudeBot
User-agent: PerplexityBot
Disallow: /account/
Disallow: /internal/

多个 User-agent 行叠加在一组规则之上是合法的。大多数网站应该这样做,而不是一刀切全封。

常见错误

通配符 User-agent: * 全封:这会屏蔽所有没有更具体分组的爬虫,包括上面所有搜索爬虫。检查你是否有通配规则。

在防火墙层面屏蔽:CDN 或 WAF 的 bot 规则可能对 robots.txt 允许的爬虫返回 403。Perplexity 和 OpenAI 都公开了 IP 段以便加白名单;Anthropic 则明确要求不要依赖 IP 屏蔽来退出。

user-agent 名称拼写错误:正确名称是 GPTBot、OAI-SearchBot、ChatGPT-User、ClaudeBot、Claude-SearchBot、Claude-User、PerplexityBot 和 Perplexity-User。拼错的名称不会匹配任何爬虫,而且会静默失败。

以为 robots.txt 能拦住一切:它是一种请求,不是锁。厂商说自家爬虫会遵守,但某些用户触发的抓取可能不会。如果内容必须保密,请放到登录之后。

忘记子域名:robots.txt 是按主机生效的。Anthropic 提醒每个子域名都要单独配置。

CDN 与 WAF 的 bot 管理为何容易误伤。 很多站点在 Cloudflare 或类似 CDN 上开启了“Bot Fight Mode”或自定义 WAF 规则,这些规则在边缘节点就完成了拦截,请求根本到不了源站,也就读不到你的 robots.txt。结果是:robots.txt 里写着 Allow,日志里却看不到对应 user-agent,页面却持续被拒。文中建议用公开 IP 段做白名单,但要注意 IP 段会变动,需要定期同步;Anthropic 则明确反对依赖 IP 屏蔽来退出,因为那会连带阻断它读取你的 robots.txt 的能力。排查这类问题的顺序应是:先在边缘层放行,再验证 robots.txt 能否被正常读取,最后才看服务器日志确认爬虫是否真的到达。

测试你设置的规则

不要信任没测试过的文件。可以用 AI crawler access checker 读取你的 robots.txt,查看哪些 AI user agent 被允许或屏蔽。每次修改后运行一次,CDN 或防火墙更新后再运行一次。然后到服务器日志里检查上述 user-agent 名称——如果明明允许了却从未出现,说明互联网和你的服务器之间有东西挡住了。

也可以考虑 llms.txt

Robots.txt 说明爬虫可以抓什么,llms.txt 则是一个提议中的纯文本文件,用来指引语言模型访问你最有用的页面。把它当作低成本补充,而非万能修复。想尝试的话,可以用 llms.txt 生成器从你的网站生成一个起始文件。

llms.txt 的定位与局限。 llms.txt 是一个社区提出、尚未被主流厂商正式采纳的约定:在站点根目录放一个 Markdown 格式的纯文本文件,用标题和链接列表,把对语言模型最有价值的页面(如产品说明、文档、定价)集中指出来,避免模型在大量导航和营销噪音中迷失。它与 robots.txt 的职责不同——后者管“能不能抓”,前者管“该看什么”。由于没有强制标准,是否读取完全取决于各家实现,因此它目前只能当作锦上添花的补充,不能替代 robots.txt 的权限控制,也不能保证被引用。若站点内容结构复杂,先确保有清晰的 sitemap 和语义化页面,往往比新增 llms.txt 更有效。

然后衡量结果

修改 robots.txt 只是输入,你在意的是输出:AI 助手会提到并引用你吗?规则定下来之后,去追踪。Pineprompt 可以在 ChatGPT、Gemini、Perplexity、Claude、Google AI Overviews、AI Mode、Grok 和 Copilot 上运行你的提示词,报告你出现在哪里、哪些来源被引用。套餐每月 99 美元起,包含所有引擎。详见定价页面。

原文发表于 pineprompt.com。

#AI爬虫#robots.txt#GPTBot#OAI-SearchBot#ClaudeBot#PerplexityBot#llms.txt#AI搜索可见性
分享:

相关推荐