站点上线一段时间后,死链几乎是必然会出现的:栏目调整、文章合并、产品下架、URL 规则改版,都会留下指向不存在地址的链接。对用户来说,那是一屏“无法访问”;对搜索蜘蛛来说,那是一次次扑空。它不会让网站立刻出问题,但会持续消耗抓取预算,也让站内链接的可信度慢慢打折。
死链一般从哪几个地方冒出来
- 正文内链:老文章里指向已删除页面的锚文本,改版时没同步更新。
- 导航与页脚:栏目下线了,模板里的入口还挂着。
- 外链与分享链接:别人引用或转发过的地址在你这边已经失效,这部分你控制不了,但应该能感知。
- 静态资源:图片、CSS、JS 路径变动,页面能打开却加载不全。
- Sitemap 与 RSS:文件里的地址还是旧规则,蜘蛛照着抓,自然全是空。
前两类属于自己能管住的,优先处理;后几类靠定期巡检兜底。
排查步骤:先摸清范围,再动手
- 用日志和统计找出错页。服务器日志里状态码 404、410 的记录,通常按 URL 聚合一排就是一份清单。
- 跑一遍站内链接检查。从首页出发爬取站内链接,能覆盖大部分正文内链和模板链接;有条件的话连同图片、JS 一起查。
- 核对 Sitemap。把 Sitemap 中每个地址抽验一遍,看是否都返回 200,避免把死链主动推给蜘蛛。
- 按来源分类。是模板问题、内容问题,还是一次性改版遗留?模板问题必须改模板,否则改完还长。
- 处理完再复跑一次。修完不复验,等于不知道修没修好。
频率上不用太勤,栏目大改、URL 规则调整之后必查一次,日常保持每月一轮就够了。
404 页面别只写“页面不存在”
死链不可避免,但用户撞上死链的体验是可以设计的。一个合格的 404 页面至少做到几点:
- 明确告诉用户这个地址没有内容,不要用花哨的跳转把人绕晕。
- 给出几个出口:返回首页、站内搜索框、相关栏目或热门文章入口。
- 保持和全站一致的头尾导航,别做成一个孤立页面。
- 技术上确实返回 404 状态码,而不是“显示 404 样子、实际 200”的空壳页。
另外,被删除的页面不要让它继续出现在栏目列表、标签页或推荐位里。前端模板里如果用的是固定链接,删除内容后要顺手清理。
哪些该 301,哪些该老实返回 404
判断标准可以简单一些:
- 做 301:旧地址有明确的新对应页面,比如文章换 URL 规则、栏目改名、产品升级到新版详情页。跳转链尽量一步到位,别 A 跳 B、B 再跳 C。
- 返回 404 或 410:内容真的下架、合并后没有等价页面、或者只是拼错的参数地址。硬凑一个不相关的跳转,用户和蜘蛛都会更困惑。
- 不要跳到首页:把大量死链统一甩到首页,是一种偷懒做法,容易让蜘蛛对首页的入口价值判断失真。
死链清理不是一次性工程。把它放进例行的站点巡检清单里,和更新节奏、日志查看放在一起做,成本会低很多。
最后提醒两件小事
一是外链造成的死链不必强行追着改,能联系对方更新的就联系,联系不上也不必焦虑,重点是保证自己站内不再产生新的断链。二是死链清理之后别急着下结论,观察一段时间日志里的 404 数量是否下降、抓取是否更集中在你希望被发现的页面上,用数据说话比凭感觉靠谱。把死链当成站点卫生的一部分,定期打扫,通常比大扫除更省力。