中文问答

如何检查 OAI-SearchBot 访问?

先看日志,再改策略。没有证据就频繁改 robots 或边缘规则,通常会让问题更难定位。

命令行快速检查

grep -i "OAI-SearchBot" /var/log/nginx/access.log | tail -n 50
grep -i "OAI-SearchBot" /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -nr | head

Caddy JSON 日志检查

jq -r 'select(((.request.headers."User-Agent"[0] // "") | test("OAI-SearchBot"; "i"))) | [.ts, .request.uri, .status] | @tsv' /var/lib/caddy/logs/llmsfile-access.log | tail -n 120
jq -r 'select(((.request.headers."User-Agent"[0] // "") | test("OAI-SearchBot"; "i"))) | (.request.uri // "/")' /var/lib/caddy/logs/llmsfile-access.log | sort | uniq -c | sort -nr | head -n 20
jq -r 'select(((.request.headers."User-Agent"[0] // "") | test("OAI-SearchBot"; "i"))) | (.status // 0)' /var/lib/caddy/logs/llmsfile-access.log | sort | uniq -c | sort -nr

重点核对

  1. 是否访问了 /robots.txt 和核心内容页。
  2. 状态码是否以 200 为主。
  3. 是否被通配符规则误拦截。

零命中排查顺序

  1. 确认检索 token 是否精确(OAI-SearchBot,不是模糊关键词)。
  2. 检查 apex 与 www 的 robots 内容是否一致。
  3. 在 Cloudflare 安全事件中查看挑战/拦截记录。
  4. 从外部探针验证入口 URL 是否稳定返回 200/301
curl -s https://你的域名/robots.txt | sed -n '1,80p'
curl -s https://www.你的域名/robots.txt | sed -n '1,80p'
for p in /robots.txt /sitemap.xml /sitemap-index.xml /llms.txt; do
  curl -s -A "OAI-SearchBot/1.0" -o /dev/null -w "%{http_code} %{url_effective}\n" "https://你的域名$p"
done

避免误判

  1. OAI-SearchBotGPTBotChatGPT-User 分开统计。
  2. 至少看近 7 天趋势,不要只看单小时波动。
  3. 观察访问是否从 /robots.txt 扩展到内容页。

如果公开路径持续 403,可继续看:为什么 OAI-SearchBot 会被 403。如果长期零命中,可参考:为什么爬虫没有访问记录(排查逻辑通用)。

打开 AI 爬虫日志检查器