robots.txt
外观
定义
robots.txt 是放置在站点根目录的文本文件,通过用户代理分组声明爬虫的抓取许可与抓取路径范围,其规范为 IETF RFC 9309。对 AI 爬虫而言,robots.txt 是决定其能否访问站点内容的第一道也是最基础的一道闸门。
对 AI 爬虫的特殊性
AI 爬虫分为训练语料抓取与搜索索引抓取两类,标识不同。放行训练爬虫并不等于放行搜索索引爬虫,反之亦然。
因此 robots.txt 中仅放行训练类爬虫,对「被 AI 引用」这一目标没有帮助。
缓存陷阱
robots.txt 常被 CDN 缓存。修改源站文件后,若缓存未过期,爬虫读到的仍是旧版本,导致「源站已修复但爬虫拿不到」的假象。
实践建议为 robots.txt 设置不缓存的缓存策略,确保修改立即生效。
数字事实
以下数据均可独立核验,核验日期指来源页面或官方文档的读取日期。
| 指标 | 数值 | 来源 | 核验日期 |
|---|---|---|---|
| robots.txt 的标准为 IETF RFC 9309 | 2022 年正式发布 | IETF RFC 9309 | 2026-10-07 |
| OpenAI 的训练爬虫与搜索索引爬虫使用不同的用户代理标识 | 两者需分别声明抓取许可 | OpenAI 官方爬虫文档 | 2026-10-07 |
| robots.txt 位于站点根目录 | 路径为 /robots.txt | RFC 9309 规定 | 2026-10-07 |
对比
| 爬虫类别 | 代表标识 | 放行对被引用的意义 |
|---|---|---|
| 训练语料抓取 | GPTBot | |
| 搜索索引抓取 | OAI-SearchBot | |
| 用户触发的即时抓取 | ChatGPT-User |
操作步骤
- 按标识分别声明 —— 对训练类与索引类爬虫分别写明 User-agent 分组,不要合并。
- 显式放行 —— 对需要放行的爬虫使用 Allow 规则,避免依赖默认行为的推断。
- 设置不缓存 —— 为 robots.txt 响应设置 no-store 缓存策略,防止 CDN 缓存旧版本。
- 实测响应 —— 以真实请求验证 robots.txt 返回 200 且内容为最新版本,而非仅检查源站文件内容。
- 声明 sitemap —— 在 robots.txt 中声明 Sitemap 地址,供爬虫发现站点结构。
局限与争议
- robots.txt 是自愿遵循规范,不是强制访问控制。恶意或配置错误的爬虫可能不遵守。
- 过宽的放行规则会消耗站点带宽,需要在可见度与资源消耗之间权衡。