网站死链检测,灰度只测新流量为何漏掉旧页面

📍 WDQWDWQD987AAAAA:216.73.217.111
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /5c94ff1bd71a.html
📄

网站死链检测,灰度只测新流量为何漏掉旧页面

把灰度流量只切给新入口或新用户,旧页面被访问的概率会大幅下降,死链自然测不出来。要暴露全量发布时的例外,灰度必须按“页面类型和来源”分层抽样,而不是只按流量比例随机放量。下面以你手上的一份旧内容清单为例,说明怎么把灰度结果转成可执行的处理方案。

灰度漏掉旧页面死链的三个可区分原因

同样是灰度期间没报死链,原因可能完全不同,处理动作也不一样。

先分清是哪一种,再决定是补抽样、改跳转,还是清理入口。

把一份旧内容清单转成灰度可验证的样本

假设你手上有一份 300 条旧内容清单,其中一部分来自已终止的合作关系,一部分是旧系统生成的页面。按下面顺序处理:

  1. 按来源给每条打标签:站内导航、站内搜索、外部链接、用户收藏、站点地图。标签决定它在灰度里会不会被真实访问到。
  2. 每个标签下抽 5 到 10 条,组成灰度样本。样本量按你能承受的失败影响来定,不必追求统计显著。
  3. 对样本逐条记录三件事:HTTP 状态、最终落地地址、是否仍出现在任一入口列表里。
  4. 把“状态正常但入口已断”和“状态异常”分成两组,前者需要决定保留还是退出,后者需要修。

这个动作的结果直接决定下一步:如果样本里出现状态正常但入口已断的页面,说明你的问题不在死链本身,而在内容退出策略,灰度再放量也测不出来。

保留还是退出:用两个条件做取舍

旧内容不是一律删除。判断依据可以简化为两个条件:是否还有外部引用,是否还有站内替代页面。

这里要注意一个边界:robots.txt 的抓取限制不等于可靠的索引移除。如果旧页面已经进入索引,仅靠 robots 限制抓取,页面仍可能以无描述的形式出现在结果里。需要移除索引时,应使用对应搜索引擎各自提供的移除方式,并分别核查支持情况。

灰度放量前必须单独核查的例外路径

全量发布时的例外,往往集中在灰度不会自然覆盖的路径上。放量前把这几类单独跑一遍:

假设某条旧地址在灰度中请求数为零,可能的原因包括:入口已下线、灰度用户没有该路径的访问权限、统计只记录了成功响应。这三种解释对应三种不同动作,不能只凭零请求就判定该地址可以安全退出。

放量后如何确认例外已被处理

全量发布后,不要只看整体错误率。按灰度时建立的标签分组对比:

把每次灰度样本的标签和结果留档,下一次处理旧内容退出时,可以直接复用同一套分层方法,而不必重新猜测哪些页面会被真实访问到。

图1 图2

nginx