站点跑久之後,死鏈几乎是必然會出現的。栏目調整、文章下架、URL 規則改過一轮,都會留下一批指向空地址的連結。對訪客来说是多按一次返回键,對蜘蛛来说則是反复撞在同一個坑上。清理死鏈不是什么高深工作,但它属于那種不做就慢慢堆积、做了就能感觉到差別的基础维護。
死鏈通常從哪来
先弄清楚来源,才知道该往哪儿查。
- 栏目與内容下线:整块内容被删掉,但導航或列表頁里還留着入口。
- URL 規則變更:早期用的是带參數或带日期的地址,後来改成短路径,舊地址却没做任何處理。
- 站内連結寫错:手工添加的連結、複製粘贴时多了一個字符或少了结尾斜杠。
- 外部連結指向失效:別的站点還鏈着你早就不存在的頁面,你改不了對方,但可以决定自己這邊返回什么。
- 程序生成的連結:标簽云、相關推荐、聚合頁里拼接出来的地址,一旦資料缺失就會變成空連結。
怎么把死鏈找出来
推荐两條路一起走:一條看服務器,一條看站内。
從服務器日誌里看
日誌中狀態碼為 404 的請求行,按 URL 归並後排序,能直接暴露被訪問最多、最该優先處理的地址。特別要留意那些有持續訪問量的死鏈,它們背後往往挂着外鏈,或者還留在導航里没被撤下。
從站内連結里掃
把站点地图、導航、面包屑、文章正文里的連結抓一遍,逐個請求看返回碼。這一步能找出蜘蛛還没踩到、但迟早會踩的坏連結。工具不限,重要的是周期性做,而不是出事才做一次。
404、410 和 301 怎么選
三種處理方式對應三種意图:
- 301:内容換了地址但依然存在,用永久跳轉把訪客带過去。前提是新闻頁面主题确實一致。
- 410:内容确定不再提供,明确告诉對方這個地址已彻底移除。相比 404,它表達得更确定。
- 404:地址不存在,暂时也没想清楚怎么處理。作為兜底可以,但不要让它長期承担本该 301 或 410 的角色。
把大批死鏈统一 301 到首頁,是常见的偷懒做法。訪客点進去發現内容完全不對,体驗很差;蜘蛛也會把一堆不相關的地址都记到首頁头上,反而模糊了首頁该有的主题。
如果拿不准,宁可先返回 404 维持現状,也不要乱跳。
自定义 404 頁面要做什么
一個能用的 404 頁面,至少包含這几件事:
- 明确說明頁面不存在,不要让訪客以為是加载失敗。
- 给出回到首頁、主要栏目或站内搜尋的入口。
- 列出几篇热门或近期内容,把流量接住。
- 保留站点的導航和頁脚,让人能繼續往下逛。
有一点容易被忽略:404 頁面本身要正确返回 404 狀態碼,而不是返回 200。返回 200 的“友好错誤頁”就是软 404,會让蜘蛛把大量無内容頁面当成正常頁面處理。
软 404 和空頁面
除了明确的 404,還有几種情况需要一並检查:
- 頁面能打開,但正文為空或只有一句“暂無内容”。
- 列表頁在没有结果时仍返回 200,内容区却是空的。
- 分頁超出實际范围,比如第 500 頁仍能打開但没有任何條目。
- 站内搜尋结果頁在没有匹配时返回正常頁面。
這些頁面拼起来數量可能不小,占用的却是同一份抓取资源。
可以固定下来的清理节奏
- 每月從服務器日誌導出 404 與 410 的訪問记錄,按訪問量排序看前几十條。
- 判断每條是繼續保留、跳轉還是彻底移除,该改内鏈的顺手改掉。
- 每季度掃一次站内連結,重点是導航、頁脚和置顶内容里的連結。
- 改版或删栏目时,先整理一份舊地址清單,上线前把跳轉或移除方案定好。
- 把處理结果记一筆,下次遇到同類調整可以直接參照。
死鏈清理不會带来立竿见影的流量變化,但它能让蜘蛛少走弯路,也让訪客少遇到几次打不開的頁面。這類工作做在前面,成本比事後补救低得多。