站点运营里,404 頁面常被当成技術细节丢给開發,但它同时面對两類訪客:一邊是点進来的真實用戶,一邊是顺着連結爬過来的搜尋蜘蛛。前者看到空白頁會直接關掉,後者反复撞上失效地址,會慢慢减少對整站的抓取兴趣。所以死鏈自查不是“有就修”這么简單,而是要建立一套能長期运轉的處理习惯。
先把几種“找不到”分清
同样是打不開,性质並不一样,處理方式也不同。
- 404(未找到):地址确實不存在,或内容已经刪除且没有替代頁面。
- 410(已刪除):明确告诉對方“這個内容永久没了”,比 404 更干脆,但要確認不會恢复。
- 软 404:服務器返回 200,頁面内容却是“暂無内容”“抱歉没找到”。這種最麻烦,蜘蛛會把它当正常頁面收進去。
- 5xx:服務器故障導致的打不開,属于可用性問题,不该用 404 去掩盖。
死鏈一般從哪里冒出来
- 改版时栏目合並、模板換名,老地址没有做跳轉。
- 編輯手動粘贴連結时打错字,或複製了带多余參數的地址。
- 外部引用、合作方頁面上留下的舊連結,指向已经下线的专题。
- 正文里引用的站内文章被刪除、草稿被撤回。
- 标簽、分頁、篩選组合出的地址,随内容增减不断失效。
自查怎么做:從日誌到頁面
- 先看服務器日誌,筛出狀態碼為 404、410 的請求,按訪問次數排序。次數高的地址優先處理,它們才是真正在被频繁撞的。
- 区分来源:看請求的 Referer 和 User-Agent,判断是站内連結断的,還是外部站点引来的。
- 抽查頁面返回碼,確認没有软 404。可以看响應头,不要只看頁面長相。
- 在站内做一次連結巡检,把正文、導航、頁脚、侧栏里的内鏈都過一遍。
- 整理成表:原地址、狀態碼、被訪問次數、是否有可替代頁面、處理方式、處理時間。
處理方式對應着不同情况
- 内容還在,只是換了地址 —— 做 301 跳到新地址,並更新站内所有舊連結。
- 内容有同類替代 —— 301 到最相關的那個頁面,不要一律跳首頁。
- 内容彻底刪除且無替代 —— 让它返回 404 或 410,同时把站内指向它的連結删掉。
- 地址本来就不该存在,比如被外部乱拼的參數 —— 保持 404,不必特殊處理。
要注意的是,不要為了“消灭 404”而把所有失效地址都跳首頁。這種做法會让蜘蛛得到一堆指向同一個地址的入口,也让用戶摸不着头脑。
404 頁面本身也要可用
一個合格的 404 頁面至少要有:明确的說明、返回首頁和主要栏目的入口、站内搜尋框,以及和站点整体風格一致的排版。它不是装饰品,而是把走错路的訪客重新引回正轨的岔路口。至于狀態碼——必须返回 404,頁面再好看,狀態碼寫错就成了软 404。
把它變成固定動作
建议把死鏈检查放進月度巡检:每月取一次日誌样本,處理掉訪問量靠前的失效地址;每次内容改版或批量刪除後,單獨跑一遍站内連結检查。频率不用太高,關键是別停。
死鏈本身不可怕,怕的是它被長期忽略。把狀態碼看准、把跳轉做對、把记錄留下,站点结构就會少一些空洞,蜘蛛爬行时也少一些無效往返。