你的分类广告网站上的AI爬虫:到底该屏蔽哪些

服务器日志里那些不是谷歌的机器人
只要打开分类广告站哪怕一天的原始访问日志,访客名单看起来就不再像是一份人类访客名单。除了Googlebot和常见浏览器之外,还会出现GPTBot、ClaudeBot、PerplexityBot、Bytespider、CCBot,以及一大堆陌生到需要查一查才知道是什么的名字。它们会抓取每一个列表页面,包括一小时前才更新的页面,而且抓取节奏完全不符合真人访客的习惯。
成人分类广告站之所以比大多数网站更容易成为这类爬取的目标,原因和内容是否成人向毫无关系。列表信息不断变化,城市和分类的组合结构让独立页面的数量成倍增加,每个页面又都带着照片和文字,爬虫一次抓取就能拿到。正是这些让访客觉得好用的特性,也让网站变得更容易被抓取。
robots.txt本应解决这个问题:它是一份纯文本规则清单,告诉每个具名爬虫可以抓取什么、不能抓取什么。它放在域名根目录下,任何爬虫都能读取,而那些声称会遵守规则的公司,比如OpenAI、Anthropic、谷歌,旗下的爬虫通常也确实会遵守。但这份文件终究只是一种请求,不是一道锁。协议本身并不能阻止爬虫去抓取被禁止的页面,网站这一端也没有任何机制强制执行这条规则,除非运营者自己再加一层防护。
这个漏洞如今比过去更值得重视,因为出现在日志里的爬虫早已不是单一类型。有些是为了拿页面去训练模型,有些是想马上回答一个关于这个页面的问题,还有些其实是某个真人的请求被转发到了助手身上。把这三类一概而论,不管是全部屏蔽还是全部放行,都等于白白放弃了一个运营者本可以主动做出的选择。
训练、回答、"用户正在提问":顶着同一个名字的三种不同任务
OpenAI实际运行着三个互不相同的爬虫,把它们混为一谈是仓促写就的robots.txt里最常见的错误。GPTBot负责抓取可能用于训练未来模型的页面,OpenAI自己的文档也说明,禁止它抓取就能让网站内容不进入训练数据。OAI-SearchBot则与训练无关:它的作用是让页面能够作为引用来源出现在ChatGPT的搜索功能里,其开关与GPTBot是分开控制的,所以网站完全可以一边屏蔽训练爬虫,一边保留被引用的资格。ChatGPT-User又是另外一回事:它只在真人用户直接向ChatGPT提出关于某个页面的问题时才会被触发,OpenAI明确说明robots.txt的规则对它可能并不适用,因为这次抓取是对某个具体人类请求的响应,而不是自动化爬取。
Anthropic用不同的名字划出了同样的三条界线。ClaudeBot负责为训练抓取内容,Anthropic的支持文档说明其爬虫在这方面会遵守robots.txt的指令。Claude-User和Claude-SearchBot则分别对应实时提问和搜索引用这两种情形,各自都有独立的退出设置。
谷歌的做法范围更窄,却也最容易被理解反。Google-Extended其实根本不是爬虫,而是添加在robots.txt里的一个标记,用来控制Googlebot已经抓取到的内容是否可以用来训练Gemini或为其回答提供依据。禁止它并不会影响网站在普通谷歌搜索中的排名或收录情况,因为Googlebot照常抓取,丝毫不受影响。决定分类广告站在用户提问被谷歌AI摘要直接回答、而不是出现在一串蓝色链接里时能否露面的因素,是另外一项独立设置,并不是Google-Extended:AI摘要使用的正是Googlebot常规抓取的数据,所以屏蔽Extended标记只是让网站退出Gemini的训练,并不会让它退出AI摘要。真正同时影响AI摘要和普通搜索摘要片段的唯一开关,是nosnippet这一系列标签,而这背后的取舍远比大多数运营者在动手设置之前想象的要大。
实际结果是,运营者完全可以写出一份robots.txt,屏蔽所有具名的训练类爬虫,同时让搜索和引用类爬虫原封不动,从而只拿到自己想要的那一种结果,而不连带拿到另一种。这种区分从来不会自动出现,必须逐个机器人、逐条规则地手动写进去。
Cloudflare新规能解决什么,又解决不了什么
robots.txt原本只是用来回答一个问题:你可以抓取哪些页面。它从来没打算回答第二个问题:拿到页面之后你可以拿它做什么。Cloudflare在2025年9月推出的Content Signals Policy(内容信号政策),恰好补上了这第二层。现在,网站可以在任意用户代理分组下添加一行Content-Signal,设定search、ai-input、ai-train这三个值,每一项分别设为yes或no。某一项没有填写,只代表运营者还没有就这项用途表明态度,并不等于答案是no。
这项政策的用处很具体:它让运营者可以在一个地方同时说清楚"这段内容可以收录进搜索,但不要喂给模型,也不要拿去训练",而这正是旧版robots.txt语法完全没有词汇可以表达的区分。使用Cloudflare托管式robots.txt服务的约380万个域名,已经被自动加上了search=yes、ai-train=no;其他网站则可以手动写这几行,或者直接到contentsignals.org生成。
Cloudflare自己对这项政策的说明也坦率承认了它的局限:这些只是声明的偏好,不是技术上的屏障,一个决意无视它的爬虫,除了网站另外叠加的防护(比如防火墙规则或机器人管理产品),不会遇到任何真正的阻拦。
这个局限在这项政策正式上线之前一个月,就已经不再是纸上谈兵。2025年8月,Cloudflare发布报告指控Perplexity在运行其所称的"隐形爬虫":这些机器人在抓取被禁止访问的测试域名之前根本不去读取robots.txt,而且一旦声明身份的PerplexityBot被屏蔽,就会切换成一个通用的Chrome浏览器特征,并通过Perplexity从未公开过的IP段发起请求。Cloudflare因此将Perplexity从其认证机器人计划中除名。Perplexity则称这份报告是一场公关炒作,并对身份归属提出异议,但并未逐条反驳报告中给出的具体用户代理和IP证据。无论哪一方更有道理,这件事都是目前最清楚的一个证明:无论是写在robots.txt里,还是写在Content-Signal里,一条声明的规则,只能约束那些本就愿意遵守的爬虫。
运营者真正要承担的两笔成本
第一笔成本会直接体现在账单上。这个细分领域里大多数运营者实际使用的是预算型VPS或共享主机套餐,这类方案通常只配有每月固定的数据流量额度,而不是无限带宽,爬虫消耗的流量和付费访客消耗的流量是完全一样计费的。一个按固定周期反复抓取多城市分类站上每一条列表和每一张照片的训练类爬虫,带来的负载和网站本该服务的那些人毫无关系,而同样那种让主机商或CDN一张终止通知就能让一家分类广告业务戛然而止的基础设施脆弱性,也意味着一个因机器人流量触发按量计费式封停的账号,同样会暴露在这种说停就停的风险之下。机器人管理服务商Imperva在其《2026年恶意机器人报告》中称,自动化流量占到了所测得全部网络流量的刚过一半,其中约40%被归类为恶意流量;这个数字出自一家在这个问题上有商业利益的厂商,但其方向,即网站带宽账单中有相当一部分根本不是人类流量,和任何一份原始访问日志里能看到的情况是吻合的。
第二笔成本则根本不会出现在任何账单上。针对网站自身数据库提出的删除请求,运营者是真正能够执行的:找到那条记录,删掉它,再确认它确实已经消失。但一张照片、一段简介一旦被训练类爬虫收进了用于教模型学习通用规律的数据集,就再也没有对等的请求可以发出了。没有任何客服地址能对接一个训练语料库,也没有人能确认某位广告主的某张图片,在离开服务器之后究竟是被保留了下来,还是没有。这是分类广告站通过照片附带的常规元数据,在不经意间泄露了广告主哪些信息这一控制权问题的另一个版本,棘手程度更甚:内容一旦流出,运营者追踪它去向的能力就会急剧下降,而当某位广告主问"我这条列表的照片最终会流向哪里"时,运营者该给出的是一个诚实说明这种局限的答案,而不是一句自己根本无法兑现的安慰。
具体该怎么做
第一步是先去读一读网站当前的robots.txt,而不是想当然地以为自己知道里面写了什么。不少用模板搭建起来的分类广告站,要么根本没有这个文件,把所有尺度留给每个爬虫自己拿主意,要么还留着测试环境遗留下来的一条笼统规则"User-agent: *, Disallow: /",这条规则连同其他爬虫一起把Googlebot也挡在了门外,悄无声息地把网站整条自然搜索流量通道清零,却不会跳出任何错误提示让人察觉。
先把训练这个问题定下来,因为它是三者中唯一有明确答案的。至少要为GPTBot、ClaudeBot、Google-Extended、Bytespider和CCBot写明确的禁止规则,这几个覆盖了目前主要基础模型训练爬虫里那些带有公开、有文档记录的用户代理字符串的机器人。这是一个运营者完全可以主动做出的决定,而不该靠默认设置来代劳。
搜索与引用这个问题要单独决定,而且要真正花心思去决定,不能照搬处理训练问题的那条规则。OAI-SearchBot、Claude-SearchBot和PerplexityBot决定着当有人向AI助手提出一个某条列表恰好能回答的问题时,这个分类站是否能被引用;屏蔽它们就等于放弃这种曝光机会,留着它们就能保住这个机会,而且没有任何理由要求这里的答案必须和上一行给GPTBot、ClaudeBot的答案保持一致。
如果网站架设在Cloudflare上,要检查一下Content-Signal这几行是否已经被自动添加,以及默认设置是否符合运营者自己的真实意愿,因为自动生成的设置虽然合理,却是通用版本,并不是针对某一家网站量身定制的。如果网站没有用到这项服务,这几行规则也可以自己动手写,几分钟就能完成,或者到contentsignals.org生成之后直接粘贴进去。
最后要认清一个事实:robots.txt和Content-Signal规则解决的只是容易的那九成,剩下那些愿意做出Cloudflare指控Perplexity所做之事的爬虫,不管这份文本文件写得多么仔细,都不会被它挡住。要抓住这些爬虫,得靠留意某个声明身份的机器人是否从其公开IP段之外的地址发出请求,这件事如果预算允许,CDN的机器人管理功能可以自动标记出来;预算有限的话,定期查看访问日志的人也能手动发现。无论用哪种办法,目标都不是消灭每一个不受欢迎的爬虫,这本来就做不到,而是确保那些真正会遵守规则的爬虫,清楚地被告知自己被允许做这三件事里的哪一件。


