OpenAI 爬虫策略
OAI-SearchBot、GPTBot、ChatGPT-User 有什么区别?
这三个 token 对应不同用途。把它们混成“同一个爬虫”是最常见配置错误。
角色拆分
- OAI-SearchBot:偏搜索发现与答案引用相关。
- GPTBot:偏模型改进训练策略相关。
- ChatGPT-User:偏用户触发检索相关。
可见性优先的 robots 模板
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /
Sitemap: https://example.com/links-map.txt
决策矩阵
- 你要先拿 AI 搜索可见性:放行 OAI-SearchBot 的公开页面。
- 训练策略还在评估:先阻止 GPTBot,待法务/管理层确认后再调整。
- 有私有后台/API:无论放行哪个爬虫,都要继续限制私有路径。
策略上线后如何验证
# Nginx
grep -Ei "OAI-SearchBot|GPTBot|ChatGPT-User" /var/log/nginx/access.log | tail -n 80
grep -Ei "OAI-SearchBot|GPTBot|ChatGPT-User" /var/log/nginx/access.log | awk '{print $9, $7}' | head -n 80
# Caddy JSON
jq -r 'select(((.request.headers."User-Agent"[0]) // "") | test("OAI-SearchBot|GPTBot|ChatGPT-User"; "i")) | "\(.status)\t\(.request.uri)\t\((.request.headers."User-Agent"[0]) // "")"' /var/lib/caddy/logs/llmsfile-access.log | head -n 80
容易误判的点
- 看到了 ChatGPT-User,就以为搜索爬虫策略生效。
- 只改 robots,不核对 Cloudflare/WAF,结果边缘层仍然 403。
- 放行范围过大,把不该暴露的路径也开放了。
继续阅读:robots 能拦 ChatGPT-User 吗、如何检查 OAI-SearchBot 访问、为什么 OAI-SearchBot 会被 403。