划分对照组的核心不是把页面随机分成两堆,而是按一个可解释的页面属性切分,让两组之间只有这一个变量不同。例如你有800个商品页,百度只抓取了其中约300个,先不要按“抓了/没抓”分组,那是结果不是原因。更可用的做法是:按“页面是否在站点地图中且距首页点击深度不超过三层”这一属性,把800个页面切成两组,然后比较两组的被抓取比例。如果两组差异明显,这个属性就值得作为下一步的优先处理对象;如果差异不明显,说明该属性解释力不足,应换下一个候选属性重新切分。
在动手分组前,先明确观察窗口:例如连续观察四周内百度对这批页面的抓取记录。窗口不固定,后面的对比就没有共同基准。窗口确定后,从你手上已有的资料里提取候选属性,常见的有:
这些属性必须能从你的站点数据中直接读出,而不是靠猜测。选一个属性做第一次切分,不要一次叠加多个条件,否则你无法判断是哪一项在起作用。
假设你有800个商品页,观察窗口内百度抓取了300个。你选择的第一个属性是“是否在站点地图中”。切分后得到:
两组抓取比例差距明显,说明“是否在站点地图中”与抓取结果相关。但相关不等于因果:也可能是进入站点地图的页面本身更新更频繁,或内链更多。因此下一步动作是把组B中一部分页面加入站点地图,保持其他条件不变,继续观察一个同样长度的窗口。如果组B的抓取比例上升,且组A保持稳定,这个属性才值得作为批量处理规则固化下来。如果组B没有变化,说明站点地图不是当前瓶颈,应回到候选属性列表换下一个。
再假设你换用“点击深度”切分:深度≤3层的350个页面抓取200个,深度≥5层的450个页面抓取100个。差异同样存在,但这时要检查两个属性是否重叠——很可能深处页面恰好也不在站点地图中。重叠时,应优先处理能同时覆盖两个属性的那一批页面,而不是分别做两次实验。
如果按某个属性切分后,两组的抓取比例接近,不要急着否定这个属性,先确认三件事:观察窗口是否足够长、两组页面数量是否都足够大、该属性在两组间是否真的互斥。数量太少时,比例波动可能只是噪声。另一个需要换分组方式的信号是:你无法在保持其他条件不变的前提下只改动这一个属性。例如“是否被robots.txt限制”这一属性,一旦解除限制就会同时改变抓取路径和服务器日志记录,此时更适合用时间前后对照,而不是空间上的两组对照。
还要注意,robots.txt的抓取限制不等于可靠的索引移除,站点地图也不保证收录。因此对照组能告诉你的,是某个属性与抓取结果是否相关,而不是“做了这个动作就一定会被收录”。把结论限定在“该属性值得继续投入验证”这一层,再决定下一步动作。
完成第一轮切分和判读后,按以下顺序推进:
这个顺序的意义在于:每一步的结果都直接决定下一步是继续验证同一属性,还是换属性。如果你手上只有一份页面清单而没有抓取记录,先补上按URL维度的抓取数据,否则任何分组都只是主观分类,无法支撑后续决策。