上个月有个做知识付费的兄弟找我,说他的AB页跳转跑了不到一周就被百度封了,账户里还有两万多余额没花出去。我问他怎么配的,他说很简单,后端判断一下User-Agent,是百度爬虫就给白页,其他一律302到落地页。我问他UA判断用的什么词,他说就判断了Baiduspider。我问他有没有做IP段校验?有没有处理PC端和移动端的差异?有没有设置延迟?他愣了半天,说这些不都是Cloak工具自动搞定的吗?
这就是问题所在。太多人把AB页跳转想得太简单,以为判断个UA就完事了。实际上搜索引擎的风控模型早就不是单点检测了,UA只是最基础的一道。真正的封禁触发往往是多个低危特征叠加,累计到一定阈值才被判定为作弊。下面我把这几年踩过的坑和验证过的方案掰开揉碎讲清楚。
搜索引擎怎么识别你的跳转?风控逻辑拆解
要搞明白为什么被封,先得知道百度、Google这类平台是怎么判定一个AB页跳转是正常还是异常的。它们的风控系统通常分三层,每一层互相独立又互为补充。
第一层是爬虫身份验证。这层主要看三样东西:UA标识是否匹配、IP段是否属于搜索引擎官方公布的网段、DNS反向解析是否指向搜索引擎的服务器。很多初级Cloak只做了UA判断,IP库和rDNS根本没做,这就是第一个漏洞。
第二层是行为特征分析。搜索引擎的爬虫在抓取页面时,会记录请求频率、页面渲染时间、资源加载顺序、JS执行结果等行为数据。如果你的页面对爬虫和白名单用户返回的内容差异过大,或者跳转行为在爬虫视角下表现异常,比如响应时间突变、302跳转链路长度不符合常规,都会被标记。
第三层是关联分析。这才是真正杀死你的地方。搜索引擎会把你的域名历史行为、同IP下其他站点的表现、服务器指纹特征、SSL证书信息、DNS解析记录变更频率等所有数据关联起来,形成一个信誉分。前期测试阶段信誉分高,单次异常可能不会触发处罚。但如果信誉分已经被拉低,任何一点小异常都可能被直接封禁。
真正触发封禁的5个原因
结合我自己的实战和同行交流,下面这5个触发原因占比最高,几乎覆盖了90%以上的封禁案例。
1. IP段访问画像异常
这是最容易被忽视的一个坑。很多做AB页跳转的人用的是海外服务器,或者国内便宜的双线机房。这些IP段有一个共同特点:既被大量Cloak站点使用,也被大量正常站点使用。搜索引擎会把历史上在这个IP段上发现过的作弊行为计入信用记录。
我之前有个客户用的某云厂商香港轻量服务器,同一个IP段下面挂了200多个站点,其中一半是做Cloak的。他的AB页跳转做得再干净,百度爬虫一到这个IP段,整体信誉分就是低的。测试期内可能没事,一旦进入正式投放,流量一上来,暴露在爬虫面前的特征就越多,封禁只是时间问题。
实操建议:部署前先对IP段做信誉体检。用百度搜索资源平台的抓取诊断工具,或者自己模拟完整访问流程,查看响应日志中爬虫的访问频率和返回状态码。如果发现某个IP段内大量站点都被标记过,趁早换IP。另外,强烈建议不要在同一个IP上部署多个做Cloak的域名,这是最典型的关联信号。
2. 无头浏览器特征暴露
搜索引擎从2018年就开始大规模部署无头浏览器来检测Cloak。无头浏览器本身没有漏洞,但运行环境跟真实浏览器有细微差异。这些差异包括:WebGL渲染器字符串不同、Canvas指纹生成结果异常、浏览器插件对象缺失、时区与IP地理位置不匹配等。
我见过一个案例,某技术团队自己写了一套AB页跳转逻辑,用了Puppeteer做检测端模拟,理论上很完美。但他们的检测逻辑里忽略了一个细节:正常访问时,用户浏览器会主动请求favicon.ico,而无头浏览器默认不请求。百度爬虫用的无头浏览器虽然做了很多伪装,但在favicon请求上偶尔会暴露。这个细节后来被他们的竞争对手利用,通过大量构造无头浏览器访问,成功让他们的跳转被封。
预防方法:你的跳转逻辑里不能只依赖某单一特征做判断。至少要融合UA、IP信誉、JS执行环境、Canvas指纹、WebGL渲染器这5个维度,再根据各维度的置信度加权打分。只有得分低于某个阈值时才判定为爬虫,返回白页。单一特征触发就跳转的,最终都会挂。
3. 设备指纹链路不一致
AB页跳转的核心是判断来的人是不是搜索引擎爬虫。判断完了以后,你给爬虫看白页,给真实用户看落地页。问题出在:如果爬虫看到的白页和用户看到的落地页之间,设备指纹出现了跳跃性变化,风控模型就会怀疑你做了手脚。
举个例子。某用户用Chrome浏览器访问你的页面,你的跳转逻辑判断他是真实用户,给他302到落地页。落地页上部署了第三方统计工具,比如百度统计或者CNZZ。这时候百度系的产品会同时采集到用户在落地页上的设备指纹和在你首页上的设备指纹。如果两个页面分别部署在不同的域名下,且没有做跨域指纹同步,百度统计就会看到两个完全不一致的指纹ID。
正常情况下,用户从一个页面跳到另一个页面,应该是同一个浏览器环境,指纹ID应该保持一致。如果你把两个页面的指纹ID搞成了完全不同的两个值,就等于告诉风控系统:这个访问者被重定向到了另一个环境。短时间少量这样的信号没关系,一旦比例超过正常范围,就会被标记为跳转作弊。
解决方案:如果你用的是自研方案,一定要保证首页和落地页使用同一套指纹采集脚本,并且把指纹ID通过URL参数或者本地存储透传到落地页。如果你用的是第三方Cloak工具,要确认工具的跳转机制是JS延迟跳转还是服务端302。服务端302很难解决指纹链路不一致的问题,JS延迟跳转在这个指标上更有优势。
4. 跳转延迟曲线异常
用户访问首页,停留了几秒钟,然后自动跳到落地页。这个行为在正常场景下也常见,比如页面加载完毕后JS触发跳转。但如果你的页面几乎每次都是在固定的延迟时长后跳转,比如统一在3.0秒、2.8秒、3.1秒之间波动,搜索引擎通过大量采样就能发现,这组延迟数据是人造的,不是自然行为。
我之前自己写了一套AB页跳转逻辑,刚开始设置的延迟是固定的2.5秒。跑了两个星期,统计后台发现百度爬虫的抓取频率突然提升了3倍多。我赶紧查看日志,发现爬虫每次访问,页面都在2.5秒后返回302。后来我把延迟改成2.0到4.0秒之间随机分布,并且根据用户设备性能做动态调整。比如老款手机延迟3.8秒,新款旗舰机延迟2.3秒,然后爬虫的抓取频率才降下来。
这里有一个很重要的细节:延迟时间不是重点,延迟的分布规律才是重点。真实用户的跳转延迟,在不同设备、不同网络环境下,应该是现长尾分布的。有1秒内跳走的,也有5秒后才跳走的,还有直接关掉页面的。如果你的所有请求,延迟都在一个非常窄的区间内,哪怕你没有做AB页跳转,搜索引擎也会怀疑你的页面在搞自动化重定向。
5. Cookie标记链路断层
很多Cloak方案会在第一次访问时给用户种一个Cookie,后续根据Cookie值判断是否放行。这个思路本身没问题,问题出在Cookie的生成时机和作用域管理上。
搜索引擎的爬虫第一次访问你的页面,种下cookie,标记为爬虫。第二次用真实浏览器访问时,读取这个cookie,发现是爬虫,就返回白页。这会导致真实用户看不到落地页,转化率下降。你为了修复这个问题,可能就改成:不信任已有cookie,每次访问都重新做指纹检测。这又带来了新的问题:爬虫每次来都要做完整检测,检测行为本身就成了识别特征。
更严重的情况是Cookie作用域混乱。如果你的首页在域名A,落地页在域名B,Cookie没法跨域传递。用户在域名A被判定为真实用户,跳转到域名B后,域名B上的逻辑又做了一次独立的判断。如果两次判断用的指纹采集算法不一致,就可能出现:域名A判定为真实用户,域名B判定为爬虫,最终用户被弹出。用户一怒之下投诉到搜索引擎,反而加速了你的封禁进程。
解决方案:做AB页跳转时,Cookie的种设动作应该跟落地页的跳转逻辑解耦。也就是说,你的落地页不应该再做一次完全的检测判定,应该无条件信任来自受信域名的跳转请求,只需要校验一下跳转来源URL是否合法即可。这样既保证了用户的链路完整,又避免了重复检测带来的特征暴露。
两个真实场景复盘
说了这么多,我用两个真实客户的场景来复盘一下,看看这些触发原因在实际业务中是怎么叠加的。
场景一:某二类电商客户的封禁全记录
我的客户做的是抖音引流到独立站卖养生茶,用了AB页跳转把百度流量转到落地页。用的是某Cloak平台,配置了PC端识别、移动端识别和地域识别三个规则。上线第三天,百度就开始不收录他的页面。第七天,百度搜索资源平台提示站点存在作弊行为,一个月后域名被完全K掉。
复盘后发现,封禁的关键节点在于:他的Cloak平台给所有访问者返回的延迟时间被固定在2.7秒。因为平台配置的是全局延迟,不管来的是百度爬虫还是360爬虫还是真实用户,全部统一2.7秒。百度爬虫在短时间内高频抓取,积累了足够多的样本,发现延迟曲线几乎是一条直线。加上这个Cloak平台的服务器IP段此前在黑名单上出现过,两个风险特征叠加,直接触发人工复核,最后被封。
后续我帮他换了自建方案,延迟变成动态分布区间,并且把百度爬虫的识别精度从UA判断升级为IP段+UA+rDNS三维校验,同时把页面内容和落地页内容做了视觉一致性优化。重新上线后跑了45天没有再被封。当然,这个过程中他的页面质量、原创度、加载速度也都做了大幅提升。
场景二:某教育客户的异常流量警报
另一个客户是做成人职业培训的,投放的是百度竞价,账户预算每天一万。他们之前的AB页跳转逻辑是:只要是百度爬虫就返回白页,其他流量全部302跳转到课程咨询页。上线到第五天,百度创意质量分突然掉了20%,点击率从4.2%降到2.1%。
我们排查后定位到两个问题。第一,百度爬虫访问的时候返回的是白页,但白页上的TDK、结构化数据、内部链接全部被删掉了。搜索引擎在抓取时发现这个页面跟同站点其他页面的结构差异过大,判定为低质量页面。第二,爬虫抓取白页时,页面上的JS代码执行了,但执行结果被设置成不可见,导致爬虫拿到的渲染结果跟直接请求拿到的HTML不一致。
解决方案是重新设计了白页的内容模板,保证白页上有正常的产品介绍、行业信息、相关文章模块,而不是一个空壳。同时把JS注入逻辑做了改造,内容区域对爬虫隐藏,但页面整体结构和渲染结果保持一致。调整之后,创意的质量分在十天之内从4.2回升到了4.8。
防封配置清单:照着配就好
说了这么多原因,下面给一份可以直接用的防封配置清单。注意,这不是配置完就一劳永逸的方案,而是一个基线。你需要根据自己的业务特征、投放平台、目标用户群体做微调。
- 延迟跳转配置:延迟时长在1.8秒到4.5秒之间随机分布,分布模式要模拟真实用户的停留概率,不要用平均值。建议以200毫秒为步长,做不等概率的随机抽样。
- IP段校验: 至少要内置百度、Google、360、搜狗四家的官方IP段库,并且每周更新一次。校验顺序是先rDNS,再IP段,最后才是UA字符串。
- UA白名单策略: 不要只判断是不是Baiduspider,要关注UA中品牌名后面跟的版本号、操作系统信息是否合理。比如Baiduspider的UA里出现了Chrome版本号低于60,那大概率是伪造的。
- 指纹采集维度: Canvas指纹、WebGL渲染器、屏幕分辨率、时区偏移、语言列表、插件数量,至少融合6个维度。任何单一维度都不能独立触发跳转判断。
- Cookie标记策略: 首页种下的cookie要设置独立域名、HttpOnly、7天有效期。落地页不再重复做检测,直接通过服务端校验Referer头来放行。Referer校验规则是只允许特定域名来源的请求。
- 页面内容一致性: 白页和落地页要保持结构相似度60%以上。不能用空页面,不能只放一张图,不能全是JS渲染的内容。至少要给爬虫看到正常的标题、段落、列表和页脚。
- 抓取频率控制: 通过robots.txt对爬虫的抓取频率做合理限制,而不是完全禁止。正常站点不会拒绝爬虫抓取,完全禁止本身就是可疑信号。
- 日志留存: 所有跳转请求必须记录完整日志,包括IP、UA、Referer、页面路径、跳转类型、延迟时长。日志只保留最近30天,定期清理。不要改成永远不保留,那也是异常特征。
常见问题速查
根据我平时被问得最多的问题,整理几个典型场景的解决方案。
问题一:已经被百度标记了,还能恢复吗?
能恢复,但要看被标记的程度。如果只是在搜索资源平台收到违规提醒,没有正式封禁域名,可以做三件事:第一,立即停掉AB页跳转,把所有流量恢复为正常页面。第二,对页面内容做全面质量优化,删掉低质量采集内容,补充原创和结构化数据。第三,在搜索资源平台提交申诉,态度真诚,说明自己网站被恶意植入跳转代码,已经清理完毕。如果是域名已经被K掉,那就直接放弃,换新域名重新起站,不要再在旧域名上折腾。
问题二:JS跳转和302跳转哪个更安全?
从防封的角度看,JS跳转更安全。原因是302跳转在服务端响应头中就能看到Location字段,爬虫不需要渲染页面就能识别跳转行为。JS跳转则在页面加载完成后通过脚本触发,爬虫需要执行JS才能看到跳转目标,检测成本更高。但JS跳转会带来转化的延迟,如果你的落地页加载速度本身就慢,用户更容易在跳转过程中流失。建议页面加载时间不超过1.5秒的用户,用JS跳转;超过的,用meta refresh替代纯JS。
问题三:白页应该放什么内容才不容易被判断为空壳?
白页不是纯白,而是给搜索引擎看的正常展示型页面。至少要有500字以上的行业相关内容,一个产品分类列表,一个页脚导航,再加上一个数代码。内容主题要和你的落地页保持相关性,但不出现任何暗示实际转化业务的元素。不要放死链,不要放弹窗,不要放自动跳转脚本。简单说,就是一套看起来正常运营但转化路径不完整的落地页。
问题四:Cloak工具能保证不被检测吗?
任何工具都不能保证。工具的作用是降低被检测的概率,不是消灭概率。好的工具会把检测逻辑做在服务端,融合多维度特征做判决,坏的工具只做UA判断。选择工具时,重点考察它的IP库更新频率、指纹采集维度、延迟分布策略这三个方面。工具的价格从几百到几千一个月都有,但贵的不一定更安全,关键看是不是针对你的投放平台做了专门优化。
最后说点实在的
AB页跳转这种技术,本质上是在跟搜索引擎的风控系统玩猫鼠游戏。搜索引擎每年都在升级检测模型,从早期的UA判断,到后来的无头浏览器检测,再到现在的关联分析和设备指纹链路追踪。你不可能永远赢,但你可以做到赢的时间比别人长。
核心原则只有一条:让你的页面行为看起来像一个正常运营的网站,而不是一个只为了跳转而存在的空壳。所有检测方法,最终都可以归结为两个问题——你的页面内容是否丰富合理?你的跳转行为是否符合真实用户的行为模式?把这两点做到位,被检测的概率就能压到最低。
如果你的AB页跳转已经被封过,或者正在准备搭建,建议把上面这份配置清单保存下来,对着自己的方案逐条检查。尤其是IP段信誉和延迟分布这两个点,属于高杠杆操作,改好这两个,其他的问题都能容忍。