上个月把 30 篇文章的标题全改了,流量涨了 12%,你却说不清这 12% 是标题带来的还是赶上了一次算法更新的顺风。SEO A/B 测试要解决的就是这个归因难题,让每一次改动都能留下一句「有效」或「无效」的结论。
快速结论:搜索引擎抓的是页面,不是用户,所以 SEO 实验只能按页面配对分组,不能按访客分流。实验组和对照组各准备 20 到 30 个流量结构相近的页面,只改一个变量,跑满 4 到 6 周,用两组的点击变化率相减得出净效应。样本不够就别下结论,宁可不测,也别拿三篇文章的数据去说服老板。
搞清楚它和产品实验的三处不同
产品经理做实验是把用户随机切两半,同一个页面给不同人看不同版本。搜索场景下这条路走不通,给爬虫和用户看不同内容属于伪装,风险极高,收益极低。
| 维度 | 产品 A/B 测试 | SEO A/B 测试 | 带来的约束 |
|---|---|---|---|
| 分流单位 | 用户或会话 | 页面或页面组 | 需要足够数量的同类页面 |
| 结果反馈 | 当天可见 | 滞后 7 到 21 天 | 周期至少 4 周起 |
| 外部噪音 | 较少 | 算法更新、季节、竞品 | 必须靠对照组吸收 |
| 可测变量 | 几乎不受限 | 标题、描述、结构化数据、内链 | 正文大改会同时动排名 |
第三行是最容易被忽略的。没有对照组的前后对比,本质上是拿今年三月和二月比,中间夹着一次核心更新、一个长假和竞品的一波投放,得出的数字没法用。
配对分组:让两组页面从起跑线上就一样
随机丢进两个桶是最差的做法,页面之间的流量量级差三个数量级,随机分完两组本来就不可比。正确做法是先配对,再拆分。
- 按最近 90 天展示量排序,取同一区间内的页面进入候选池,量级差超过 3 倍的不配对
- 再看意图类型,信息类和商业类分开配,别把「是什么」和「多少钱」放一组
- 相邻的两个页面组成一对,抛硬币决定谁进实验组,重复到凑满 20 对以上
- 记录每一对的页面 URL、基线展示量、基线点击率、基线平均位置,存成一张固定表
- 实验期间禁止对这批页面做任何其他改动,包括加内链、换封面、调发布日期
候选池不够 40 个页面的站点,先别做实验,把精力放在通用规则上更划算。这类站点更适合直接照抄行业验证过的标题模式,配合 有排名却没点击 里的排查清单逐页处理。
周期和样本量,两个数说了算
搜索引擎重新抓取并更新标题展示,快的三天,慢的三周。改完立刻看数据只会看到一半页面还是旧标题,结论必然被稀释。
- 前 7 天算作生效缓冲期,数据不计入统计
- 正式观测期 28 天起步,遇上大促或长假往后顺延一周
- 每组累计展示量低于 5 万时,点击率的波动会盖过真实效应,需要延长周期或补页面
- 实验期内如果发生核心算法更新,标记时间点但不中止,对照组会把这部分影响吸收掉
显著性判断:三个数就够,不用装高深
不需要搬出复杂的统计软件。你只要三个数字:实验组点击率变化率、对照组点击率变化率、两者之差。差值超过对照组自身波动幅度的两倍,才算有信号。
| 指标 | 实验组 | 对照组 | 净效应 |
|---|---|---|---|
| 期前点击率 | 3.2% | 3.4% | 基线接近,配对成立 |
| 期后点击率 | 4.6% | 3.5% | —— |
| 相对变化 | 增长 43.8% | 增长 2.9% | 净增 40.9 个百分点 |
| 平均位置变化 | 负 0.2 | 负 0.3 | 排名未产生干扰 |
最后一行必须看。如果实验组平均位置明显上升而对照组没动,那点击涨幅里混进了排名红利,结论要打折。位置变化超过 0.8 的页面对直接从统计中剔除,剩下的样本才干净。
五类会让你得出错误结论的噪音
- 品牌词混入:一个品牌词就能把整组的点击率抬高十几个点,统计前先过滤掉品牌相关查询
- 季节性单品:节日相关页面在特定月份自带涨幅,配对时把它们放进同一组
- 搜索结果页改版:结果页出现新的功能模块会整体压低自然点击,两组同时受影响才安全
- 实验期偷偷改了别的:编辑顺手补了一段正文,实验就废了,改动权限要收紧
- 样本量不足硬下结论:五个页面涨了三个就宣布方法有效,这是抛硬币
实验跑完不要只留一个百分比。把有效的标题模式、失效的模式、以及适用的页面类型写进内部文档,下一轮直接复用。这类沉淀最终会体现在 内容 ROI 的数据口径 里,让每篇文章的投入产出可以横向比较。
长期跑实验的站点还要留意排名口径。用单一平均排名去看实验组会掩盖分布变化,排名追踪不能只看平均值 那篇讲了该怎么按分位数拆开观察。
图:{‘raw’: ‘SEO A/B 测试:用数据判断改标题值不值’, ‘rendered’: ‘SEO A/B 测试:用数据判断改标题值不值’} 核心要点(运营GO 整理)


