站点运营里,404 页面常被当成技术细节丢给开发,但它同时面对两类访客:一边是点进来的真实用户,一边是顺着链接爬过来的搜索蜘蛛。前者看到空白页会直接关掉,后者反复撞上失效地址,会慢慢减少对整站的抓取兴趣。所以死链自查不是“有就修”这么简单,而是要建立一套能长期运转的处理习惯。
先把几种“找不到”分清
同样是打不开,性质并不一样,处理方式也不同。
- 404(未找到):地址确实不存在,或内容已经删除且没有替代页面。
- 410(已删除):明确告诉对方“这个内容永久没了”,比 404 更干脆,但要确认不会恢复。
- 软 404:服务器返回 200,页面内容却是“暂无内容”“抱歉没找到”。这种最麻烦,蜘蛛会把它当正常页面收进去。
- 5xx:服务器故障导致的打不开,属于可用性问题,不该用 404 去掩盖。
死链一般从哪里冒出来
- 改版时栏目合并、模板换名,老地址没有做跳转。
- 编辑手动粘贴链接时打错字,或复制了带多余参数的地址。
- 外部引用、合作方页面上留下的旧链接,指向已经下线的专题。
- 正文里引用的站内文章被删除、草稿被撤回。
- 标签、分页、筛选组合出的地址,随内容增减不断失效。
自查怎么做:从日志到页面
- 先看服务器日志,筛出状态码为 404、410 的请求,按访问次数排序。次数高的地址优先处理,它们才是真正在被频繁撞的。
- 区分来源:看请求的 Referer 和 User-Agent,判断是站内链接断的,还是外部站点引来的。
- 抽查页面返回码,确认没有软 404。可以看响应头,不要只看页面长相。
- 在站内做一次链接巡检,把正文、导航、页脚、侧栏里的内链都过一遍。
- 整理成表:原地址、状态码、被访问次数、是否有可替代页面、处理方式、处理时间。
处理方式对应着不同情况
- 内容还在,只是换了地址 —— 做 301 跳到新地址,并更新站内所有旧链接。
- 内容有同类替代 —— 301 到最相关的那个页面,不要一律跳首页。
- 内容彻底删除且无替代 —— 让它返回 404 或 410,同时把站内指向它的链接删掉。
- 地址本来就不该存在,比如被外部乱拼的参数 —— 保持 404,不必特殊处理。
要注意的是,不要为了“消灭 404”而把所有失效地址都跳首页。这种做法会让蜘蛛得到一堆指向同一个地址的入口,也让用户摸不着头脑。
404 页面本身也要可用
一个合格的 404 页面至少要有:明确的说明、返回首页和主要栏目的入口、站内搜索框,以及和站点整体风格一致的排版。它不是装饰品,而是把走错路的访客重新引回正轨的岔路口。至于状态码——必须返回 404,页面再好看,状态码写错就成了软 404。
把它变成固定动作
建议把死链检查放进月度巡检:每月取一次日志样本,处理掉访问量靠前的失效地址;每次内容改版或批量删除后,单独跑一遍站内链接检查。频率不用太高,关键是别停。
死链本身不可怕,怕的是它被长期忽略。把状态码看准、把跳转做对、把记录留下,站点结构就会少一些空洞,蜘蛛爬行时也少一些无效往返。