先给结论:不要按“已发现/未发现”直接分组,而要先按一个可独立判断的页面属性分层,再在层内随机取对照组。缺少完整数据或权限时,最小动作是只用一个可观测属性做二分,记录两组的发现率和抓取结果;这只能说明该属性与发现差异同时出现,不能证明它是原因。
第一种条件:你能拿到服务器日志或抓取记录,能看到抓取时间、状态码和请求路径。此时按“是否被请求过”建立对照组,而不是按“是否出现在索引中”。
第二种条件:你只有站点地图提交记录和页面清单,拿不到日志。此时按“是否在站点地图中且提交成功”分层,再比较层内页面的发现比例。这个对照更弱,只能用于缩小排查方向。
选择依据不是数据多少,而是你能否独立观测到抓取动作。抓取是页面被发现的前置环节,索引结果是更靠后的状态;把两者混在同一组里,对照组会失去区分能力。
假设你有 200 个新页面,其中 60 个被发现有抓取记录,140 个没有。不要直接比较这 60 和 140。先选一个属性,例如“是否有站内链接指向该页”,把 200 个页面分成“有内链”和“无内链”两层。
动作结果会直接影响下一步:当某个属性在两层间表现稳定,你才值得投入时间去检查该属性的实现方式;如果两层都低,问题更可能出在更上游的抓取入口,而不是单个页面属性。
站点地图提交数量、页面数量、请求量归零,都不能单独证明分组正确。站点地图不保证收录,提交成功与页面被发现之间没有必然对应关系。请求量下降也可能是抓取预算被其他路径占用、服务器响应变慢或抓取频率调整,这些解释需要分别核查。
robots.txt 的抓取限制不等于可靠的索引移除。它可能阻止抓取,但已收录的页面不会因此自动消失。把“被 robots.txt 限制”和“未被发现”放进同一对照组,会掩盖真实差异。
HTTPS 不保证安全无漏洞或排名,也不能作为发现与否的解释变量。如果两组页面都启用了 HTTPS,这个属性在组间没有区分度,不应进入分层。
当页面之间存在模板级差异,例如同一批页面由两套模板渲染,而两套模板的链接结构不同,此时按单页属性分层会失效。应先按模板分组,再在模板内比较。否则你看到的差异可能来自模板,而不是你选择的那个属性。
当页面数量过少,例如少于 20 个,分层后的组内样本不足以支撑比较。此时应改为逐个检查,而不是强行划分对照组。样本不足时得出的比例差异容易被随机波动放大,不能作为判断依据。
当发现数据本身不完整,例如只覆盖部分时段或部分路径,任何分组都只能作为假设。先补齐可观测范围,再谈对照,否则后续动作会建立在错误前提上。
如果某个属性在两层间持续表现出差异,下一步是检查该属性的实现是否影响抓取路径。例如内链有无出现差异,就检查无内链页面是否只能通过站点地图到达。这个动作的结果会告诉你,是需要补内链,还是需要检查站点地图中的路径是否可抓取。
如果所有属性分层后差异都不明显,下一步应转向抓取入口核对:确认页面是否返回可抓取的状态码、是否被 robots.txt 限制、站点地图中的地址是否与实际地址一致。每一步只改变一个条件,再观察发现比例是否变化。缺少权限时,至少可以完成页面清单与站点地图地址的一致性核对,但不能据此推断收录结果。