文章区分模型训练、搜索检索和用户触发访问三类爬虫,解释一刀切封禁可能影响网站在 AI 回答中的引用。建议审计生产环境 robots.txt,并依据各厂商官方文档分别配置规则。
有不少网站竟然屏蔽了它们希望获得引用的 AI 爬虫,通常是因为有人在“屏蔽所有 AI”的风潮中复制了一段 robots.txt 配置,之后就再也没有检查过。作为开发者,你可以按下面的思路处理这件事,避免影响网站的正常运行。
关键区别在于:有些 bot 收集内容是为了训练模型,另一些则抓取页面来即时回答用户的问题。屏蔽它们,带来的影响截然不同。
主要服务商都在文档中为这些不同用途列出了各自的 user agent。例如,OpenAI 将 GPTBot 用于训练,OAI-SearchBot 用于搜索,ChatGPT-User 用于用户触发的访问。Anthropic、Perplexity、Google 和 Apple 也发布了各自的列表。编写规则前,请查阅每家服务商的官方文档,因为这些名称和用途会发生变化。
/robots.txt,而不是预发布环境中的文件。User-agent: * 搭配 Disallow: / 这样的全局规则,以及任何针对 AI 的 user agent。如果你希望在 AI 回答中被引用,但不想让内容用于训练,一种常见做法是允许搜索和用户触发的 agent,同时禁止训练用途的 agent。配置思路如下:
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
把它当作一种配置模式,而不是可以直接复制粘贴的完整列表。请根据服务商当前的文档核实每个 user agent,并记住:robots.txt 是向遵守规则的爬虫提出的请求,并不是访问控制机制。
允许爬虫访问,只完成了一半工作。检索系统需要能够真正读取的内容:
llms.txt 是一种提议中的约定:在网站根目录放置一个 Markdown 文件,引导语言模型访问网站上最有价值的页面。添加它的成本很低,也能帮助支持它的工具,但各个引擎的支持情况并不一致,因此不要把它当作可抓取页面的替代品。
修改规则后,观察日志中是否出现了你允许访问的 user agent,并确认它们收到 200 响应。接着,检查真正重要的结果:assistant 是否开始引用你的页面。CiteMe 正是为追踪这件事而构建的,它可以跨引擎、持续追踪引用情况。
robots.txt 配置错误往往悄无声息。网站不会出故障,你只是默默地从回答中消失了。花十分钟检查一下,很值得。
如需采取进一步行动,你可以考虑屏蔽此人和/或举报滥用行为。