站点运营

站点运营:404 頁面自查,別让错誤頁把訪客和蜘蛛一起送走

404 不只是“頁面不存在”的提示,它是訪客和蜘蛛都會撞上的岔路口。本文從狀態碼、頁面内容、出口引導、日誌观察几個角度,梳理一份可执行的 404 自查清單,帮你把错誤頁從死胡同改成有出口的引導頁。

站点运营

站点运营:404 頁面自查,別让错誤頁把訪客和蜘蛛一起送走

很少有人在站点运营的检查清單里给 404 頁面留位置。但它是訪客和搜尋引擎都會撞上的頁面:舊連結、拼错的地址、被删掉的栏目、外部站点引用的失效 URL,最後都落在這一頁上。這一頁做得好不好,直接决定訪客是繼續浏览還是直接關掉标簽。

先把三種“找不到”分清楚

  • 标准 404:服務器返回 404 狀態碼,頁面给出提示和出口。這是正常且健康的狀態。
  • 软 404:頁面看起来是“内容不存在”,但狀態碼返回 200。訪客看不出問题,抓取端却會把它当成正常内容處理,時間一長就是一堆低质頁面。
  • 301 與 410:頁面只是換了地址,應该用 301 指到新地址;内容确實永久下线且不再有替代,410 比 404 更明确。

很多站点的麻烦不是“404 太多”,而是“该 404 的返回了 200,该 301 的返回了 404”。

一次可执行的 404 自查

  1. 抽查狀態碼。随机挑十几個不存在的地址,用命令行或浏览器開發者工具看响應头,確認返回的是 404 而不是 200。
  2. 检查错誤頁是否被索引。在搜尋引擎里搜站点域名加上“頁面不存在”之類的提示语,如果错誤頁本身被收錄,說明狀態碼或 meta 有問题。
  3. 統計日誌里的 404 来源。把服務器日誌中狀態碼為 404 的记錄按 URL 聚合,看哪些地址被反复請求、来源是站内還是站外。
  4. 区分可修复和不可修复。站内連結指向的 404 属于自家問题,優先修;外部引用的老地址,能重定向就重定向。
  5. 看错誤頁的出口。頁面上是否還有導航、搜尋框、热门内容入口,訪客有没有办法繼續走下去。
  6. 確認 robots 與站点地图没有冲突。不要把 404 地址寫進 sitemap,也不要让 robots.txt 挡住整站後再指望错誤頁被正常處理。

错誤頁面本身應该包含什么

  • 一句人话說明:地址可能輸错、内容可能已下线,不要只丢一串代碼。
  • 返回首頁、栏目頁或相關内容的連結,最好和訪客原本想找的主题相關。
  • 站内搜尋框,让人可以自己找。
  • 與全站一致的头部和底部,不要让訪客以為跳到了別的網站。
  • 如果站点有联系方式,可以顺带放上,方便反馈失效連結。

不必把 404 頁做得花哨,它的核心任務是“承認找不到”並“给出下一步”,而不是硬塞促销或大段自我介绍。

從日誌里看 404 都在哪里發生

把 404 记錄按路径分组,通常會看到几類:图片、CSS、JS 等静態资源缺失;被刪除的栏目頁;參數或大小寫不一致产生的變体地址;以及被外部站点大量引用的老文章。前几類往往是一處改動留下的尾巴,修一次能消掉一大片。變体地址則要考虑统一規則,避免同一份内容因為大小寫、结尾斜杠不同而各自為战。

提示:日誌里短時間出現大量陌生地址的 404,先別急着逐條處理,看看是不是爬虫在试探或有人在掃描,判断清楚再决定要不要拦。

別把 404 藏起来

有些站点為了“好看”,把所有错誤都重定向到首頁,或者用 JavaScript 跳轉。短期看訪客没看到错誤頁,長期看却让抓取端分不清哪些地址真的没了,舊地址的传递也交代得不明不白。诚實地返回 404,同时提供清楚的出口,通常比掩盖错誤更有價值。自查不必一次做完,先把站内連結造成的 404 清一轮,再逐步處理外部引用和變体地址,就已经能改善不少。