当死链检查方法用于批量页面、而日志或抓取结果只覆盖其中一部分时,不要急着把“没出现”的页面当成正常或当成死链。更稳的做法是:先按可观测特征把全量页面分成两组——被发现的对照组和未被发现的实验组,再让两组在URL层级、模板、入链来源、更新频率上尽量同质,然后只改变一个变量做小规模复检。这样你得到的不是“哪些页面有问题”的清单,而是一条能验证的因果线索。
不同角色的分歧往往出在这里。运营说“页面被收录了”,技术说“日志里没有抓取”,SEO说“站点地图提交了”。这三件事并不等价。
把这三层混在一起,对照组就会失真。划分之前,先统一口径:本轮的“被发现”到底指哪一层。若口径不统一,后面所有分组都只是把噪音重新排列。
随机抽样在页面高度同质时才有效。批量页面通常不是同质的,所以先分层再配对,比直接随机更能暴露真实差异。建议按以下维度建立分层表:
分层后,在每一层内部做1:1配对:一个被发现的页面配一个特征最接近但未被发现的页面。这样对照组和实验组的差异被压缩到最小,剩下的差异才值得追查。
下面是一个假设场景,用于说明比较方法,不代表任何真实项目结果。某站点有2000个详情页,日志显示只有约600个被抓取。按模板和层级分层后,取“二级目录+详情模板+仅有站点地图入链”这一层,共300个页面,其中90个被发现、210个未发现。
从90个被发现页面中取30个作对照组,从210个未发现页面中按URL长度、发布时间、字段数量配对取30个作实验组。只改变一个变量:给实验组补充一条来自同层列表页的站内链接。两周后复检日志。
结果如何解读,取决于你观察的是哪一层:
这里的动作是“补一条站内链接”,它的结果决定下一步是扩大入链改造,还是转向检查响应速度和抓取配额。
当多个角色对“为什么只有一部分被发现”各执一词时,最有用的不是争论,而是一张双方都能填的表。每个页面一行,字段包括:URL、分层标签、发现层(抓取/索引/入口)、配对编号、本轮改动、复检日期、复检结果。
这张表的作用是让“我觉得是站点地图的问题”变成“这一层里,补了内链的30个页面复检后有多少进入抓取”。同时要记住几个容易误判的前提:robots.txt 的抓取限制不等于可靠的索引移除,站点地图不保证收录,HTTPS 也不保证安全无漏洞或排名提升。不同搜索引擎的支持情况需要分别核查,不能把一家的表现直接搬到另一家。
如果某项统计归零,也不要单独当作处理正确的证据。抓取量下降还可能是服务器波动、robots 规则变更、站点整体权重变化或统计口径调整。只有对照组和实验组在同一时间窗内呈现可区分的方向,才更接近因果。
对照组的价值在于帮你决定资源投向。可以按以下条件判断:
回到最初的问题:批量页面只有一部分被发现时,划分对照组的关键不是把页面随机分成两半,而是先统一“被发现”的口径,再按URL层级、模板、入链和更新状态分层配对,只改一个变量并复检。这样得到的差异才能指导下一步是扩大改造、更换变量,还是先修正记录口径。