为什么 AI 爬虫必须分层治理
“允许 AI”或“禁止 AI”都过于笼统。同一家平台可能为传统搜索索引、用户主动请求、答案搜索取材和模型训练使用不同的机器人标识或控制令牌。这些用途对业务价值、内容授权、服务器成本和隐私风险的影响并不相同。
治理的起点不是收集一份越来越长的 User-Agent 名单,而是明确内容策略:哪些页面希望进入公开搜索,哪些可以在用户主动请求时被读取,哪些不希望用于训练,哪些无论何种机器人都必须通过登录。然后再根据各平台最新官方文档映射技术规则。
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 规则,以及平台对该标识的用途说明。
八步建立爬虫治理策略
- 给内容分级。分为公开且希望被发现、公开但限制某些用途、需登录、含个人信息或内部机密等类别。
- 写下业务目标。分别决定网页搜索、AI 答案、用户代理和训练用途是允许、限制还是待评估,并记录负责人。
- 只从官方资料建机器人清单。保存标识、用途、官方 URL、核验方式、检查日期和下一次复核日期。
- 设计默认规则。公开内容可采用清晰的默认策略,再为明确用途增加覆盖规则;后台、API 和私有路径使用真实权限保护。
- 检查规则优先级。确认具体 User-Agent 与通配规则不会产生意外覆盖,并在修改前保留旧版。
- 测试公开结果。从站外请求 robots.txt 和代表性页面,验证状态码、内容、缓存与不同网络环境。
- 结合日志观察。记录请求时间、路径、状态、字节、User-Agent 和经隐私处理的来源信息,识别错误、流量突增和伪装请求。
- 按事件复核。平台更名、官方用途变化、新机器人出现、服务器成本异常或业务策略变化时重新评估。
把政策写成可审阅决策
用途: 模型训练
业务决定: 暂不允许
适用内容: 全站公开正文
官方标识: 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 字符串单独证明真实爬虫身份。
- 日志是否能关联时间、路径、状态、字节和当时的规则版本。
- 抓取、索引、排名、答案采用和模型训练是否使用不同证据。
- 策略变化是否有负责人、原因、版本记录和复核计划。