Cloudflare 排查
为什么 Claude-SearchBot 没有访问记录?
如果你在近 72 小时日志里看不到任何 Claude-SearchBot,先按证据分层排查。多数问题都落在下面四层。
第 1 层:查询 token 写错
Claude-SearchBot、ClaudeBot、Claude-User是不同 token。- 只搜
Claude会把结果混在一起,判断容易偏差。
grep -i "Claude-SearchBot" /var/log/nginx/access.log | wc -l
grep -i "ClaudeBot" /var/log/nginx/access.log | wc -l
grep -i "Claude-User" /var/log/nginx/access.log | wc -l
第 2 层:Cloudflare 边缘策略拦截
常见现象是 robots 看起来已放行,但边缘层仍返回挑战或 403。
- 在 Cloudflare Security Events 筛选
/robots.txt、/sitemap.xml、核心公开页面。 - 检查托管规则、Bot 防护规则是否误触发。
- 必要时只对公开入口路径做窄范围放行,不扩大到敏感路径。
相关页面:Bot Fight Mode 会拦截 AI 爬虫吗?
第 3 层:robots 在不同主机名或版本不一致
实际项目里经常出现 apex 和 www 配置不一致,或者发布后缓存了旧文件。
curl -s https://llmsfile.com/robots.txt | sed -n '1,80p'
curl -s https://www.llmsfile.com/robots.txt | sed -n '1,80p'
如果内容不同,先统一策略再继续观察。
第 4 层:抓取入口 URL 不稳定
/sitemap.xml返回301跳转到/sitemap-index.xml本身没问题,关键是最终必须200。- 若最终状态码不是 200,或不同区域波动较大,会影响发现速度。
for p in /robots.txt /sitemap.xml /sitemap-index.xml /feed.xml; do
curl -s -A "Claude-SearchBot/1.0" -o /dev/null -w "%{http_code} %{url_effective}\n" "https://yourdomain.com$p"
done
排查后如何决策
- 发现大量 403/挑战:先调 Cloudflare 规则,优先保障公开抓取入口。
- 发现 robots 不一致:统一部署策略文件并校验两种主机名。
- 都正常但仍零命中:持续观察 7-14 天,同时更新高价值页面并增强内链。