简答:封 GPTBot,放行 OAI-SearchBot。OpenAI 文档把它们列为职责不同的两个代理;只封训练爬虫不会让你从 ChatGPT 的搜索结果里消失。
为什么这件事值得写对
多数封掉 AI 爬虫的站点,做的是一个关于训练数据的决定。这是有正当理由的立场。问题在于人们写下的规则同时封掉了决定「你是否出现在答案里」的那个代理——而这个代价从不以报错的形式出现。你只是不再是一个选项。
一份把两个决定分开的文件
# 训练语料:不提供。
# 理由:我们对内容用于模型训练的立场。2026-09 复核。
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CCBot
Disallow: /
# 检索与答案界面:放行。
# 封掉这些会让我们从答案里消失,那不是本意。
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: Applebot
Allow: /关于这份文件的形态,两点说明。注释比看起来重要——一年后读它的人不会记得哪一行是有意为之,而一条没有解释的 Disallow 往往会被永远复制下去。另外不要加你没核实过的代理:编一个 User-Agent 名字比留空更糟,因为站长会照着一个没人遵守的名字写规则,然后以为自己放行了什么。
那些故意不遵守 robots.txt 的代理
有些用户触发的抓取代理被明确记载为通常不遵守 robots.txt,因为请求来自真人而不是定时抓取——Claude-User 和 Perplexity-User 的文档都是这么写的。你没法用 robots.txt 控制它们。如果确实需要,那是边缘规则层面的决定,而且你该明白它拦掉的是一个真人发出的请求。
去验证
读 robots.txt 告诉你的是本意;用每个代理的身份取一次页面,告诉你的是行为。只有后者算证据。