中文问答

Cloudflare Bot Fight Mode 会拦截 AI 爬虫吗?

会有这种情况。即使 robots 放行,边缘挑战策略仍可能让爬虫请求失败。

怎么验证

  1. 在 Cloudflare Security Events 看 AI 爬虫请求是否被 challenge 或 block。
  2. 检查 /robots.txt、sitemap、核心页面是否出现连续 403。
  3. 对照源站日志,确认请求是否到达源站。

快速判定矩阵

证据命令(可直接跑)

# 源站日志检查(本站当前使用 Caddy JSON 日志)
grep -E 'OAI-SearchBot|Claude-SearchBot|PerplexityBot' /var/lib/caddy/logs/llmsfile-access.log | tail -n 120

# AI 爬虫状态码分布
grep -E 'OAI-SearchBot|Claude-SearchBot|PerplexityBot' /var/lib/caddy/logs/llmsfile-access.log | awk '{print $9}' | sort | uniq -c | sort -nr

# 核心抓取入口可访问性
for p in /robots.txt /sitemap.xml /llms.txt /questions/; do curl -s -o /dev/null -w "%{http_code} %url_effective\n" "https://你的域名$p"; done

改动后要盯的指标

  1. OAI-SearchBotClaude-SearchBot 在公开页面的 403 占比。
  2. /robots.txt/sitemap.xml 和核心问答页状态码结构。
  3. 后台与私有 API 路径是否仍保持严格防护。

放行范围建议

不要全站放行。临时放行也应只针对公开抓取入口(/robots.txt/sitemap*.xml/llms.txt、部分公开指南页),后台和私有 API 继续保持严格策略。

如果你需要精细放行规则,可继续看:如何在 Cloudflare WAF 放行 OAI-SearchBot

使用 403 排查流程