怎么检查并放行 AI 爬虫?robots.txt 与 CDN 双层配置实操
分两层检查:robots.txt 文本层(是否写了针对 AI 爬虫的 Disallow)与网络层(CDN/WAF/安全插件是否静默返回 403)。验证方法是逐一模拟各 AI 爬虫的 User-Agent 请求核心页面,正常返回 200 即放行;返回 403/429 说明被拦。两层必须同时确认,只改 robots.txt 而忽略 CDN 层是最常见的无效操作。
核心要点
- 第一层:查看并修正 robots.txt 中的 Disallow 规则
- 第二层:检查 CDN(尤其 Cloudflare Bot 管理默认策略)与 WAF 规则
- 验证手段:curl -A 模拟各爬虫请求,逐个确认返回 200
- 日志验证:grep 访问日志确认 AI 爬虫真实到访记录
- 放行检索爬虫优先于一切内容优化——抓不到,后面全免谈
一图速览:爬虫放行双层实操
第一层:robots.txt 检查
访问 https://你的域名/robots.txt,检查是否存在针对 AI 爬虫的拦截规则,例如「User-agent: GPTBot」+「Disallow: /」的组合。检索类爬虫(OAI-SearchBot、Claude-SearchBot、PerplexityBot)必须放行;训练类爬虫(GPTBot、ClaudeBot、CCBot 等)可按商业策略自行决定。robots 协议遵循 RFC 9309,规则区分大小写且按最具体匹配生效。
第二层:CDN 与防火墙检查
行业审计中大量站点问题出在这一层:robots.txt 写着放行,CDN 却默认拦截。三个高发位置:Cloudflare 的「Bot Fight Mode / AI 爬虫管理」默认策略、Vercel 的严格 bot 规则、WordPress 安全插件(Wordfence、Sucuri)的 UA 白名单。逐一进入控制台确认 AI 爬虫未被归入「疑似恶意流量」。
验证与日志
用 curl 逐一模拟:`curl -A "OAI-SearchBot" https://你的域名/`,正常应返回 200 与完整 HTML。再查访问日志:`grep -Ei "gptbot|claudebot|perplexitybot|oai-searchbot" access.log`——如果近期日志中没有任何 AI 爬虫记录,说明抓取链路某处仍被拦截。
双层检查清单
| 层 | 检查项 | 通过标准 |
|---|---|---|
| robots.txt | 无检索爬虫的 Disallow 规则 | 检索类 UA 可见 Allow/无限制 |
| CDN/WAF | Bot 管理未拦 AI 爬虫 | curl 模拟返回 200 |
| 服务器日志 | 存在 AI 爬虫访问记录 | 近 30 天日志有 UA 记录 |
| 核心页面 | 首页/服务页/内容页均可抓 | 逐页模拟均 200 且非 JS 空壳 |
常见追问
curl 模拟返回 403 但 robots.txt 没问题,怎么定位?
按顺序排查:CDN 控制台的安全规则 → WAF/防火墙 → 应用层中间件(安全插件、UA 过滤代码)。可以先用 curl -v 查看响应头中是否有 CDN 厂商标识,缩小范围。
放行 AI 爬虫会不会被恶意抓取?
放行特定 UA 与防恶意抓取并不冲突:对检索类 AI 爬虫放行,同时对高频未知 UA 保留限流。建议按 UA + 速率双重策略,而不是一刀切封禁所有陌生爬虫。
信息来源
本页数据均来自上述公开信源,如与官方最新文档不一致,以官方为准。
相关阅读
需要针对你的行业做一次 AI 可见度诊断?
免费诊断