2024年3月,某新闻网站的SEO负责人发现:网站的Google SGE引用率在2月份突然降为零。排查后发现问题出在robots.txt——他们在1月底更新robots.txt时,不小心在User-agent: *中添加了一行Disallow: /,虽然随后为Googlebot添加了Allow,但Google-Extended(Google AI爬虫)遵循的是通配符规则,被意外阻止了。
恢复配置后,网站被Google SGE引用的内容在3周内恢复到了原有水平。这个”意外”让网站损失了近一个月的AI搜索曝光。
| AI爬虫 | User-Agent | 所属方 | 主要用途 |
|---|---|---|---|
| Google-Extended | Google-Extended |
SGE、Gemini训练 | |
| GPTBot | GPTBot |
OpenAI | ChatGPT训练 |
| ChatGPT-User | ChatGPT-User |
OpenAI | ChatGPT实时检索 |
| CCBot | CCBot |
Common Crawl | AI训练数据源 |
| BingAI | BingAI |
Microsoft | Bing Chat、Copilot |
| Claude-Web | Claude-Web |
Anthropic | Claude模型 |
| Bytespider | Bytespider |
ByteDance | 字节跳动AI产品 |
| PerplexityBot | PerplexityBot |
Perplexity AI | Perplexity搜索 |
AI爬虫通常有两种访问模式,需要在robots.txt中分别处理:
模式一:训练数据抓取(Training Crawl)
– 用途:将网页内容纳入AI模型训练数据集
– 特征:批量抓取大量内容,频率可能很高
– 对应User-Agent:GPTBot、Google-Extended(训练用途)
模式二:实时检索抓取(Real-time Retrieval)
– 用途:基于用户查询实时检索内容,用于生成答案
– 特征:按需抓取,频率较低
– 对应User-Agent:ChatGPT-User、Google-Extended(检索用途)、PerplexityBot
# 允许所有爬虫抓取核心内容
User-agent: *
Allow: /
# 限制对无关或低质量内容的访问
Disallow: /admin/
Disallow: /private/
Disallow: /temp/
Disallow: /search/
Disallow: /*?page=* # 分页参数
Disallow: /*sort=* # 排序参数
# 明确允许Google AI爬虫
User-agent: Google-Extended
Allow: /
# 明确允许OpenAI爬虫
User-agent: GPTBot
Allow: /
User-agent: ChatGPT-User
Allow: /
# 允许Common Crawl(AI训练数据源)
User-agent: CCBot
Allow: /
# 允许Bing AI
User-agent: BingAI
Allow: /
# 允许其他AI爬虫
User-agent: PerplexityBot
Allow: /
User-agent: Claude-Web
Allow: /
# Sitemap位置
Sitemap: https://example.com/sitemap.xml
场景一:允许AI爬虫抓取核心内容,限制低价值内容
User-agent: Google-Extended
Allow: /blog/
Allow: /guides/
Allow: /product/
Allow: /about/
Disallow: /tag/
Disallow: /category/
Disallow: /author/
场景二:仅允许特定AI爬虫,阻止其他AI爬虫
# 仅允许Google AI爬虫
User-agent: Google-Extended
Allow: /
# 阻止其他所有AI爬虫
User-agent: GPTBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Claude-Web
Disallow: /
场景三:完全阻止AI训练抓取,但允许实时检索
# 阻止GPT模型训练
User-agent: GPTBot
Disallow: /
# 允许ChatGPT实时检索
User-agent: ChatGPT-User
Allow: /
# 阻止Google AI训练(谨慎使用)
User-agent: Google-Extended
Disallow: /
Q1:你是否希望你的内容被AI模型用于训练?
├─ 是 → Allow AI爬虫抓取
└─ 否 → Disallow AI爬虫(但可能影响AI搜索引用)
Q2:你是否希望你的内容被AI搜索(如SGE)引用?
├─ 是 → 确保AI爬虫能访问核心内容
└─ 否 → Disallow AI爬虫
Q3:你是否有不想被AI爬虫抓取的内容类型?
├─ 是 → 精细化配置,限制特定目录
└─ 否 → 使用通配符Allow
1. Google Search Console robots.txt测试器
Google Search Console → 设置 → robots.txt测试器
输入爬虫:Google-Extended
测试URL:测试关键页面是否可访问
2. 在线robots.txt测试工具
使用https://www.robotstxt.org/或https://en.ryte.com/robotstxt/等工具验证规则逻辑是否正确。
3. 手动测试
# 使用curl测试AI爬虫的访问权限
curl -A "Google-Extended" -I https://example.com/page
# 正常返回200 → 允许
# 返回403/404(如配置Disallow则会返回类似403的禁止状态)
| 错误类型 | 示例 | 后果 | 修正 |
|---|---|---|---|
| 通配符阻止 | User-agent: * Disallow: / |
阻止所有爬虫 | 为AI爬虫添加Allow规则 |
| 大小写错误 | user-agent: google-extended |
规则无效 | 使用正确的User-Agent名称 |
| 缺少AI爬虫配置 | 未配置Google-Extended |
使用通配符规则(可能被阻止) | 明确添加AI爬虫规则 |
| 顺序错误 | 通配符规则在AI规则之前 | 通配符规则覆盖AI规则 | 将AI爬虫规则放在通配符之前 |
| 过度限制 | 阻止了Sitemap路径 | AI爬虫无法发现新内容 | 确保Sitemap路径可访问 |
robots.txt遵循”最具体匹配”原则,而非”第一个匹配”。但为了可读性和避免歧义,建议将更具体的规则放在前面。
修改robots.txt后,爬虫可能需要一段时间才能重新读取。对策:修改后立即使用测试工具验证。
如果阻止了AI爬虫抓取,AI搜索在生成答案时无法引用你的内容。对策:如希望被AI搜索引用,必须允许AI爬虫访问。
爬虫和浏览器可能缓存旧的robots.txt。对策:修改后清除缓存,通过HTTP头设置合理的缓存时间。
只使用User-agent: *而没有为特定AI爬虫配置规则。对策:为每个重要的AI爬虫单独配置规则。
Robots.txt是网站管理员控制AI爬虫访问的核心工具。合理配置robots.txt,可以在”让内容被AI引用”和”保护不想被抓取的内容”之间取得平衡。
核心建议:
1. 如果你希望内容被AI搜索引用——明确允许所有AI爬虫抓取核心内容
2. 如果你希望内容被纳入AI训练——允许GPTBot、Google-Extended等训练爬虫
3. 如果你不希望内容被用于训练——阻止训练爬虫但保留检索爬虫的访问权限
4. 定期审计——随着AI爬虫种类的增加,定期审计和更新配置
在AI搜索时代,robots.txt不再只是”搜索引擎优化”的工具,更是”AI可见性管理”的关键基础设施。
获取资源:添加客服领取《AI爬虫robots.txt配置模板》和《robots.txt测试检查清单》。