GPTBot、ClaudeBot、PerplexityBot:哪些AI爬虫该放行,哪些该拦截
谢尔盖·卡尔普(纽约), 联合创始人 / CTO
下面这个场景,我们在做AI可见度审计时反复遇到。一家公司花了一年时间投入内容:专家文章、更新过的服务页面、像样的常见问题板块。可它就是不出现在ChatGPT或Perplexity的回答里。我们打开robots.txt,发现一条多年前为了挡采集器而加的规则,把所有“未知”机器人全部拦下。或者robots.txt本身没问题,但CDN的机器人防护或某条地区封锁规则拒绝了来自海外数据中心的请求,于是OpenAI的爬虫被挡在门外。网站在,内容也在,但对好几个AI助手来说,它根本不存在。
反过来的情况同样常见。老板得知GPTBot正在下载自己的文章用于模型训练,一气之下把所有AI爬虫一次性全部封掉,连那些会带来客户的也不放过。下面我们就把事情讲清楚:AI爬虫分哪几类,训练爬虫和搜索爬虫有什么区别,以及怎样设置访问权限,才能既不丢内容、也不丢客户。
核心要点
AI爬虫分三类:训练模型、为搜索建索引、为用户抓取页面。放行搜索类和用户类,训练类自行取舍,并记得检查CDN和防火墙。
AI为什么必须访问您的网站
当有人问ChatGPT、Claude、Gemini或Perplexity“谁能给一家小型电商做账务审计”时,他得到的是一段AI回答:一段现成的文字,里面有建议、有公司名称,还有指向来源网站的链接。在聊天助手里,回答连同引用一起出现在对话中;在Google里,它以AI Overview的形式出现在常规结果之上。人们读完回答,往往直接从中做出选择。
要写出这段回答,AI必须读取页面。抓取页面的程序叫爬虫,也叫机器人。每个爬虫都会用一个名字(即user agent字符串)向服务器表明身份,robots.txt里的规则正是依据这个名字来放行或拦截它。如果该来的爬虫打不开页面,AI就无法引用它。
AI爬虫的三种类型:训练、搜索和用户请求
最要紧的一点是:“AI机器人”不是一个机器人。大型AI公司都运行着好几个,各自分工不同。
- 训练爬虫收集可能用于训练未来模型的文本。拦截它们,您的内容就不会进入模型的“记忆”,但通常不影响实时搜索。
- 搜索爬虫为页面建立索引,好让AI能找到它们并在回答中引用。拦掉这一类,您的网站就会从带来源的回答里消失。
- 用户触发的抓取程序会在聊天中有人说“帮我看看这个网站”时,或助手在作答过程中需要核对某个页面时,打开指定的那一个页面。这不是批量抓取,而是代表用户的一次性动作。
对企业网站来说,逻辑很简单。搜索爬虫和用户触发的抓取程序几乎总该放行:它们带来提及和访问。训练爬虫可放可拦,这是公司层面的政策决定,不是营销决定。
AI爬虫一览:谁是谁
爬虫的名称和职责时有变动:各家公司会新增机器人,也会重新说明现有机器人的用途。下表是撰稿时的情况。在动手配置之前,请先查阅各家公司发布的面向站长的文档。
| 公司 | 爬虫(user agent) | 用途 | 拦截后会怎样 |
|---|---|---|---|
| OpenAI | GPTBot | 收集用于模型训练的数据 | 内容不再用于训练;不影响ChatGPT搜索 |
| OpenAI | OAI-SearchBot | ChatGPT中的搜索 | 您的网站可能从ChatGPT带链接的回答中消失 |
| OpenAI | ChatGPT-User | 应用户要求打开页面 | 用户要求时,ChatGPT打不开您的页面 |
| Googlebot | 为Google搜索(含AI Overviews)建立索引 | 您的网站从Google搜索和AI Overviews中消失 | |
| Google-Extended(是一个令牌,不是独立爬虫) | 控制内容是否用于Gemini的训练与事实支撑 | 内容不再用于这些用途;不影响Google搜索 | |
| Anthropic | ClaudeBot | 收集用于模型训练的数据 | 内容不再用于训练 |
| Anthropic | Claude-SearchBot | 为Claude的回答做搜索 | 您的网站在Claude带来源的回答中出现得更少 |
| Anthropic | Claude-User | 应用户要求打开页面 | 用户要求时,Claude打不开您的页面 |
| Perplexity | PerplexityBot | 为Perplexity搜索建立索引 | 您的网站可能从Perplexity的回答中消失 |
| Perplexity | Perplexity-User | 应用户要求打开页面 | 一般不遵循robots.txt,因此在robots.txt里拦它未必拦得住 |
| Microsoft | Bingbot | 为Bing建立索引,而Bing是Copilot的底座 | 您的网站从Bing和Copilot的回答中消失 |
| Yandex | YandexBot | 为Yandex搜索建立索引,而它是Alice AI的底座 | 您的网站从Yandex搜索和Alice AI的回答中消失 |
关于Google需要多说一句。Google-Extended不是一个会来访问您网站的机器人,它是您写在robots.txt里的一个令牌。抓取工作仍由Googlebot完成,这个令牌只是告诉Google:您的内容是否可以用于Gemini的训练与事实支撑。它不影响Google搜索。AI Overviews建立在Google搜索索引之上,所以您没法用Google-Extended把自己从中排除;而拦掉Googlebot,就等于彻底退出Google搜索。
关于用户触发的抓取程序也要说明一句。AI公司有时会把“应用户直接要求打开某个页面”的机器人描述为用户的行为,而非自动抓取,因此robots.txt规则对它们的适用方式可能与普通爬虫不同。Perplexity-User就是一例。如果您确实需要限制这类访问,请查阅该公司的最新文档,并考虑在服务器层面设置规则。
GPTBot:拦还是不拦?
GPTBot是我们被问得最多的问题,因为它是最广为人知的AI爬虫。关键在于:GPTBot负责的是训练,不是ChatGPT里带来源的回答。搜索由OAI-SearchBot负责,应用户要求打开页面则由ChatGPT-User负责。ChatGPT的其余情况,我们在如何在ChatGPT中获得推荐的指南里讲过。
这样一来,有意识的选择就剩三种:
- 全部放行。适合绝大多数服务型企业和网店:AI对您的公司了解得越多越好。这类网站很少有值得保护的独家数据。
- 拦训练,放搜索。适合出版机构、付费内容创作者,以及拥有独家数据库或方法论的企业。做法是拦掉GPTBot、ClaudeBot和Google-Extended,放行搜索爬虫和用户触发的抓取程序。
- 除传统搜索外全部拦截。对内部企业门户或许说得通。但对一个要靠它获客的网站,这几乎总是个错误。
在服务器日志里,GPTBot的user agent是一段包含GPTBot字样、并带有该爬虫说明页链接的字符串。任何脚本都能伪造这段字符串,所以有疑问时,请用官方公布的IP段来核验请求。OpenAI和其他AI公司都会公布这些IP段。
如何在robots.txt里拦截AI爬虫:示例
下面各例中的example.com只是占位,功能性目录(用户中心、购物车、站内搜索)请替换成您自己的。
示例1.全部放行,只拦功能性目录
User-agent: *
Disallow: /account/
Disallow: /cart/
Disallow: /search/
Sitemap: https://example.com/sitemap.xml
最简单的方案。这里没有给AI爬虫单独分组,因此它们全都遵循带星号的通用分组。
示例2.拦训练,放搜索和用户请求
# Training crawlers: blocked
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
# Search crawlers and user-initiated fetchers: allowed, except utility sections
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
Disallow: /account/
Disallow: /cart/
Disallow: /search/
# Everyone else, including Googlebot, Bingbot and YandexBot
User-agent: *
Disallow: /account/
Disallow: /cart/
Disallow: /search/
Sitemap: https://example.com/sitemap.xml
这里有个技术细节,是大家最容易搞错的。爬虫会在robots.txt里找以自己名字命名的分组,一旦找到,它就会忽略星号通用分组。所以功能性目录的规则必须在每一个具名分组里重复一遍。否则,用户中心就只对OAI-SearchBot之外的所有人关闭。
示例3.一个常见错误
User-agent: *
Disallow: /
User-agent: Googlebot
Allow: /
这就是“除Google外全部拦截”的样子。网站还留在Google里,但对ChatGPT、Claude和Perplexity背后的爬虫完全关闭,对Bingbot也一样,也就意味着对Copilot关闭。这样的文件我们经常碰到,而站长通常连它的存在都不记得了。
那robots.txt里要写llms.txt吗?
robots.txt里并没有针对llms.txt的指令,所以您不需要声明它:这个文件在标准地址example.com/llms.txt上就能找到。只要确认robots.txt没有拦住对它的访问即可。文件里该写什么,见我们的llms.txt完整指南。
防火墙、CDN和机器人防护:看不见的拦截
robots.txt是一个请求,不是一把锁。真正的锁在您的服务器上,或者在它前面,而且它常常拦下的正是您想放进来的那些机器人。最常见的几种情况:
- CDN里的“拦截AI机器人”开关。有些CDN和安全服务提供一键拦截已知AI爬虫的设置,新项目里它甚至可能默认开启。这类开关并不总能区分训练爬虫和搜索爬虫。
- DDoS防护和浏览器验证。爬虫过不了JavaScript验证或验证码,拿到的是验证页面,而不是您的内容。
- 地区封锁。只服务单一国家的企业,有时会把其他所有地区的流量都封掉。AI爬虫通常从其他国家的数据中心发起请求,于是一并被拒。
- 访问频率限制。爬虫连续请求多个页面就会触发限制,收到429状态码。
- Web应用防火墙和安全插件。WordPress等CMS里的安全模块,以及主机层面的防火墙,会按自己的名单拦截“可疑”的user agent。
解决办法不是关掉防护,而是把该放行的爬虫加进白名单,最好按官方公布的IP段核验,而不是只看名字。这样真爬虫进得来,冒充GPTBot的机器人进不来。
如何查看服务器日志:谁来过、拿到了什么
唯一可靠的办法,是看服务器访问日志。它记录每一次请求:URL、状态码和user agent。下面是几条适用于运行nginx的Linux服务器的命令。您服务器上的日志路径可能不同。
# How many requests GPTBot made
grep -ci "GPTBot" /var/log/nginx/access.log
# Which status codes OAI-SearchBot receives
grep -i "OAI-SearchBot" /var/log/nginx/access.log | cut -d' ' -f9 | sort | uniq -c
# Which pages PerplexityBot requested
grep -i "PerplexityBot" /var/log/nginx/access.log | cut -d' ' -f7 | sort | uniq -c | sort -rn | head -20
结果怎么读:
- 完全没有请求:要么爬虫还没来过,要么它在到达您的服务器之前就已经在CDN层面被拦下了。请查看CDN日志。
- 200状态码:一切正常,爬虫拿到了您的页面。
- 403、429或503状态码:爬虫来了,却被拒之门外。请到防护设置里找原因。
- 大量301和404:爬虫把时间浪费在跳转和死链上了。该清理了。
如果您拿不到服务器权限,比如用的是托管型建站平台,那么Google Search Console和Bing Webmaster Tools里的抓取报告能帮上部分忙,但它们对AI爬虫只字不提。这种情况下,请去问平台的技术支持。
访问权限设置分步清单
| 步骤 | 做什么 | 什么时候做 |
|---|---|---|
| 1.政策 | 决定是否放行训练爬虫,并把它写成公司政策 | 一次 |
| 2.审查robots.txt | 检查是否拦了Googlebot、Bingbot和各家AI搜索爬虫 | 一次,之后每次改版后再查 |
| 3.重写robots.txt | 照上面某个示例来写,功能性目录的规则在每个分组里都重复一遍 | 一次 |
| 4.检查防护 | 逐项检查CDN设置、DDoS防护、地区封锁、防火墙和安全插件 | 一次,之后更换主机或CDN后再查 |
| 5.读日志 | 看哪些爬虫来过、它们收到的是什么状态码 | 改动后一到两周,之后每月一次 |
爬虫访问权限是我们AI搜索优化清单的第一节。这一节不过关,清单上其余的事都无从谈起。
结果:您的网站对能带来客户的机器人是敞开的
权限设置妥当之后,局面就可控了。搜索爬虫拿到的页面都是200状态码,功能性目录对所有人关闭,是否供模型训练是一个经过权衡并写进robots.txt的决定,而您的防护会放行经过核验的爬虫、挡住冒牌的。这不保证您一定能进AI回答,但它排除了缺席AI回答最令人窝火的那个原因:“它们根本就进不来”。
AI爬虫权限以及其他工作,我们怎么做
AI搜索优化自2002年起从事SEO。我们有全球100多家客户、Google与Yandex认证,网站与AI可见度由同一个团队端到端负责。我们为纽约以及国际市场的企业,优化在Google AI Overviews和AI Mode、ChatGPT、Gemini、Claude、Perplexity、Microsoft Copilot等AI助手中的表现。
设置AI爬虫访问权限,属于网站技术优化的一部分。完整服务包括:
- AI可见度审计:robots.txt、服务器防护、日志,以及AI助手是怎么谈论您和您的竞争对手的;
- 提示词研究:您的客户会向AI助手提出哪些问题;
- 网站技术优化:AI爬虫访问权限、llms.txt、Schema标记、速度、错误;
- 为AI回答而写的新内容;
- 在第三方网站上的品牌提及;
- 在外部来源发表文章,建立公司及其专家的权威性;
- 持续的AI可见度监测。
AI是把网站当成一个整体来评估的,所以我们从第一天起就接管整个站点,从技术优化一直到GEO。我们保证交付GEO任务、修复错误,并让您的网站快速适应不断变化的AI搜索要求,包括陆续出现的新爬虫。
月费为每月290美元,含前10小时工作时长。每增加1小时45美元。GEO工作按实际工时结算:我们只对当月完成并交付的工作开票。不打折,也没有免费月。
预约通话。我们会查清您的网站现在正把哪些爬虫拒之门外,并把它向您的客户真正在用的AI助手敞开。