先给结论:当同一批访客被随机分到A、B两个页面版本,而你在百度指数分析里看到某个词的曲线变化,不能直接把它当作版本效果的证据。样本污染最典型的来源,是分流本身不干净——比如老访客反复进入、爬虫混入、或某一版本被外部流量定向灌入。识别方法不是看指数涨跌,而是回到分流日志,检查两组访客在进入实验前的特征是否可比。
假设你负责一个内容站,把同一篇关于“装修预算”的文章做成两个标题版本,A版偏保守,B版偏口语,各50%流量。上线三天后,你在百度指数里看到“装修预算”这个词的搜索指数没有明显变化,但站内统计显示B版停留时长更高。你准备下结论说B版更好,此时需要先排除一种可能:两组访客本来就不是同一类人。
具体来说,如果分流脚本在用户首次访问时写入cookie,但部分用户清除了cookie后被重新分配,那么同一个人可能既看过A版又看过B版,他的行为会被重复计入两组。更隐蔽的情况是:某个外部渠道的链接直接指向B版,带来一批与站内自然访客行为差异很大的流量。这时B版停留时长的提升,可能来自渠道差异,而不是标题本身。
把实验期间的分流日志导出,按“首次进入来源”分组:自然搜索、站内推荐、外部链接、直接访问。如果A组和B组的来源比例差异超过你预设的容忍范围,样本污染就已经发生。假设你设定容忍范围是正负5个百分点,而B组的外部链接占比比A组高出12个百分点,那么后续任何指标对比都不可靠。
这个动作的结果会直接影响下一步:如果来源构成不一致,先不要分析指标,而是回到分流配置,检查是否有渠道链接绕过了随机分配逻辑。
用访客标识(如cookie或设备指纹)去重后,统计“同时出现在A组和B组”的访客数量。如果这个数量占实验总访客的比例超过1%,说明分流没有做到一人一组。常见原因是:分流逻辑写在页面渲染之后,或者用户清除了本地存储。
处理方式是把分流判断提前到服务端,并在用户首次进入时锁定分组。做完这一步后,重新观察至少一个完整的流量周期,再看两组指标是否仍然分叉。如果分叉消失,说明之前的差异来自重复分配,而非版本本身。
百度指数反映的是搜索侧的整体热度,不是你的站内实验数据。它的时间粒度通常是天,而分流实验可能按小时切换。如果你在实验中途调整过分流比例,指数曲线不会同步体现这个变化。因此,不能用指数曲线的拐点来证明某个版本生效。
更稳妥的做法是:把百度指数作为背景参考,只用来判断“这个词的整体搜索需求是否稳定”。如果指数在实验期间出现剧烈波动,说明外部环境变了,此时站内两组对比的结论需要推迟到需求平稳后再看。
可以继续分析的条件是:两组来源构成差异在容忍范围内、重复分配比例低于1%、且百度指数曲线在实验期间没有剧烈波动。三个条件同时满足时,站内指标的分叉才更可能反映版本差异。
应当停止分析的条件是:任一检查点发现明显异常。此时正确的动作不是“再跑几天看看”,而是先修复分流逻辑,再重新开始一轮干净的实验。修复后,用同样的检查点复核一遍,确认异常消失,再进入指标对比。
即使分流本身干净,如果实验期间发生了外部事件——比如某个大号转发了B版链接、或者搜索引擎对A版页面做了重新抓取——两组访客的构成仍可能被改变。这类污染不来自分流脚本,而来自环境。
识别方法是:在分流日志里标记每个访客的“进入时间”和“进入前是否已有站内行为”。如果B组在某个时间点之后突然涌入大量无站内历史的新访客,而A组没有同步变化,就说明有外部事件介入。此时应当把该时间段的数据单独切出来,或者直接废弃这一轮实验。
把以上检查点串起来,决策顺序是:先确认分流干净,再确认环境稳定,最后才看指标。任何一步不通过,都回到上一步修复,而不是用百度指数的涨跌来反推结论。