先给结论:不要按“已收录/未收录”分组,而应按“抓取路径是否完整”分组。把同一批页面拆成两组——一组满足你怀疑缺失的那个条件,另一组不满足,其余变量尽量一致——然后只比较这两组在发现率上的差异。如果差异随该条件稳定出现,它才是候选原因;如果两组表现接近,说明问题在更上游的入口或模板层,而不是这个单点条件。这个划分方式的关键是让“对照组”承担排除作用,而不是再罗列一遍症状。
批量页面部分被发现,最常见的误判是直接拿“有内链的页面”和“没内链的页面”对比,但这两组往往还同时存在栏目层级、发布时间、模板类型等差异,比出来的结果无法归因。更稳的做法是先锁定一个你真正怀疑的条件,再让两组只在这个条件上不同。
可用的划分依据通常有三类:
选择哪一类,取决于你集中处理的遗漏条件是什么。已经试过常规做法仍未解决时,优先选“入口路径”,因为它最容易被单独改动,也最方便观察后续变化。
条件一:这批页面的 URL 能正常打开,但链接只出现在需要交互或滚动后才加载的模块里。此时对照组应划为“静态输出链接组”与“动态输出链接组”,而不是按页面新旧划分。动作是:从动态输出组中挑一批页面,把入口链接改为服务端直接输出的 <a href>,保持 URL、标题、正文不变,静态输出组不动。观察下一轮抓取后两组的发现率是否拉开。如果拉开,说明入口的可见性是主要遗漏条件,下一步应扩大到同类模板;如果没有拉开,说明抓取预算或站点结构才是瓶颈,需要转向站点地图与栏目层级。
条件二:这批页面本身有静态链接,但集中在很深的分页或筛选参数后面。此时对照组应划为“浅层可直达组”与“深层需翻页组”,控制变量是链接深度,而不是链接是否存在。动作是:给深层组增加一条从分类首页直达的入口,浅层组保持原样。若深层组发现率上升,说明深度是限制因素;若两组接近,则要检查这些页面是否被 robots.txt 拦截、是否返回非 200 状态,或是否被规范标签指向了别的 URL。
两组数据出现差距,不等于你怀疑的条件就是原因。要排除几种同样合理的解释:
判断顺序建议是:先确认两组页面的 HTTP 状态、规范标签、robots 规则一致,再比较发现率。只有这些前置条件对齐后,差异才值得归因到你怀疑的那个条件。
假设某店铺有 400 个商品页,其中 120 个未被发现。你怀疑是“链接藏在需要点击展开的规格模块里”。于是划出两组各 60 个页面:A 组把规格链接改为服务端直接输出,B 组保持原样,其余不变。一轮抓取后,A 组被发现 45 个,B 组被发现 12 个。这个差距支持“入口可见性”是候选原因,下一步应把改动推广到同模板的其余页面,并继续观察。若 A 组 30 个、B 组 28 个,差距不足以支持该结论,应转向检查抓取预算、分页深度或站点地图覆盖范围。数字仅用于说明比较方法,不代表任何真实项目结果。
这套划分只在页面数量足够、且能控制其他变量时成立。如果批量页面分属多个模板、多个栏目,或改动本身会影响全站导航,就不适合做小范围对照,应改为按模板分组、逐组处理。另外,不同搜索引擎对脚本渲染、站点地图和抓取限制的支持情况须分别核查,不能把在一个引擎上观察到的差异直接套用到另一个。发现率归零或某项统计下降,也不能单独证明你的处理正确,它可能来自抓取周期、日志采样或入口调整的滞后。对照组的意义是缩小候选原因,而不是给出最终结论。