Skip to main content

如何审查 AI 爬虫对网站的访问情况

测试 GPTBot、OAI-SearchBot、ClaudeBot 和 PerplexityBot 能否抓取你的网站,定位拦截原因,并安全验证每项修复。

快速解答

审查 AI 爬虫访问情况时,应检查 robots.txt,使用各爬虫的官方 User-Agent 测试重要 URL,将返回的状态码和 HTML 与普通浏览器请求进行比较,并查看 CDN 或防火墙日志中的拦截记录。如果服务器返回验证挑战、403、空页面外壳或不同内容,仅在 robots.txt 中设置 Allow 规则并不足以确保爬虫能够正常访问。

12 分钟阅读更新日期: 2026-09-22

要点总结

  • 分别测试检索爬虫和训练爬虫,因为它们的用途和控制方式不同。
  • 检查最终响应正文,而不只是 robots.txt 或 HTTP 状态码。
  • 审查有代表性的页面类型:主页、文章页、产品页、文档页,以及一个深层 URL。
  • 先修复 CDN 和防火墙规则,再改写内容;无法访问的页面无法获得引用。
  • 每次部署后重新检查,并通过服务器日志监测真实爬虫的访问。

AI 爬虫访问审查应检查哪些内容?

完整的访问审查应依次检查四个层面:robots.txt 中声明的访问权限、能否通过 CDN 或防火墙访问网站、重定向后的最终 HTTP 响应,以及无需运行浏览器端 JavaScript 即可获取的有效 HTML 内容。通过其中一层,并不代表下一层也能正常工作。

检查层面通过条件常见问题
robots.txt未禁止相关 User-Agent 抓取通配规则覆盖了原本用于放行的规则
网络边缘层爬虫能与访客一样访问同一个源站机器人防护返回 403、429 或验证挑战
HTTP经过合理的重定向后,返回一个状态码为 200 的规范页面重定向循环、软 404 或语言地区跳转陷阱
渲染内容初始 HTML 中包含标题、答案、链接和结构化数据仅返回空应用外壳,内容依赖客户端 JavaScript 加载

哪些爬虫需要单独检查?

不要把所有 AI User-Agent 都视为同一种爬虫。搜索检索、用户触发的抓取和模型训练可能分别使用不同的爬虫,也有不同的控制方式。应先按用途制定访问策略,再使用各服务商文档中列出的准确官方 User-Agent 标识进行测试。

  • OpenAI:使用 OAI-SearchBot 测试搜索发现,使用 ChatGPT-User 测试用户触发的检索,并根据你的训练访问策略测试 GPTBot。
  • Anthropic:分别检查 ClaudeBot,以及当前文档中列出的各类检索爬虫。
  • Perplexity:根据最新文档,测试 PerplexityBot 和用户触发的检索。
  • Google:区分 Googlebot 的搜索访问权限,以及 Google-Extended 对生成式模型训练和依据关联(grounding)的控制。
爬虫名称和相关政策可能发生变化。请以各服务商的最新文档为准,并在审查记录中注明日期。

如何开展可重复执行的爬虫测试?

  1. 选择五个有代表性的 URL,其中包含一个主页没有直接链接的深层页面。
  2. 获取 robots.txt,并记录适用于每个 User-Agent 的规则。
  3. 使用官方 User-Agent 字符串请求每个 URL,记录状态码、最终 URL、内容类型、响应大小和响应时间。
  4. 检查返回的 HTML 是否包含 canonical、H1、直接答案、主要链接和 JSON-LD。
  5. 将爬虫响应与普通浏览器响应进行比较,并排查有实质影响的差异。
  6. 检查边缘节点和源站日志,查找验证挑战、限流和反复失败的请求。
curl -L -A 'OAI-SearchBot' -D headers.txt https://example.com/ -o page.html
grep -Ei '<title|<h1|application/ld\+json|rel="canonical"' page.html

如何排查爬虫请求失败的原因?

观察到的结果可能原因下一步检查
403 或验证挑战页面CDN、WAF 或机器人管理规则拦截查看对应的边缘事件及命中的规则 ID
429自动化流量共用限流额度检查针对爬虫的限流设置和重试指引
返回 200,但 HTML 内容极少仅在客户端渲染,或数据请求被拦截查看初始页面源码和服务器日志
重定向至登录页或语言地区选择页中间件或地理位置规则导致跳转测试 Cookie、Accept-Language 和 canonical 的处理方式
页面内容正确,但缺少结构化数据结构化数据仅在浏览器中注入将关键标记移至服务端渲染的 HTML 中

如何确认访问问题已修复?

只有当受影响的 User-Agent 收到状态码为 200 的规范页面,且页面中的实质性答案与访客看到的一致时,才能确认修复有效。请保存测试命令、时间戳、响应头,以及响应正文的哈希值或内容摘录。随后在服务器日志中确认真实爬虫的访问记录:模拟测试证明可以访问,日志则证明实际发生了抓取。

  • 重新测试所有受影响的页面模板,而不只是主页。
  • 确认 robots.txt 与站点地图中的引用保持一致。
  • 检查缓存是否仍在返回修复前被拦截的响应。
  • 在 CDN、防火墙或渲染方式变更后,将此项审查纳入发布检查。

分步指南

  1. 1
    选择有代表性的页面

    从每种页面模板中选取重要 URL,并至少包含一个深层页面。

  2. 2
    查看适用的 robots 规则

    逐一检查每个官方 AI User-Agent 适用的规则,包括通配规则。

  3. 3
    抓取并比较响应

    记录重定向、状态码、响应头、正文大小、可见内容和结构化数据。

  4. 4
    追查拦截原因

    结合边缘节点和源站日志,定位具体的拦截规则或渲染依赖。

  5. 5
    重新测试并持续监测

    验证修复后的响应,并持续关注真实爬虫的访问记录。

常见问题

允许 GPTBot 访问,是否也会允许 ChatGPT Search 访问?
不一定。OpenAI 文档为训练、搜索发现和用户触发的检索分别列出了不同的爬虫。应根据你希望授予的访问权限,对当前各官方爬虫分别进行审查和配置。
robots.txt 已允许访问,为什么 AI 爬虫仍收到 403?
robots.txt 只是声明抓取偏好,并不能绕过 CDN、防火墙、身份验证层或机器人验证挑战。请查看边缘事件和源站日志,确定是哪一层拒绝了访问。
返回 200 是否就足够了?
不够。200 响应中可能包含验证挑战页面、空应用外壳、软 404,或内容不完整的本地化页面。应检查返回的 HTML,确认其中包含实际答案、canonical、链接和结构化数据。
应该多久审查一次爬虫访问情况?
托管环境、CDN 规则、渲染方式、重定向、身份验证或 robots.txt 发生变化后,都应重新测试。对于运行稳定的网站,每月定期检查并持续监测日志,通常就能发现大多数再次出现的问题。
是否应该允许所有 AI 爬虫访问?
这取决于你的访问策略。应将用户触发的检索、搜索发现与模型训练分开考虑,再对文档列出的各爬虫有针对性地放行或拦截,而不是用一条规则一概处理。

Sources

  1. [1]OpenAI 爬虫文档
  2. [2]Google robots.txt 文档
  3. [3]Anthropic 爬虫文档

扫描您的网站,提升AI可见性

运行免费的GEO和AEO扫描,获取为您的域名量身定制的llms.txt、robots.txt、结构化数据和内容优化建议。

免费扫描