ChatGPT 能看到我的网站吗?检查方法
只有当 OpenAI 的搜索爬虫 OAI-SearchBot 可以抓取你的页面,并且拿到的 HTML 与浏览器相同,ChatGPT 才可能引用该页面。请检查三件事:你的 robots.txt 没有禁止 OAI-SearchBot;防火墙或 CDN 没有对它返回 403 或验证页面;正文包含在最初返回的 HTML 中。
许多网站所有者向 ChatGPT 询问自己的产品,却看到引用的是竞争对手,于是想知道 ChatGPT 究竟能不能访问自己的网站。这个问题有具体且可以验证的答案。OpenAI 公布了其爬虫的名称和各自的作用,所以你可以逐一检查整条链路中的每个环节:robots.txt 规则、服务器返回的响应,以及响应中的内容。
本页内容
哪些 OpenAI 爬虫与 ChatGPT 的回答有关?
OpenAI 的文档列出了网站所有者通常会遇到的三个代理。它们各自承担不同的任务,屏蔽其中一个不会屏蔽其他的。OpenAI 表示,robots.txt 中的每项设置都是相互独立的。
OAI-SearchBot为 ChatGPT 的搜索功能发现并索引页面。OpenAI 表示,选择退出它的网站不会出现在 ChatGPT 的搜索回答中。能不能被引用,取决于这一个。GPTBot收集可能用于训练 OpenAI 基础模型的内容。禁止它表示你的内容不应被用于训练,但不会让你从搜索回答中消失。ChatGPT-User在用户要求 ChatGPT 访问页面时(例如粘贴一个链接)访问该页面。OpenAI 表示,robots.txt 规则可能不适用于这类由用户发起的访问,并且该代理不用于决定内容是否出现在搜索中。
简单来说:OAI-SearchBot 决定引用,GPTBot 决定训练,ChatGPT-User 负责用户请求时的实时访问。
如何为 ChatGPT 检查我的 robots.txt?
在浏览器中打开 https://yourdomain.com/robots.txt。查找是否有指明 OAI-SearchBot 的规则组。如果没有,爬虫会遵循 User-agent: * 规则组。无论适用哪个规则组,其中的 Disallow: / 都会屏蔽整个网站。
还要检查这个文件本身能否正常响应。根据 RFC 9309,如果 robots.txt 返回服务器错误(5xx)或无法访问,爬虫必须假定整个网站都被禁止。404 没有问题,它表示没有任何规则。robots.txt 地址以状态码 200 返回一个 HTML 页面是常见的错误,因为爬虫在其中找不到有效的规则。
保留 ChatGPT 搜索、同时选择退出训练的设置如下:
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: *
Allow: /
OpenAI 表示,更新 robots.txt 后,针对搜索的更改可能需要约 24 小时才会生效。
即使 robots.txt 允许,防火墙也会屏蔽 ChatGPT 吗?
会,而且这是常见的原因。robots.txt 是对守规矩的爬虫提出的请求,并不是访问控制。实际返回什么内容,由你的防火墙、CDN 或机器人防护决定。如果它把 AI 爬虫当成不受欢迎的机器人,爬虫就会收到 403、429,或者类似 Cloudflare“Just a moment...”界面的验证页面,而用浏览器访问的人看到的页面完全正常。
从外部看,这个网站像是对所有人开放。只有自称是该爬虫的请求才会暴露出差别。这时 robots.txt 说可以,服务器说不行,而服务器说了算。
如何测试 OAI-SearchBot 拿到的内容?
向同一个 URL 发送两个请求,一个使用浏览器的 user agent,另一个使用爬虫的 user agent,然后比较状态码和大小。OpenAI 为每个爬虫公布了示例 user agent,其中的版本号可能会变化。
# As a browser
curl -s -o /dev/null -w "%{http_code} %{size_download}\n" \
-A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" \
https://example.com/page
# As OAI-SearchBot
curl -s -o /dev/null -w "%{http_code} %{size_download}\n" \
-A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot" \
https://example.com/page
如果浏览器得到 200 和较大的响应体,而爬虫得到 403、429、503 或小得多的响应体,说明防火墙对爬虫区别对待。有一点要注意:你的测试来自你自己的 IP 地址,而不是 OpenAI 的。对照已公布的 IP 范围(OpenAI 在 openai.com/searchbot.json 中列出)验证爬虫的防火墙,可能会放行真正的爬虫,却拦住你的测试。即便如此,这个测试中的拦截仍能说明防火墙如何处理该 user agent,值得修复。
如果页面能打开,ChatGPT 却仍然给不出有用的回答怎么办?
能访问只是第一步。如果收到的 HTML 只是一个稍后由 JavaScript 填充的空壳,爬虫拿到的文本可能几乎为零。用 curl 或浏览器的查看源代码功能看一看原始 HTML:如果正文不在其中,爬虫很可能也看不到。
接下来是内容信号:页面顶部清晰的简短回答、与人们提问方式一致的标题、明确的发布者和作者,以及可见的日期。这些并不能保证被引用,但能让页面更容易被准确引用。
AISeeWhy 如何检查这些?
AISeeWhy 会与普通浏览器并列,分别以 OAI-SearchBot、GPTBot、ChatGPT-User 和另外 11 个爬虫的身份抓取你的页面,按 RFC 9309 规则读取你的 robots.txt,并在有防火墙返回拦截或验证页面时指出是哪个防火墙。每条发现都附有可直接粘贴的修复方法,免费检查会显示你的评分和第一条发现。
常见问题
屏蔽 GPTBot 会让我的网站从 ChatGPT 搜索中消失吗?
不会。OpenAI 将每个爬虫的设置视为相互独立。GPTBot 与训练有关,而 OAI-SearchBot 决定页面能否出现在 ChatGPT 的搜索回答中。你可以禁止其中一个,同时允许另一个。
ChatGPT-User 会遵循 robots.txt 吗?
OpenAI 表示,由于这些访问由用户发起,robots.txt 规则可能不适用。如果你想阻止这类访问,robots.txt 规则并不是可靠的控制手段。
robots.txt 的更改多久能对 ChatGPT 生效?
OpenAI 表示,更新 robots.txt 后,其系统针对搜索进行调整可能需要约 24 小时。
能被访问就足以被引用吗?
不够。能访问使引用成为可能,但并不保证一定被引用。页面说了什么,以及说得有多清楚,仍然决定它是否会被用在回答中。