在生成式引擎优化的实践中,爬虫管理是一个经常引起困惑的领域。传统的搜索引擎优化只需要关注少数几个主要爬虫(如 Googlebot),而 AI 时代的爬虫生态已经演变为一个包含数十个程序、三种不同用途的复杂网络。理解这一变化,是制定有效访问策略的前提。
AI 爬虫(AI crawler)是代表某个 AI 系统自动抓取页面的程序。真正有意义的分类依据是用途,而不是用户代理。将爬虫按用途分为训练类、检索类和用户触发类三类,每类程序的行为特征、对站点的影响以及应对策略都存在根本差异。
关键洞察:最贵的错误是为了拦截训练类而在 robots.txt 中一条规则同时屏蔽检索类。两类程序虽然都属于 AI 爬虫,但屏蔽后的后果截然不同:前者影响未来的模型权重,后者影响当前的引用机会。
为什么按用途分类比按名称分类更重要
传统的爬虫管理方法往往基于用户代理字符串进行判断,这种方法在 AI 时代已经明显不足。原因有三:
第一,同一运营方可能部署多种用途的爬虫。以 OpenAI 为例,它同时运营 GPTBot(训练)、OAI-SearchBot(检索)和 ChatGPT-User(用户触发)三类程序,使用不同的用户代理和 IP 段。
第二,不同运营方可能使用相似的用途。ClaudeBot 和 GPTBot 都是训练类爬虫,PerplexityBot 和 OAI-SearchBot 都是检索类爬虫。将它们混为一谈,会导致策略制定不准确。
第三,用户代理字符串由客户端自行申报,极易伪造。日志中出现 GPTBot,不代表该请求确实来自 OpenAI。只依据未经核实的 UA 制定策略,既可能误判合法爬虫,也无法拦住冒充合法身份的恶意爬虫。
三类爬虫的对照与影响分析
以下表格详细列出了三类爬虫的区分要点。
| 类别 | 抓取目的 | 屏蔽后会失去什么 | 屏蔽后会避免什么 | 代表性爬虫 |
|---|---|---|---|---|
| 训练类 | 采集可能用于训练或微调模型权重的内容 | 内容进入未来模型权重、形成「参数记忆」的可能;这类变化通常较晚才会在模型中显现,也无法归因 | 可避免内容进入未来的模型权重 | GPTBot · ClaudeBot · Google-Extended · CCBot · Applebot-Extended · Amazonbot · Meta-ExternalAgent · Bytespider |
| 检索类 | 为实时答案提供素材,并建立答案引擎索引 | 当前被引用的机会:内容会立即不再出现在 AI 答案中 | 几乎没有额外保护作用:模型训练大多已经发生,或已通过其他语料完成 | OAI-SearchBot · PerplexityBot · Claude-SearchBot · Googlebot(驱动 AI Overviews)· Bingbot(驱动 Copilot) |
| 用户触发类 | 用户此刻粘贴或查询了你的 URL | 该用户针对这一页面的实时查询会在生成答案的过程中失败 | 无法避免任何自动抓取,因为这类程序只在用户操作时获取页面 | ChatGPT-User · Claude-User · Perplexity-User |
屏蔽训练类和检索类爬虫,站点付出的代价并不相同:屏蔽训练类,会失去未来形成参数记忆的机会,但仍能保留被引用的可能;屏蔽检索类,则会失去当前被引用的机会,而模型训练大多已经发生,或已通过其他语料完成。因此,不能因为它们都属于 AI 爬虫就采用同一套规则。
各平台使用的爬虫类型对照
了解各平台使用的爬虫类型,有助于制定针对性的访问策略:
- ChatGPT 搜索:使用 OAI-SearchBot(检索)和 ChatGPT-User(用户触发)
- Perplexity:使用 PerplexityBot(检索)和 Perplexity-User(用户触发)
- Claude:使用 Claude-SearchBot(检索)和 Claude-User(用户触发)
- Google AI Overviews:使用 Googlebot(检索),Google-Extended(训练控制令牌)
- Bing Copilot:使用 Bingbot(检索)
注意:Google-Extended 不是爬虫,而是 robots.txt 中的用途控制令牌,详见 Google-Extended。
身份核验:为什么不能只依赖用户代理字符串
用户代理字符串由客户端自行申报,而且极易伪造。日志中出现 GPTBot,不代表该请求确实来自 OpenAI。只依据未经核实的 UA 制定策略,既可能误判合法爬虫,也无法拦住冒充合法身份的恶意爬虫。
核验爬虫身份,需要把运营方公布的 IP 段与前向确认反向解析(forward-confirmed rDNS)结合起来。主要运营方都为此提供了机器可读的 IP 列表:
- OpenAI 为不同爬虫提供
.jsonIP 文件(见 Overview of OpenAI Crawlers) - Anthropic 公布了爬虫 IP 列表(见 Anthropic 爬虫文档)
- Perplexity 也为各爬虫提供 IP JSON 文件(见 Perplexity Crawlers)
核验的基本原理如下:
- 对请求 IP 做反向解析,得到主机名
- 对该主机名做正向解析,得到 IP
- 第 2 步的 IP == 请求 IP 且主机属于运营方域名,则身份确认;否则视为未经核实
另一项正在发展的方案,是用面向自动化流量的 HTTP 消息签名进行密码学身份验证(IETF draft)。该方案目前仍是 Internet-Draft,尚未成为正式标准,因此还不能作为现阶段可依赖的访问控制手段,只能作为未来的发展方向。
关键洞察:身份核验是爬虫管理的技术基础。没有核验的 UA 匹配,就像没有验证的访问令牌——既可能误拦合法请求,也可能放过恶意冒充。将 IP 段比对与前向确认反向解析结合使用,是目前最可靠的方法。
robots.txt 的声明不等于强制执行
这是一个需要反复强调的核心原则:robots.txt 依赖爬虫自愿遵守,并非访问控制机制。
RFC 9309 明确写道,其中的规则「不是一种访问授权形式」,并且该协议「不能替代有效的内容安全措施」。在 robots.txt 中写下 Disallow,并不能保证爬虫真的停止抓取,公开资料已经记录过爬虫不遵守站点禁抓声明的情况。
2024 年,多家新闻媒体报道,一家主流答案引擎抓取了明确禁止其爬虫访问的站点(TechCrunch,2024-07-02);2025 年,Cloudflare 发现,某个未声明身份的爬虫伪装成普通浏览器并轮换 IP,在数万个域名上规避禁抓规则(Cloudflare,2025-08-04)。
| 事实 | 如何理解 |
|---|---|
| 主流第一方爬虫的官方文档明确说明会遵守 robots.txt | 是否遵守取决于爬虫方的政策,技术上并无保证 |
| robots.txt 可以明确表达站点的访问要求 | 它只能表达要求,无法强制不合规或冒充合法身份的程序遵守这些要求 |
| 独立数据记录了规则的采用情况 | Cloudflare 发现,抽样域名中只有约 14% 的 robots.txt 文件专门设置了 AI 爬虫规则(Cloudflare,2025-07);多数站点尚未声明任何策略 |
可以确认的事实应当如何理解:主流第一方爬虫大多会遵守 robots.txt,但这只是政策声明而非技术保证。真正需要依靠网络层(WAF、已核验爬虫名单)才能实现的访问控制,robots.txt 无法做到。
反模式:屏蔽在什么情况下会适得其反
以下做法表面上都有道理,实际却因为混淆了爬虫类别、技术机制或默认做法而产生相反结果。
| 反模式 | 为什么看起来对 | 为什么实际会失败 |
|---|---|---|
| 对所有 AI 爬虫一律 Disallow | 可以避免内容被 AI 使用 | 为阻止训练而失去被引用的机会:混淆了爬虫类别,内容会立即不再出现在 AI 答案中,而且这种状态会持续下去。这是最严重的失误 |
| 认为屏蔽 GPTBot 就能退出 ChatGPT | GPTBot 是 OpenAI 的爬虫 | ChatGPT 实时答案使用 OAI-SearchBot 和 ChatGPT-User;GPTBot 只负责训练。这里混淆了爬虫用途 |
| 把 robots.txt 当作阻止违规爬虫的强制措施 | 站点已经设置 Disallow,爬虫就不能再抓取 | robots.txt 要求爬虫自愿遵守(见 §5);冒充合法身份或不合规的程序不会执行这些规则 |
| 放行所有爬虫,但页面是纯 CSR | 访问权限已经开放 | 抓取请求虽然能到达页面,爬虫却读不到正文,因此仍然无法使用页面内容。见 SSR for AI Crawlers |
| 采用固定白名单,从不复查 | 只允许可信的爬虫访问 | 每个季度都会出现新的爬虫,固定白名单会在默认情况下将它们排除 |
「全部封禁 AI」不是最安全的默认做法,而是代价最高的默认做法。是否屏蔽,需要按用途类别权衡内容保护与被引用的机会,不能作为常规的基础维护措施统一执行。OpenAI 明确表示,内容要出现在 ChatGPT 搜索中并获得引用,前提就是不屏蔽其检索爬虫(见 Publishers and Developers FAQ)。
SEO 爬虫与 AI 爬虫:哪些基础不变,哪些做法已经变化
两者共用的抓取基础见 SEO vs GEO。这些基础没有改变:页面可访问、返回 200、不会出现软 404,并保持合理的抓取预算和正确的状态码。Googlebot 一直要求满足这些基础条件,AI 爬虫同样如此。
变化的核心在于以下几个方面:
| 维度 | SEO 爬虫时代 | AI 爬虫时代(变化) |
|---|---|---|
| 程序数量 | 主要只需关注一个爬虫(Googlebot) | 需要关注多个爬虫,而且新爬虫还在不断出现 |
| 访问规则的含义 | 只需决定是否允许索引 | 要分别决定是否允许训练、检索和用户触发三类用途,且不同决定带来的结果相反 |
| robots.txt 的作用 | 用于声明访问规则,爬虫也会严格遵守 | 仍可用于声明访问规则,但爬虫的遵守程度较低(见 §5) |
| 「提交进索引」的能力 | 可以做到(站点地图、ping) | 只能部分做到,具体方法见 Sitemap 与 IndexNow |
问题在于,如果仍沿用 SEO 时代的做法,只设置一套 robots.txt 规则,并默认爬虫都会严格执行,就会忽略 AI 生态中爬虫数量众多、用途分为三类且规则遵守程度较低的现实。
AI 爬虫为何影响 GEO,以及该怎么做
页面能被抓取,只说明系统可以把它纳入候选集。这是必要条件,但并不足够。系统随后还要判断是否采信并引用该页面,详见 可引用性。
在 答案循环 中,爬虫访问对应第 2 步(进入候选集),发生在可引用性判断之前。页面能被检索,不代表一定会被系统采信和引用。
以下是制定爬虫策略时应遵循的详细步骤,每个步骤都包含具体的操作指南和注意事项:
- 确认实际访问站点的爬虫身份:参考 AI 爬虫访问审计。这一步是制定策略的基础,因为不知道谁在访问你的站点,就无法制定针对性的策略。审计应包括:导出服务器日志、识别用户代理字符串、核验 IP 段、分析访问频率和模式。
- 制定访问规则:参考 robots.txt 与 llms.txt。robots.txt 用于声明访问偏好,llms.txt 用于提供精选内容索引。两者应配合使用,而不是互相替代。
- 查询某个爬虫的 UA、IP 和屏蔽方法:参考 GPTBot、ClaudeBot、PerplexityBot。每个爬虫都有独立的文档,详细说明其用途、身份核验方法和屏蔽指令。
- 确保爬虫能读取所抓取页面的内容:参考 SSR for AI Crawlers。即使允许爬虫访问,如果页面是纯客户端渲染(CSR),爬虫也可能无法读取正文内容。这属于渲染问题,需要单独处理。
- 了解页面被检索后如何获得引用:参考 可引用性。页面能被抓取只是必要条件,内容是否便于引用、来源是否可信,决定了最终能否获得引用。
- 系统地掌握整套方法:参考 生成式引擎优化。爬虫管理是 GEO 的一部分,应与实体识别、内容优化、E-E-A-T 建设等工作协同推进。
关键洞察:需要把三件事分开处理:是否屏蔽要按用途类别权衡,身份核验要在网络层完成,页面能否被读取取决于渲染方式。混淆其中任何两项,都会导致策略失效。
中国企业实施 AI 爬虫管理的特别考量
对于面向中国市场的企业,AI 爬虫管理需要考虑以下几个额外因素:
首先,国内 AI 引擎的爬虫政策透明度较低。文心一言、通义千问、豆包等引擎的爬虫用户代理和 IP 段尚未完全公开,建议通过服务器日志分析识别主要爬虫来源,并参考各厂商官方文档的最新说明。
其次,百度爬虫的政策相对明确。百度爬虫遵守 robots.txt,且与 Googlebot 类似,同时服务于搜索和 AI 回答功能。屏蔽百度爬虫会导致内容同时退出搜索和 AI 可见度,应谨慎操作。
第三,微信搜一搜和小红书等平台的爬虫策略尚未公开。这些平台的 AI 功能可能使用不同的抓取机制,建议关注各平台的官方文档更新。
第四,国内企业应特别注意网络层防护。由于 robots.txt 的约束力有限,建议配合 CDN 或 WAF 实施爬虫访问控制,特别是针对高频抓取和可疑 IP 段的拦截。
常见问题解答
什么是 AI 爬虫?
AI 爬虫是代表某个 AI 系统自动抓取页面的程序。对 GEO 而言,真正需要关注的是会影响内容在 AI 答案中可见度的三类用途(训练、检索、用户触发),而不是所有非人类用户代理。
我该不该屏蔽 AI 爬虫来保护内容?
是否屏蔽必须按用途类别分别判断,不能把统一屏蔽当作一项常规维护。屏蔽训练类(GPTBot、ClaudeBot、Google-Extended)能防止内容进入未来的模型权重,同时保留内容在实时答案中被引用的可能;屏蔽检索类(OAI-SearchBot、PerplexityBot、Claude-SearchBot)则会让内容立即不再出现在 AI 答案中。一律 Disallow 虽能阻止训练,却也会失去即时引用的机会;这不是最安全的默认做法,反而代价最高。
屏蔽了 GPTBot,是不是就退出 ChatGPT 了?
不是,这是把不同用途的爬虫混为一谈。GPTBot 只负责训练。ChatGPT 的实时答案由 OAI-SearchBot(检索索引)和 ChatGPT-User(用户触发取页)提供。屏蔽 GPTBot 只会让内容不进入训练数据,完全不会影响 ChatGPT 搜索中的引用。
robots.txt 真能阻止 AI 爬虫吗?
robots.txt 依赖爬虫自愿遵守,并不具备访问控制能力。RFC 9309 明确说明,其中的规则「不是一种访问授权形式」。主流第一方爬虫的官方文档都表示会遵守这些规则,但是否遵守取决于运营方的政策,技术上并无保证;用户代理字符串又由客户端自行申报,极易伪造。要强制拦截不合规或冒充合法身份的程序,需要在网络层采取措施,robots.txt 做不到。
日志里看到「GPTBot」,就能证明是 OpenAI 抓的吗?
不能。用户代理字符串由客户端自行申报,不能用来确认身份。核验爬虫身份,需要结合运营方公布的 IP 段与前向确认反向解析:OpenAI、Anthropic、Perplexity 都为此公布了 IP 列表。只依据未经核实的 UA 制定策略,既可能误伤身份遭冒用的合法爬虫,也无法拦住冒充合法身份的恶意爬虫。
延伸阅读
- 生成式引擎优化(GEO)
- GPTBot
- ClaudeBot
- PerplexityBot
- Google-Extended
- Applebot-Extended
- OAI-SearchBot
- ChatGPT-User
- robots.txt
- llms.txt
- SSR for AI Crawlers
- JavaScript and AI Crawlers
- Sitemap 与 IndexNow
- 可引用性
- 答案循环
AI 爬虫管理的实际案例
以下案例展示了不同企业如何制定 AI 爬虫管理策略,以及这些策略的实际效果。
案例一:新闻媒体的爬虫管理策略
某国际新闻媒体采用以下策略:
- 训练类爬虫:屏蔽 GPTBot、ClaudeBot、CCBot,保留检索类爬虫的访问
- 检索类爬虫:放行 OAI-SearchBot、PerplexityBot、Claude-SearchBot、Bingbot
- 用户触发类:放行 ChatGPT-User、Claude-User、Perplexity-User
- 网络层防护:使用 WAF 规则拦截未核验身份的爬虫,配合 IP 白名单
实施结果:该媒体在 ChatGPT 和 Perplexity 中的引用率保持稳定,同时避免了内容被用于模型训练。通过定期审计爬虫访问日志,及时发现并处理了冒充合法身份的爬虫请求。
案例二:技术文档站点的爬虫管理策略
某技术文档平台采用以下策略:
- 全面放行:所有三类爬虫都放行,包括训练类、检索类和用户触发类
- llms.txt 部署:自动生成 llms.txt 文件,列出核心文档页面
- 结构化数据:全面部署 JSON-LD,确保实体识别准确
- SSR 就绪:确保所有页面都通过服务端渲染,爬虫可以读取完整内容
实施结果:该平台在多个 AI 引擎中的引用率显著提升,特别是在 Perplexity 和 Claude 中成为技术问答的首选来源。llms.txt 的部署虽然不能直接带来引用,但为未来可能的引擎支持做好了准备。
案例三:电商站点的爬虫管理策略
某电商平台采用以下策略:
- 训练类爬虫:屏蔽 GPTBot、ClaudeBot,但放行 Google-Extended(保留 Gemini 采信机会)
- 检索类爬虫:放行所有检索类爬虫,包括 OAI-SearchBot、PerplexityBot 等
- 用户触发类:放行所有用户触发类爬虫
- 特殊处理:对价格页面添加特殊的结构化数据标记,确保 AI 能够准确提取价格信息
实施结果:该平台的商品页面在 ChatGPT Search 和 Perplexity 中的引用率显著提高,特别是在产品对比和购买建议类查询中。通过监控爬虫访问日志,及时发现并修复了多个链接失效问题,降低了取页失败率。
AI 爬虫管理的持续优化流程
AI 爬虫管理不是一次性任务,而是需要持续优化的过程。建议建立以下流程:
- 月度审计:检查 robots.txt 配置是否正确部署,核验爬虫身份是否准确
- 季度复核:评估爬虫策略是否仍然适用,检查是否有新的爬虫出现
- 年度审查:全面评估爬虫管理策略的效果,根据业务目标调整策略
- 事件驱动:当发生爬虫相关事件(如 Perplexity 抓取争议)时,及时复核策略
通过持续优化,可以确保 AI 爬虫管理策略始终与业务目标和平台变化保持同步。
爬虫访问日志的分析方法
有效的爬虫管理依赖于对访问日志的深入分析。以下是分析爬虫访问日志的关键步骤和方法:
日志数据提取
从服务器日志中提取爬虫相关数据,需要关注以下字段:
- User-Agent:识别爬虫类型的核心字段
- Client IP:用于与运营方公布的 IP 段进行比对
- Request Method:通常是 GET,但某些爬虫可能使用 HEAD 方法
- Request URI:爬虫访问的具体页面路径
- Response Status:服务器返回的状态码,200 表示成功,404 表示页面不存在,403 表示被禁止
- Response Time:服务器响应时间,可用于评估爬虫端的性能问题
- Timestamp:请求时间,用于分析访问模式和频率
爬虫身份核验流程
核验爬虫身份的标准流程如下:
- 提取 IP 地址:从日志中提取请求的 IP 地址
- 反向 DNS 解析:对 IP 地址进行反向 DNS 解析,获取主机名
- 正向 DNS 解析:对主机名进行正向 DNS 解析,确认返回的 IP 与原始 IP 一致
- IP 段比对:将 IP 地址与运营方公布的 IP 段文件进行比对
- 结果确认:只有同时通过 DNS 核验和 IP 段比对,才能确认爬虫身份
访问模式分析
分析爬虫访问模式有助于发现异常行为:
- 频率分析:统计每个爬虫的访问频率,识别异常高频访问
- 路径分析:分析爬虫访问的路径分布,识别是否有爬虫专门针对特定内容
- 时间分析:分析爬虫访问的时间分布,识别是否有规律的访问模式
- 错误分析:统计爬虫访问的错误率,识别可能的技术问题时
通过这些分析方法,可以更准确地了解爬虫行为,为策略调整提供数据支持。
爬虫管理策略的定期审查机制
由于 AI 爬虫生态变化迅速,建立定期审查机制至关重要。以下是建议的审查周期和内容:
月度审查
- robots.txt 配置检查:确认配置文件是否正确部署,没有意外变更
- 爬虫访问报告:生成月度爬虫访问报告,包括各类爬虫的访问量和访问模式
- 异常检测:识别异常的爬虫访问行为,如高频访问、可疑 IP 等
- 策略效果评估:评估当前策略的效果,如引用率变化、流量变化等
季度审查
- 新爬虫识别:检查是否有新的爬虫出现,更新爬虫名单
- IP 段更新:下载最新的 IP 段文件,更新白名单
- 策略调整:根据业务目标变化,调整爬虫管理策略
- 技术审计:检查 SSR 就绪情况、JSON-LD 部署等技术支持
年度审查
- 全面评估:全面评估爬虫管理策略的效果,包括引用率、流量、用户反馈等
- 战略调整:根据年度业务目标,调整爬虫管理的战略方向
- 工具评估:评估当前使用的工具是否仍然适用,考虑是否需要引入新工具
- 文档更新:更新所有相关文档,确保策略记录完整准确
通过建立系统的审查机制,可以确保持续优化爬虫管理策略,适应快速变化的 AI 生态。