站点跑久了,总会有页面悄悄消失:栏目改版删掉的旧文章、商品下架留下的地址、改过命名规则之后的老 URL,还有拼错大小写或漏了斜杠的链接。这些地址本身没什么问题,但如果没有统一处理,它们会一次次被蜘蛛请求,一次次返回错误,白白占掉抓取额度,也影响访客体验。
先分清几种“死链”
很多人把“打不开”统称为死链,实际上处理方式完全不同:
- 真 404:页面确实不存在,也没有合适的替代内容。
- 软 404:地址返回 200,但页面写着“内容不存在”,或只剩一个空壳模板。这种最容易被误判为正常页面。
- 410:明确告知永久移除,语义比 404 更干脆。
- 可修复的死链:因为大小写、尾斜杠、参数顺序不一致而打不开,内容其实还在。
- 假死链:任何错误地址都 301 到首页,访客以为找对了,其实什么也没找到。
死链从哪里找
- 服务器访问日志中状态码为 404、410、500 的请求,按出现次数排序看。
- 搜索资源平台提供的死链与抓取异常报告。
- 把 sitemap 里列出的地址与实际可访问地址做一次比对。
- 用爬虫工具站内跑一遍,记录所有非 200 响应。
- 抽查站外来源链接,尤其是旧合作页、旧友链指向的地址。
能救的先救,救不了的干脆放手
有明确替代页面的
设置 301 指向内容最接近的页面,而不是首页。跳转要一步到位,避免 A→B→C 的连环跳。同一批旧地址如果规则统一,可以在服务器层面用一条规则批量处理。
已经永久下线的
如果内容不会再回来,返回 410 或保留 404 都可以,重点是不要返回 200,也不要用 JS 跳转去掩盖。要让状态码如实反映结果。
因规则不一致导致的打不开
常见的是大小写混用、带不带 www、结尾斜杠有无、跟踪参数不同。先确定唯一的标准写法,再把其余写法统一跳转过去,同时检查站内链接是否还在用旧写法。
404 页面本身也要做得像样
死链不可避免,但错误页可以做得有用:
- 保留站点头部与导航,让访客能继续走。
- 给出搜索框或几个明确的热门入口。
- 文案简短说明情况,不要长篇道歉。
- 确保返回的是 404 状态码,而不是“看起来像 404 的 200 页面”。
- 不要在 404 页上堆大量推荐位,容易变成新的薄页面。
把错误地址一律跳到首页,看着“没有死链”,实际上是把问题藏起来:蜘蛛和访客都得不到有效答案,页面的相关性也无从判断。
定期自查清单
- 导出近一周日志中的 404 请求,按路径聚合,看是否有明显规律。
- 区分可修复与真死链,分别处理。
- 修正站内所有指向旧地址的链接,从源头减少重复请求。
- 检查 404 页面状态码是否正确、能否正常返回。
- 把确认下线的地址整理成清单,通过平台提交,减少反复抓取。
- 改版、下架、迁移之后,第一时间做一轮死链扫描,而不是等上几个月。
死链治理不需要一次性做完,但需要有人定期看一眼。把“哪里打不开、为什么打不开、接下来怎么办”这三件事说清楚,站点结构和抓取效率都会跟着稳下来。