GPTBot 被拦截
简短回答
以该爬虫的 User-Agent 发出的请求被拒绝:收到 4xx 或 5xx 状态码、Cloudflare 的 cf-mitigated 响应头或验证挑战页,而普通浏览器请求却能拿到页面。请找到匹配该 User-Agent 的防火墙、CDN 或 bot 规则,并放行该爬虫。
含义
使用 GPTBot user agent 的请求收到了状态 403 或验证页面,而浏览器可以正常获取页面。测试来自未经验证的 IP:这反映的是防火墙对该 user agent 的处理方式;使用已验证 IP 的真实爬虫可能会被区别对待。
为什么这对 AI 搜索很重要
OAI-SearchBot、ChatGPT-User、Claude-SearchBot、Claude-User、PerplexityBot 和 Perplexity-User 等搜索类与用户类爬虫抓取页面,用来生成答案及答案下方的链接。如果它们收到 403 或挑战页,无论页面多好,都无法被引用或链接。因此 AISeeWhy 将屏蔽这些爬虫评为 P1。
训练类爬虫(GPTBot、ClaudeBot、CCBot、Bytespider、Meta-ExternalAgent)评为 P3:屏蔽它们是策略选择,不是错误。探测请求来自未经验证的 IP,所以它反映的是你的规则如何对待该 User-Agent;真正的爬虫来自其公布的 IP 段,可能会受到不同对待。
如何修复
- 打开该发现,查看哪个爬虫被拦截、收到的状态码以及检测到的 WAF。AISeeWhy 报告会显示证据和可直接粘贴的修复方案;之后点击“再次检测”确认结果。
- 在 Cloudflare 上,到 Security → Events 查看被拦截的请求,然后添加一条匹配该爬虫(已验证 bot 或其 User-Agent 标记)的 WAF 自定义规则,动作选 Skip,跳过其余自定义规则、Super Bot Fight Mode 和速率限制。在 AI Crawl Control 中,把该爬虫设为 Allow。
- 在 Vercel、Akamai、Imperva、Sucuri 或 AWS WAF 上,找到触发的 bot 管理功能或托管规则,并为该爬虫添加例外,最好通过服务商公布的 IP 段或反向 DNS 验证,而不是只看 User-Agent。
- 在 nginx 或 Apache 上,在配置中搜索点名该爬虫的
deny、return 403或RewriteCond %{HTTP_USER_AGENT}行;在 WordPress 中,检查会屏蔽“恶意 bot”的安全插件。 - 逐个爬虫决定:放行搜索类和用户类爬虫才能让页面被引用,而训练类爬虫如果符合你的策略,可以继续屏蔽。
示例
(cf.client.bot) or (http.user_agent contains "OAI-SearchBot")
Action: Skip -> All remaining custom rules, Super Bot Fight Mode, Rate limiting
如何确认修复
修改后,在报告上点击“再次检测”:它会列出已修复的内容以及评分的变化。