中文问答
如何检查 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
重点核对
- 是否访问了
/robots.txt和核心内容页。 - 状态码是否以
200为主。 - 是否被通配符规则误拦截。
零命中排查顺序
- 确认检索 token 是否精确(
OAI-SearchBot,不是模糊关键词)。 - 检查 apex 与 www 的 robots 内容是否一致。
- 在 Cloudflare 安全事件中查看挑战/拦截记录。
- 从外部探针验证入口 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
避免误判
- 把
OAI-SearchBot、GPTBot、ChatGPT-User分开统计。 - 至少看近 7 天趋势,不要只看单小时波动。
- 观察访问是否从
/robots.txt扩展到内容页。
如果公开路径持续 403,可继续看:为什么 OAI-SearchBot 会被 403。如果长期零命中,可参考:为什么爬虫没有访问记录(排查逻辑通用)。