AI爬虫403怎么排查:从robots到WAF的最小放行清单

AI爬虫403怎么排查:从robots到WAF的最小放行清单

AI爬虫403指AI搜索、问答或训练相关抓取器访问公开页面时,服务器或边缘层返回“禁止访问”。这类问题常见于robots允许、Google可抓、普通浏览器正常,但ChatGPT、Perplexity、Claude等取不到正文的场景。

403本身并不等于“页面不能被引用”,但如果真实AI抓取长期拿不到200响应、正文HTML或可解析文本,你的品牌页、产品页、FAQ和评测内容就很难进入AI答案的候选信源。

AI爬虫403分层排查流程图

什么是AI爬虫403,和普通403有什么区别?

AI爬虫403是针对特定自动化访问身份返回的拒绝状态。按照RFC 9110 对 403 Forbidden 的定义,服务器理解请求,但拒绝授权。

它和普通用户看到403的区别在于:用户浏览器可能正常,Googlebot也可能正常,只有特定User-Agent、IP段、ASN、TLS指纹或无JavaScript能力的请求被拦。AEO排查时不要只看页面是否能打开,要看“指定AI抓取身份拿到什么”。

最常见的7类原因:先别急着改robots

AI抓取失败通常不是单点问题,而是多层策略叠加。优先按“边缘层—服务器—页面内容”顺序查,能减少误判。

现象 高概率原因 优先查看位置
浏览器200,AI UA 403 WAF或机器人管理拦截 CDN安全事件、WAF日志
robots允许,仍然403 边缘规则先于robots生效 Cloudflare/Akamai/宿主机防火墙
curl伪装UA正常,真实抓取失败 IP、ASN或指纹校验 访问日志、Bot Management
返回200但正文是挑战页 软403、验证码、JS挑战 响应体、HTML标题
部分目录403 目录级访问规则 Nginx/Apache/CDN规则
高峰时403/429 速率限制过严 rate limit、Bot score
AI能进首页,读不到正文 渲染或内容载体问题 SSR、PDF、iframe、长图

Google对robots.txt的说明也强调,它主要用于管理抓取访问,不应被当作隐藏网页的安全机制;可参考Google Search Central 的 robots.txt 文档。换句话说,robots是“意愿表达”,403才是“访问执行”。

一手样本:37个品牌站里,403误拦截集中在哪些层?

maxaeo.cn在2026年7月对37个中文品牌站做过一次AEO可达性抽样巡检。方法是选取首页、品牌介绍页、核心产品页、新闻页各1个URL,分别以普通浏览器、Googlebot UA、OAI-SearchBot/GPTBot类UA、PerplexityBot类UA、ClaudeBot类UA请求3轮,并人工比对响应码与首屏HTML。

结果显示:

  • 37站中有11站至少一个AI抓取身份出现403或挑战页;
  • 11站里有7站的robots.txt写了允许,但边缘WAF仍拦截;
  • 4站只在产品页或新闻详情页触发403,首页正常;
  • 3站返回200,但正文被验证码页替代,属于“看似可访问”的软拦截。

这个样本的关键结论是:AI爬虫403不能只用robots检查器判断,必须同时看真实响应码、响应体和边缘安全日志。

5步定位:从“有没有请求”查到“拿到什么内容”

排查AI抓取403,可以用五步闭环:确认身份、复现请求、查边缘事件、比对响应体、做最小放行。每一步都要留下日志证据,避免把安全策略改得过宽。

  1. 列出目标爬虫
    区分搜索/引用型与训练型。OpenAI公开说明中提到,站点可能需要确保OAI-SearchBot可访问,而GPTBot更多与训练排除相关;可参考OpenAI 发布者与开发者说明

  2. 分别请求同一URL
    对比普通浏览器、Googlebot、目标AI UA的状态码、跳转链、HTML长度、正文片段。只看状态码不够,200也可能是挑战页。

  3. 查看CDN/WAF安全事件
    如果使用Cloudflare,AI Crawl Control可按爬虫管理访问,并可能返回403或402;详见Cloudflare 管理AI爬虫文档。其他CDN也应查Bot、Firewall、Rate Limit模块。

  4. 回到源站日志核对
    如果源站完全没有该请求,拦截发生在边缘层;如果源站有403,检查Nginx、Apache、应用鉴权、地域限制和反爬中间件。

  5. 用灰度URL验证修复
    先放行一个低风险目录或测试页,确认AI身份拿到完整HTML,再扩展到品牌页、文档页、产品页。

更完整的边缘层排查可参考站内的网站能被百度和谷歌抓取,却被 AI 爬虫返回 403:CDN 与 WAF 误拦截排查清单,适合技术团队逐项核对规则。

AI爬虫403日志对比表截图示意

最小放行原则:不要把“允许AI引用”做成“放开全站”

修复AI爬虫403的目标不是让所有机器人随便抓,而是让可信、目标明确的抓取器访问可公开引用的内容。推荐采用“身份分层、目录分层、速率分层”。

身份分层:把AI搜索/实时引用、训练抓取、未知爬虫分开管理。不要用一个“Block AI Bots”开关覆盖全部需求。

目录分层:品牌介绍、产品文档、公开新闻、FAQ可放行;后台、搜索结果页、参数筛选页、购物车、用户中心继续拒绝。

速率分层:对可信AI爬虫设置合理频率,未知爬虫保持更严格限制。若流量压力来自图片、附件或站内搜索,应单独限速,不要误伤正文页。

如果目标是让国产与海外AI都能读到核心内容,还需要同步检查DNS、证书、渲染与内容格式,可结合国产 AI 根本没抓到你的站:从 DNS、证书、WAF 到渲染的端到端可达性排查继续排查。

robots.txt应该怎么配合403修复?

robots.txt解决“能不能抓”的意愿问题,WAF解决“放不放行”的执行问题。两者冲突时,边缘层拦截通常先发生,所以只改robots往往无效。

一个稳妥策略是:

  • 对希望进入AI搜索答案的公开目录明确Allow;
  • 对训练型爬虫按业务策略决定Allow或Disallow;
  • 不在robots里暴露敏感目录细节;
  • 修复后用日志确认AI抓取确实拿到200和正文。

如果团队还在讨论llms.txt是否有必要,可以参考llms.txt 到底要不要写:国产 AI 认不认,写了怎么验证有没有被读。它不能替代HTTP可达性,但可以作为内容导览和验证线索。

修复后如何判断“真的被AI读到了”?

判断标准不是“检测工具显示通过”,而是三类证据同时成立:请求到达、内容完整、答案侧出现变化。

第一,日志中能看到目标AI身份访问核心URL,状态码为200或304。第二,响应体包含主标题、正文、结构化数据和关键事实,而不是验证码、空壳HTML或跳转页。第三,在一段时间后,用稳定问题样本监测AI答案是否开始引用、提及或改写你的页面信息。

品牌可以把这套监控纳入AEO例行巡检。指标、样本和复盘方式可参考品牌 AI 搜索可见性监控怎么做:指标、样本与复盘框架

AI爬虫403修复后的可见性监控仪表盘

常见问题

AI爬虫403会影响Google排名吗?

不一定。若Googlebot仍能正常抓取,传统搜索排名未必直接受影响。但AI搜索、实时问答和引用型入口可能拿不到你的内容,AEO可见性会受损。

robots.txt允许了,为什么还是403?

因为robots.txt只是抓取规则声明,WAF、CDN、服务器鉴权和速率限制可能在读取robots之前就拒绝请求。应优先查边缘安全事件和源站访问日志。

可以直接放行所有AI爬虫吗?

不建议。更稳妥的做法是区分搜索引用型、训练型和未知爬虫,只放行公开内容目录,并保留速率限制、敏感路径拒绝和日志审计。

curl伪装User-Agent测出来200,是否代表修好了?

不能。很多Bot系统会同时看IP、ASN、TLS指纹、请求行为和信誉分。伪装UA只能做初筛,最终要看真实抓取日志和响应体。

返回200但AI仍说读不到,怎么办?

检查是否是软403:响应体可能是验证码、JS挑战、登录页或空壳页面。还要确认正文不是只存在于客户端渲染、PDF扫描件、长图或iframe中。