如何为ChatGPT搜索检查外贸站抓取入口?用OpenAI相关爬虫做准入核对

浏览进度条

检查 ChatGPT 搜索抓取入口,重点不是“有没有放开 GPTBot”,而是先确认 OAI-SearchBot 能访问你的公开推广页,再核对 robots.txt、服务器状态码、CDN/WAF、日志和 OpenAI 官方 IP JSON。放行入口只代表有机会被访问,不保证答案展示或引用。

外贸站想做 ChatGPT 搜索可见性,第一步经常做错。

很多人一上来就问:

“GPTBot 要不要放开?”

这个问题不算错,但它不是 ChatGPT 搜索入口核对的第一优先级。

OpenAI 官方把 OAI-SearchBotGPTBotChatGPT-User 分成不同用途。做 ChatGPT 搜索相关检查时,重点应先看 OAI-SearchBot:它用于 ChatGPT 搜索功能中的网站搜索结果展示。

GPTBot 是训练相关抓取。
ChatGPT-User 是用户触发访问。
三者不能混成一个“OpenAI 爬虫”。

先明确你要检查什么

这篇不讲三个 bot 的总论,第 4 篇已经讲过。这里直接进入检查流程。

目标是确认:

检查对象 要回答的问题
robots.txt 是否允许 OAI-SearchBot 访问公开推广页
核心 URL 产品页、FAQ页、案例页、供应商介绍页是否能返回 200
CDN / WAF 是否把 OpenAI crawler 当异常流量拦掉
access log 是否有 OpenAI 相关 user-agent 访问,状态码是什么
官方 IP JSON 请求来源是否可和 OpenAI 发布的 IP 段核对
内容状态 页面是否公开、文本可读、没有误加 noindex

边界也要说清:允许 OAI-SearchBot 不等于保证 ChatGPT Search 收录、排名、引用或答案展示。

它只是准入核对。

第一步:拿到当前robots.txt

先看线上真实文件,不要只看后台插件界面。

curl -s https://www.example.com/robots.txt

如果有多个 host,也要分别看:

curl -s https://example.com/robots.txt
curl -s https://www.example.com/robots.txt
curl -s https://en.example.com/robots.txt

对外贸站来说,尤其要看这些目录:

  • /products/
  • /categories/
  • /case-studies/
  • /faq/
  • /about/
  • /request-a-quote/
  • /downloads/
  • /customer-portal/

公开推广页面和敏感区域不要用同一套策略。

第二步:确认OAI-SearchBot没有被挡

如果你的目标是保留 ChatGPT 搜索相关展示机会,OpenAI 官方建议允许 OAI-SearchBot

一个清楚的写法可以是:

User-agent: OAI-SearchBot
Allow: /products/
Allow: /categories/
Allow: /case-studies/
Allow: /faq/
Allow: /about/
Disallow: /downloads/private/
Disallow: /customer-portal/

如果你看到的是:

User-agent: OAI-SearchBot
Disallow: /

那就说明你明确选择退出了 OpenAI 的 search crawler。OpenAI 官方说,opt out OAI-SearchBot 的网站不会显示在 ChatGPT search answers 中,但仍可能作为 navigational links 出现。

这句话不要外推成“允许了就一定显示”。
它只说明选择退出和展示资格的边界。

第三步:别把GPTBot当搜索入口

GPTBot 用于抓取可能用于训练 OpenAI 生成式 AI 基础模型的内容。企业可以基于内容资产策略决定是否允许它。

如果你的策略是“允许 ChatGPT 搜索相关抓取,但不允许训练抓取”,可以这样拆:

User-agent: OAI-SearchBot
Allow: /products/
Allow: /categories/
Allow: /case-studies/
Allow: /faq/

User-agent: GPTBot
Disallow: /

这两个设置彼此独立。OpenAI 官方也明确说,可以允许 OAI-SearchBot,同时禁止 GPTBot

所以不要写:

User-agent: GPTBot
Allow: /

然后就以为 ChatGPT Search 入口已经核对完了。
Search 入口核对,主角是 OAI-SearchBot

第四步:理解ChatGPT-User的边界

ChatGPT-User 是用户在 ChatGPT、Custom GPTs 或 GPT Actions 中触发某些操作时访问网页。

它不用于自动网页抓取,也不用于决定内容是否出现在 Search。

这意味着:

  • 日志里看到 ChatGPT-User,更像用户触发访问;
  • 不应把它统计成常规搜索 crawler;
  • OpenAI 官方说明,因为这是用户发起的访问,robots.txt 规则可能不适用;
  • 不要用 ChatGPT-User 是否访问过,判断 ChatGPT Search 是否收录了你的页面。

对外贸站来说,ChatGPT-User 更像“有人让 ChatGPT 打开这个公开页面时,服务器能不能正常响应”。

第五步:检查核心URL状态码

只看 robots.txt 不够。你还要抽查页面本身能不能访问。

URLS=(
  "https://www.example.com/products/stainless-steel-valve/"
  "https://www.example.com/case-studies/chemical-plant-valve-project/"
  "https://www.example.com/faq/"
  "https://www.example.com/about/"
)

for URL in "${URLS[@]}"; do
  curl -sI -L "$URL" | head -n 5
done

理想情况:

公开产品页 -> 200
公开案例页 -> 200
FAQ页 -> 200
供应商介绍页 -> 200
客户后台 -> 登录或权限保护
私密下载 -> 权限保护

不理想情况:

公开产品页 -> 403
公开产品页 -> 302 到首页
FAQ页 -> 404
案例页 -> 5xx
页面返回 WAF challenge HTML

如果公开推广页都不能稳定返回 200,就别急着谈 ChatGPT 搜索可见性。

第六步:模拟User-Agent只能作为初筛

你可以用 user-agent 初步看服务器是否按字符串误拦截,但不要把它当身份验证。

curl -I -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot" \
  https://www.example.com/products/stainless-steel-valve/

如果这里返回 403,要查 CDN / WAF 规则。
如果返回 200,也不能证明请求一定来自 OpenAI。

原因很简单:User-Agent 可以伪造。
更可靠的做法,是结合 OpenAI 官方发布的 IP JSON 和服务器日志一起看。

第七步:核对OpenAI官方IP JSON

OpenAI 官方提供了几个 IP JSON:

curl -s https://openai.com/searchbot.json
curl -s https://openai.com/gptbot.json
curl -s https://openai.com/chatgpt-user.json

如果服务器有 jq,可以先看结构:

curl -s https://openai.com/searchbot.json | jq .

这里要克制一点:OpenAI 官方页面支持写“published IP addresses / IP JSON”。不要把它扩展成“OpenAI 官方反向 DNS 验证流程”,除非你有对应 OpenAI 官方文档。

实务上,你可以把日志中的来源 IP 和官方 JSON 做比对,但文章里不能把这一步包装成绝对身份认证。

第八步:看access log里的真实访问

Nginx 日志可以先这样筛:

grep -Ei 'OAI-SearchBot|GPTBot|ChatGPT-User' /var/log/nginx/access.log \
  | awk -F'"' '{print $1, $2, $3, $6}' \
  | head -n 100

更有价值的是按 bot 分开:

grep -Ei 'OAI-SearchBot' /var/log/nginx/access.log | awk '{print $1, $7, $9, $12}' | head -n 50
grep -Ei 'GPTBot' /var/log/nginx/access.log | awk '{print $1, $7, $9, $12}' | head -n 50
grep -Ei 'ChatGPT-User' /var/log/nginx/access.log | awk '{print $1, $7, $9, $12}' | head -n 50

记录这几项:

字段 为什么看
IP 可与官方 IP JSON 做初步核对
URL 是否访问了产品页、FAQ、案例页
状态码 2003014034045xx 意义不同
User-Agent 区分 search、training、user-triggered
时间 看是否和上线、改版、WAF调整有关

不要只汇总“OpenAI 访问次数”。
真正有用的是“哪个 OpenAI user-agent 访问了哪个外贸推广页面,服务器给了什么响应”。

第九步:检查页面有没有误伤规则

即使 OAI-SearchBot 能访问,页面本身也要查:

curl -sL https://www.example.com/products/stainless-steel-valve/ | grep -Ei 'robots|canonical|description'
curl -sI https://www.example.com/products/stainless-steel-valve/ | grep -Ei 'x-robots-tag|content-type|status'

重点看:

  • 有没有 noindex
  • canonical 是否指向正确 URL;
  • 页面是否是文本内容,不是纯图片;
  • 是否被跳转到国家选择页;
  • 是否被 cookie / 地区弹窗挡住主要内容;
  • 是否要求登录。

ChatGPT 搜索入口检查不是只看 OpenAI bot。
页面自身的公开性和可读性也要过关。

第十步:形成一张核对表

建议每月或每次改版后更新一次。

检查项 合格标准 结果
OAI-SearchBot 规则 公开推广页未被 Disallow
GPTBot 规则 符合训练抓取策略
ChatGPT-User 理解 不当成常规搜索 crawler
产品页状态码 返回 200
案例页状态码 返回 200
FAQ 页状态码 返回 200
WAF / CDN 没有挑战页或 403 误伤
OpenAI IP JSON 已做初步来源核对
日志记录 bot、URL、状态码分开记录
页面 meta 无误加 noindex
canonical 指向正确公开 URL
参考资料 只保留官方来源

最后说清楚边界

ChatGPT 搜索抓取入口检查,能解决的是“入口是否被你自己挡住”。

它不能保证:

  • ChatGPT 一定收录;
  • ChatGPT 一定引用;
  • 答案一定展示你的链接;
  • 排名一定提升;
  • 询盘一定增加。

但它能排除一类很低级、很致命的问题:你明明想让公开产品页进入 ChatGPT 搜索相关候选,却在 robots.txt、WAF、状态码、canonical 或页面 meta 上把入口关掉了。

外贸 AI SEO 的第一步,不是喊口号。
是先把门开对。

参考资料

内卷越来越激烈,再不做好独立站,就真的晚了!

添加微信咨询

扫描二维码添加微信客服

联系我们

  • 微信同号: 13077312120
  • Email: service@wphuo.com
  • 地址: 工业设计城智点汇7楼701 佛山市顺德区工业大道32号