链接巡检是站点运营里最容易被推迟的一件事。页面明明还能打开,看起来一切正常,直到有用户点进某个老栏目发现页面不存在,或者服务器日志里反复出现同一个已经不存在的地址。失效链接不会让站点立刻出问题,但会一点点消耗访问体验和爬行效率。
失效链接不只是一种形态
很多人把死链等同于“页面返回 404”,实际巡检时会遇到更多情况,处理方式也不一样:
- 整页失效:地址返回 404、410,或者跳转到一个与原文完全无关的页面。
- 跳转链过长:A 跳 B、B 跳 C 才到最终页,每多一跳就多一次请求和一次不确定性。
- 循环跳转:A 跳 B、B 又跳回 A,浏览器直接报错,爬虫也会放弃这条路径。
- 资源 404:HTML 本身正常,但图片、CSS、JS、字体文件缺失,页面渲染错乱。
- 软性失效:状态码是 200,内容却是“内容已删除”或大段空白。
区分这些形态的意义在于:只有整页 404 才适合直接做跳转或下线,跳转链和资源缺失往往是配置疏漏,改掉源头比不断补链更有效。
为什么值得定期清理
对多数中小站点来说,少量死链不会带来明显波动,不必因此紧张。真正需要关注的是长期累积:用户顺着内链点进去却扑空,会直接离开;同一批失效地址被反复请求,会让有限的抓取时间花在没有内容的地方;新页面本来有机会被更早发现,却因为入口堵塞而延后。把巡检当成一次性的紧急修复,通常过几个月又会回到原点,做成固定节奏更省事。
巡检的三类对象
站内链接
包括导航、面包屑、正文内链、页脚、标签页和相关推荐。重点关注两类:一类是栏目调整、文章合并之后留下的历史链接;另一类是从列表页批量生成的链接,例如已下架商品或已删除的专题页。
出站链接
合作站点下线、对方改版换域名、参考资料整体迁移,都会让外链变成死链。这类链接不必全部删除,但至少要知道哪些已经不可用,避免正文里挂着打不开的引用。
站点地图与提交入口
站点地图里如果还留着已经失效的地址,等于主动把无效入口交给搜索引擎。每次批量下线内容之后,顺手核对一遍站点地图,比事后排查更快。
发现失效地址后的处理顺序
- 先确认实际状态码:用命令行工具或抓取工具看返回的是 200、301 还是 404,不要凭浏览器显示判断,很多软失效在浏览器里看不出异常。
- 有对应内容就做 301:旧地址指向最接近的现存页面,一跳到位,避免串成跳转链。跳转目标要和原内容相关,不要统一丢到首页。
- 确实没有对应内容就让它正常失效:返回 404 或 410 比返回 200 的空壳页更清晰,也更省事。长期删除的内容不必强行保留页面。
- 更新引用它的内链:先改链接,再考虑跳转。内链指向旧地址的情况往往比想象中多,改完能减少大量无谓跳转。
- 同步站点地图和站内导航:把已下线的地址从地图、导航、推荐位里去掉,避免再次产生新入口。
容易被漏掉的几处
- 文章配图、封面图、下载附件,正文改版后图片路径常常失效而无人察觉。
- 分页地址,尤其是第二页之后,栏目调整时最容易整段失效。
- 站内搜索结果页和筛选组合地址,被外部引用后就成了长期死链。
- 旧版页面模板里的公共资源,例如图标、字体、统计脚本。
- 移动端与桌面端两套地址中,只更新了一边。
把巡检变成常规动作
比较省心的做法是固定频率做一次全站扫描,比如每月一次,配合内容批量调整之后再补一次抽查。日常则依赖服务器日志和访问统计:如果某个地址持续出现 404 且请求量不低,就说明还有外部入口在指向它,值得优先处理。把巡检结果记录在同一个表格里,标注处理方式和时间,下次再遇到相同地址时不必重新判断。
死链本身不是问题,长期没人管才是。清理的重点不是把每个失效地址都变成 301,而是让站内入口、站点地图和跳转关系保持一致。