为什么 AI 爬虫必须分层治理

“允许 AI”或“禁止 AI”都过于笼统。同一家平台可能为传统搜索索引、用户主动请求、答案搜索取材和模型训练使用不同的机器人标识或控制令牌。这些用途对业务价值、内容授权、服务器成本和隐私风险的影响并不相同。

治理的起点不是收集一份越来越长的 User-Agent 名单,而是明确内容策略:哪些页面希望进入公开搜索,哪些可以在用户主动请求时被读取,哪些不希望用于训练,哪些无论何种机器人都必须通过登录。然后再根据各平台最新官方文档映射技术规则。

robots.txt 不是安全边界

Robots Exclusion Protocol 是合规机器人遵循的公开规则,不是认证系统。敏感、付费、个人或内部内容必须使用登录、权限和网络访问控制,不能依赖 Disallow 保密。

先区分四种用途

  • 传统搜索索引:抓取页面以建立网页搜索索引,例如 Googlebot、bingbot。
  • 答案搜索取材:为带来源的搜索或生成式答案发现和读取页面,平台可能提供独立标识。
  • 用户触发访问:用户在产品中明确要求访问一个页面,代理代表这次操作发起请求。
  • 模型训练:收集公开内容用于改进基础模型或相关系统,控制方式可能与搜索用途分开。

平台命名和用途会变化,本文列举的标识只能作为设计示例。上线前必须回到官方文档确认当前名称、规则含义、IP 验证方式和生效延迟。

用途、控制与证据矩阵

用途示例标识或令牌主要控制允许后能证明什么
网页搜索Googlebot、bingbot。robots.txt、页面索引指令、平台工具。没有被相应 robots 规则禁止,不能证明已抓取或索引。
OpenAI 搜索OAI-SearchBot。按 OpenAI 官方说明配置 robots.txt。允许该用途访问公开路径,不能保证 ChatGPT 搜索展示或引用。
用户操作ChatGPT-User 等用户触发标识。业务权限、速率限制与平台说明。一次请求可以被服务,不能代表持续抓取或训练。
OpenAI 训练GPTBot。按用途单独设置 robots 规则。表达站点对该标识的抓取偏好,不代表法律授权问题全部解决。
Google 扩展用途Google-Extended 产品令牌。按 Google 官方文档设置 robots 规则。控制文档说明的扩展用途,不影响 Google 搜索收录与排名。

User-Agent 字符串为什么不是身份证

任意脚本都可以把请求头写成 Googlebot、bingbot 或 ChatGPT-User。因此,修改 User-Agent 后得到 200,只能说明服务器没有基于这个字符串阻断测试请求。需要确认真实身份时,应按照平台提供的方法核对来源 IP、正向与反向 DNS,或官方公布的 IP 范围。

身份验证与用途判断也不同。即使确认请求来自某个平台,也要看它使用的是哪个官方标识、请求了什么路径、是否遵循缓存和 robots 规则,以及平台对该标识的用途说明。

八步建立爬虫治理策略

  1. 给内容分级。分为公开且希望被发现、公开但限制某些用途、需登录、含个人信息或内部机密等类别。
  2. 写下业务目标。分别决定网页搜索、AI 答案、用户代理和训练用途是允许、限制还是待评估,并记录负责人。
  3. 只从官方资料建机器人清单。保存标识、用途、官方 URL、核验方式、检查日期和下一次复核日期。
  4. 设计默认规则。公开内容可采用清晰的默认策略,再为明确用途增加覆盖规则;后台、API 和私有路径使用真实权限保护。
  5. 检查规则优先级。确认具体 User-Agent 与通配规则不会产生意外覆盖,并在修改前保留旧版。
  6. 测试公开结果。从站外请求 robots.txt 和代表性页面,验证状态码、内容、缓存与不同网络环境。
  7. 结合日志观察。记录请求时间、路径、状态、字节、User-Agent 和经隐私处理的来源信息,识别错误、流量突增和伪装请求。
  8. 按事件复核。平台更名、官方用途变化、新机器人出现、服务器成本异常或业务策略变化时重新评估。

把政策写成可审阅决策

用途: 模型训练
业务决定: 暂不允许
适用内容: 全站公开正文
官方标识: GPTBot
技术规则: robots.txt 中单独 Disallow
不受此规则保护: 已公开缓存、第三方转载、恶意爬虫
负责人: 内容与法务共同复核
官方文档检查日期: 2026-09-17
下次复核: 2026-12-17

配置与日志应该如何配合

一个“搜索允许、训练限制”的示意规则

User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/

# 示例:保留 OpenAI 搜索发现,限制 GPTBot 对全站的抓取。
# 上线前必须核对 OpenAI 最新官方说明。
User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Disallow: /

Sitemap: https://example.com/sitemap-index.xml

这段规则只表达给合规机器人的抓取偏好。它不会保护后台数据,也不能说明其他平台的训练政策。若公开页面中包含不应被任何人访问的信息,正确动作是移除公开访问并加权限,而不是继续追加 User-Agent。

日志中至少观察什么

字段用途常见误读
时间与路径判断抓取范围、频率和更新后回访。一次访问不等于完整抓取。
状态码与字节发现 403、429、5xx、空正文和重定向。200 不等于内容已采用。
User-Agent初步分类请求。字符串相同不等于真实身份。
验证后来源在官方方法支持时确认平台请求。单靠 IP 归属名称就下结论。
robots 版本还原请求发生时的公开策略。用当前规则解释历史请求。

CDN 与反爬系统最容易制造的冲突

  • robots.txt 允许,但 WAF 根据数据中心 IP 或频率返回 403。
  • 普通浏览器获得正文,未知客户端得到 JavaScript 验证页。
  • 缓存节点仍提供旧 robots.txt,导致不同地区规则不一致。
  • 错误地只允许伪造 User-Agent,反而让恶意请求通过。
  • 对所有机器人统一限速,造成 sitemap 和重要页面长期无法完成抓取。

因此,每次策略修改要同时检查 robots、源站、CDN、WAF 和日志。治理不是单个文本文件,而是一套内容决策与访问策略的一致实现。

允许抓取后如何评价结果

先看真实平台请求是否能够正常获得页面,再看平台是否报告发现或索引;AI 答案则用固定问题记录提及、链接、内容采用和准确度。不能把请求日志中的一次 200 当成“被模型学习”,也不能把没有日志直接解释为平台不使用内容,因为平台可能使用搜索索引、缓存或其他公开来源。

常见问题

禁止 GPTBot 会影响 Google 或 Bing 排名吗?

该规则针对 GPTBot 标识,不应被直接解释为其他平台的搜索规则。每个平台和用途要按各自官方文档评估,不能互相外推。

允许 OAI-SearchBot 就一定会被 ChatGPT 引用吗?

不会。允许抓取只是移除一类访问限制。是否发现、选择、展示或引用还取决于平台系统、查询相关性和内容质量。

能否通过 robots.txt 阻止所有模型训练?

不能把它视为对所有主体和历史数据的绝对控制。robots 依赖合规遵守,且不同平台标识、政策和数据来源不同;法律与合同问题需要单独评估。

发现陌生 AI User-Agent 应该立刻屏蔽吗?

先查官方来源、验证请求、观察行为与成本,再依据内容政策决定。名称中含 AI 不足以说明真实身份或用途。

AI 爬虫治理检查清单

  • 是否把公开搜索、答案搜索、用户触发访问和训练用途分开决策。
  • 私有、付费和敏感内容是否使用认证与权限,而不是只写 robots。
  • 机器人名称、用途和验证方法是否来自当前官方文档。
  • 是否记录官方资料的检查日期与下一次复核日期。
  • 通配规则与具体 User-Agent 规则是否经过实际匹配测试。
  • 源站、CDN、WAF 和缓存是否提供一致的 robots 与页面响应。
  • 是否避免用 User-Agent 字符串单独证明真实爬虫身份。
  • 日志是否能关联时间、路径、状态、字节和当时的规则版本。
  • 抓取、索引、排名、答案采用和模型训练是否使用不同证据。
  • 策略变化是否有负责人、原因、版本记录和复核计划。