站点运行久了,链接失效几乎是必然的:栏目调整、文章下线、域名迁移、图片改名,都会留下访问不通的地址。这些地址对用户来说是一次失望的点击,对搜索引擎蜘蛛来说是一次无效抓取。死链治理不是一次性的清理动作,而是一套可以定期执行的流程。
死链通常从哪里来
- 内容下线或合并,旧地址没有做任何处理。
- 栏目改版、URL 规则调整,旧链接仍然有外链或站内入口指向。
- 图片、CSS、JS 等资源改名或迁移,页面看起来正常但资源请求失败。
- 手工输入的地址、旧版分享链接、路径写错的推广链接。
其中资源类死链最容易被忽略,因为它不会让页面报错,只会在控制台里留下几条失败请求。
先分清 404、410 和软 404
内容确实不存在,就大方地返回 404;如果已经确定永久删除且不希望再被访问,可以返回 410。最需要避免的是软 404:页面返回 200,但正文写着“内容不存在”。这种前后矛盾的信号会让蜘蛛反复抓取这个空页面。
另一种常见做法是把所有 404 都 302 跳到首页。用户点击后看到的是首页,但地址没变、内容也不是他想要的,体验并不好;对蜘蛛来说,这相当于把大量不同地址都指向同一个页面。
自定义 404 页面该放什么
404 页面不该只是一句“页面不存在”。它是一个挽留入口,可以包含:
- 返回首页和主要栏目的链接。
- 站内搜索框。
- 几个热门或最新的内容入口。
- 简短说明,告诉用户地址可能已失效,并给出下一步动作。
另外要确保 404 页面本身不依赖外部资源,也不要在上面做自动跳转或堆大量脚本,避免加载慢或行为异常。
一套可执行的死链处理流程
- 定期扫描。用爬虫工具或与站点地图比对,抓取全站链接,输出状态码不为 200 的地址清单。频率可以按月,改版期间加密。
- 结合访问日志。从日志里找出被频繁访问的 404 路径,这些往往是外部链接或老用户书签的入口,优先级更高。
- 判断处理方式。有等价内容的做 301 指向新地址;内容确实下线且无替代的,保留 404 或返回 410;只是用户拼错的地址,可以不处理。
- 修正站内入口。把内链、导航、列表页里指向死链的地址改掉,否则扫描结果还会反复出现。
- 清理外部引用。能联系到的外链来源,可以请求对方更新;无法联系的就接受现实,把精力放回站内。
- 记录并复扫。处理完再跑一次扫描,确认清单收敛,避免修完又冒出新的一批。
重定向也要克制
修复死链时,容易顺手把一堆无关地址都指向首页。这样会让蜘蛛在多个地址上拿到相同内容,也让用户感到被绕了一圈。重定向尽量指向内容相关的页面,找不到相关页时,让 404 页面承担引导职责更合适。
判断标准很简单:用户点击这个链接,最想看到的是什么?指向它,或者明确告诉他这里已经没有了。
把死链治理变成日常
与其等死链积累成一大堆再集中处理,不如把它拆进日常:内容下线时顺手登记旧地址,改版时把重定向写成清单,每月固定跑一次全站扫描。这样每次的工作量都不大,站内也不会长期挂着一批访问不通的入口。