灰度只放出一小部分流量,死链率看起来正常,全量发布后却出现大量404和软404。这通常不是灰度本身失效,而是灰度样本恰好绕开了例外路径。此时先别急着回退或忽略,应该把分歧转成可核对的项目:哪些URL在灰度中从未被请求、哪些请求返回了非200、这些状态是否被索引层继承。保留、改写或退出,取决于例外路径是否可控。
灰度按流量比例切分时,命中的往往是主路径。例外入口——旧版参数、分页尾页、已下架商品的直达链接、带跟踪参数的短链——可能只占极小比例,灰度期间一次都没被请求。于是监控面板上死链率接近零,全量后这些入口同时被爬虫和用户触达,404集中出现。
区分两种原因:
请求量为零不能证明URL健康,只能证明它没被测过。这是把分歧变成核对项的第一步:先确认灰度日志覆盖了哪些URL,再谈死链影响。
团队对影响的判断经常不一致,因为各自看的是不同层。建议固定三层,逐层取证:
一个动作及其结果如何影响下一步:先从访问层导出全量发布后24小时内的非200 URL清单,按路径前缀分组。如果某前缀集中出现404,下一步就查该前缀在灰度期是否有请求记录;若记录为零,说明是样本盲区,处理重点是补测而非回退整个发布。
面对全量后暴露的死链,常见三种处理。它们不是都要做,适用前提不同。
适用于:死链集中在低频、无外链、无站内入口的URL,且这些URL本来就不应存在。前提是你能确认没有外部链接指向它们,也没有用户收藏路径依赖。保留的代价是爬虫可能继续请求,但影响范围有限。
适用于:旧URL有外链、有历史流量,或对应内容只是换了路径。做法是301到最相关的新URL,而不是统一跳首页。前提是新旧内容主题一致,否则跳转会被视为不相关。改写后要重新核对状态码,确认返回的是301而非302或200的软跳转。
适用于:内容永久下线、无替代、无外链价值。410比404更明确,但并非所有搜索引擎都同等对待,需要分别核查。退出前要确认站内已无指向该URL的链接,否则用户仍会撞上死链。
假设某站点灰度放量5%,全量后日志显示 /old-api/ 前缀下出现约300个404。灰度期该前缀请求数为0。团队分歧在于:一方主张整体回退,一方主张只处理该前缀。
核对后若发现这300个URL均无外链、无站内入口,且对应功能已废弃,则退出(410)成本最低,无需回退。若发现其中20个有外部链接,则对这20个做301到新接口文档页,其余返回410。这个判断不依赖灰度本身,而依赖外链和入口的核对结果。数字仅用于说明比较方法,不代表真实项目。
灰度不是全量的缩小版,它只是主路径的抽样。死链对seo影响的大小,取决于例外URL是否被外部引用、是否还有用户路径依赖,以及你选择保留、改写还是退出。把这三件事核对清楚,比争论灰度是否可信更有用。