P2-1 · AI 爬虫准入排查(Crawler Access Audit)
目标:确保各 AI 爬虫进得来——这是全漏斗最先做、一票否决的排查;不过则后面所有优化白做。 一句话方法:三层逐一放行(robots.txt → CDN/WAF → 服务器日志验证),逐引擎核对、定期复查。 机制 → 02-2-答案生成管线总览(②召回前的准入) 诊断 → C1-可爬性与爬虫准入 治理取舍 → 12-3-爬虫管控与内容许可 名单溯源 → 13-2-研究与数据源索引
🎯 TL;DR(30 秒速用)
| 动作 | 一句话 | 判定标准 |
|---|---|---|
| ① 核对 robots.txt | 逐一放行各 AI bot | 不是只放 Googlebot |
| ② 查 CDN / WAF | Cloudflare 等默认拦 AI bot | 确认未被自动切断 |
| ③ 验服务器日志 | 放行 ≠ 真抓 | 日志里看得到 bot 抓取 |
| ④ 逐引擎核对 | 各引擎用不同爬虫 | 不是看一个就算全通 |
| ⑤ 取舍决策 | 放行 = 流量 vs 内容许可 | 有意识权衡,非无脑全开 |
只记一条:准入是一票否决、最先做;判定以服务器日志为唯一真凭据——
robots.txt放行只是”嘴上允许”,真没真抓看日志。
🧠 为什么有效(原理层)
机制详见 C1-可爬性与爬虫准入·02-2-答案生成管线总览,本页只取结论:
- 二元开关:爬虫进得来才有资格进入 ②召回及之后全部评估;进不来 = A/B 两簇做得再好也全盘归零。所以它优先级最高、最先排。
- 三层拦截点:拦截可能发生在协议层(robots.txt)/ 网络层(CDN/WAF)/ 实际抓取任一处——只改 robots 而 CDN 在拦,等于没放行。
- Cloudflare 是重灾区:其默认配置已改为拦 AI bot,大量站点在毫不知情下被切断——这是最高频盲区。
- 逐引擎、各自爬虫:拦了 A 引擎的 bot 只对 A 隐形,其他不受影响——必须逐一核对,不能以偏概全。
一句话原理:可见性的前置 = 进得来;而”进得来”要靠三层全绿 + 日志可见共同证明,缺一层就漏。
🛠️ 怎么做(六个核心动作)
- 列名单、逐一放行 robots.txt:明确放行关键爬虫——GPTBot、PerplexityBot、ClaudeBot、Applebot、OAI-SearchBot、Google-Extended(名单随厂商更新,以当期官方文档为准 → 13-2-研究与数据源索引)。
- 排查 CDN / WAF:逐项确认 Cloudflare / 其他 WAF 没有默认拦截 AI bot;尤其 Cloudflare 用户务必检查”AI 爬虫”相关开关。
- 验服务器日志:在访问日志里 grep 各 bot 的 User-Agent,确认最近确实有抓取记录——放行≠真来。
- 逐引擎核对:每个引擎用不同爬虫,且常有训练侧 vs 检索侧两条线(如 ChatGPT 的 GPTBot[训练] 与 OAI-SearchBot[联网]),想被联网引用别漏检索侧。
- 取舍决策:放不放行是流量 vs 内容许可/版权的权衡,不是无脑全开——治理视角 → 12-3-爬虫管控与内容许可。
- 定期复查:CDN 默认策略、厂商爬虫名单都会变,纳入季度复核 → 12-5-模型波动与监测预警。
📋 可复制模板(拿走即用)
模板 A · robots.txt 放行片段(按需增删,以官方名单为准)
# 放行主流 AI 检索/训练爬虫(2026 方向性名单,需季度复核)
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: Applebot
Allow: /
User-agent: Google-Extended
Allow: /
模板 B · curl 探测(看是被放行还是被 CDN 拦)
# 带对应 UA 请求关键页,看返回头
curl -A "GPTBot" -I https://你的域名/关键页
# 200 = 初步放行;403/503/挑战页(cf-mitigated) = 被 CDN/WAF 拦
模板 C · 服务器日志反查(放行≠真抓的终判)
# 在访问日志里找各 bot 最近的抓取记录(按你的日志路径调整)
grep -Ei "GPTBot|OAI-SearchBot|PerplexityBot|ClaudeBot|Applebot" access.log | tail -50
# 无任何记录 = 放行未生效或没真来,回查 ①②
模板 D · 逐引擎核对清单
| 引擎 | 训练侧 bot | 检索侧 bot | robots 放行 | CDN 未拦 | 日志可见 |
|---|---|---|---|---|---|
| ChatGPT | GPTBot | OAI-SearchBot | ☐ | ☐ | ☐ |
| Perplexity | — | PerplexityBot | ☐ | ☐ | ☐ |
| Claude | ClaudeBot | — | ☐ | ☐ | ☐ |
| Apple | Applebot | Applebot | ☐ | ☐ | ☐ |
| Google AIO | Google-Extended | Googlebot | ☐ | ☐ | ☐ |
✅ 执行清单
-
robots.txt是否逐一放行上述各 AI bot(而非只放 Googlebot)? - Cloudflare / WAF / CDN 是否在默认拦截 AI bot?
- 服务器日志能否看到这些 bot 的真实抓取?
- 是否逐引擎核对(含 ChatGPT 检索侧 OAI-SearchBot)?
- 关键页有没有被误伤(noindex / 404 / 跳转 / 速率限制踢掉 bot)?
- 放行决策是否经过内容许可/版权的有意识权衡?
⚙️ 平台适配
- 逐引擎各自的爬虫(→ 03-0-平台横向对比矩阵):拦谁对谁隐形,必须逐一放行核对。
- ChatGPT(→ 03-1-ChatGPT):训练侧 GPTBot 与联网检索侧 OAI-SearchBot 是两条线,想被联网引用要放 OAI-SearchBot。
- Perplexity / Google AIO(→ 03-3-Perplexity·03-2-Google-AIO与AI-Mode):实时检索类边抓边答,准入一断当场就没有你,最敏感。
- Cloudflare 用户:重点排查——默认策略可能已自动切断 AI bot。
❌ 常见错误 & FAQ
错误
- 只看
robots.txt,忽略 CDN/WAF 层的拦截(最常见盲区)。 - 默认信任 Cloudflare 配置 → AI 流量已被悄悄切断而不自知。
- 放行后不查日志,误以为已生效。
- 只放 Googlebot,漏掉 GPTBot/OAI-SearchBot/PerplexityBot 等。
FAQ
- ❓该不该全部放行? 看取舍——放行换可见性,但有内容许可/版权考量;先做有意识决策,别无脑全开 → 12-3-爬虫管控与内容许可。
- ❓放行后多久生效? 没有固定值;以服务器日志出现抓取为准,不是改完 robots 就算数。
- ❓robots 放行了还是没被抓? 多半卡在 CDN/WAF 层或被速率限制/挑战页拦,回查模板 B/C。
🧩 与相邻打法的边界
- 本页(P2-1)= 怎么做:把”进得来”落地为可执行的三层排查;诊断(进没进得来、为何是一票否决)在 C1-可爬性与爬虫准入。
- 同支柱下游:进得来(本页)→ P2-3-服务端渲染与可提取性(读得到正文)→ P2-2-Schema部署与校验(解析得了)→ P2-4-llms-txt与机器可读表面(机器可读表面·试验田)。
- 治理取舍:放不放行 AI bot 的权衡、版权 opt-out → 12-3-爬虫管控与内容许可;策略变动监测 → 12-5-模型波动与监测预警。
- 机制/名单:二元开关在漏斗哪关 → 02-2-答案生成管线总览;爬虫名单/数字溯源 → 13-2-研究与数据源索引。
- 纪律:本页只讲怎么做;名单/配置一律标”方向性 + 有时效”,季度复核。
📌 关于本页(“成熟”级 · 复用 P1-1-answer-first写作与可抽取结构 打法页范式):对照 status 阶梯——初稿(摘要卡)→ 已校验(事实核对 + 标级 + 链接通)→ 成熟(本页:原理 / 核心动作 / 可复制模板 / 执行清单 / 平台适配 / FAQ 俱全,团队照着就能上手) → 活文档。本页是 P2 技术支柱的开篇打法,对应 C 簇一票否决的 C1——“最先做的那一件”,团队拿它当上线前的准入体检表。
相关
- 同支柱:P2-3-服务端渲染与可提取性 · P2-2-Schema部署与校验 · P2-4-llms-txt与机器可读表面 · 簇索引 P2-技术与基础设施
- 诊断 / 机制:C1-可爬性与爬虫准入 · 02-2-答案生成管线总览
- 治理 / 监测 / 溯源:12-3-爬虫管控与内容许可 · 12-5-模型波动与监测预警 · 13-2-研究与数据源索引
- 平台:03-0-平台横向对比矩阵 · 03-1-ChatGPT · 03-3-Perplexity · 03-2-Google-AIO与AI-Mode