站点运营

站点运营:404 與软 404 自查,別让错誤頁面對蜘蛛说一切正常

内容下架、地址打错本是常事,麻烦在于很多站点统一返回 200,只在頁面上寫一句“内容不存在”。這類软 404 會让搜尋引擎反复抓取空頁面,消耗抓取预算。本文整理软 404 的高频出错位置、用狀態碼與日誌自查的步骤,以及按内容不同去向選擇 301、404、410 或 503 的處理原則。

站点运营

站点运营:404 與软 404 自查,別让错誤頁面對蜘蛛说一切正常

先分清:404 是结果,软 404 是伪装

頁面确實不存在,返回 404 或 410,這是正常且诚實的反馈。软 404 則相反:地址早已失效、内容早已清空,服務器却仍然返回 200,只在頁面正文里寫一句“内容不存在”“该商品已下架”。對訪客来说這只是一次绕路,對搜尋引擎来说却是一個错誤信号——它會認為這是有效頁面,抓回去、尝试索引,最後發現里面没有實质内容。

還有一種情况更隐蔽:站点使用前端路由,任何地址都先返回 200,再由 JavaScript 决定渲染哪個頁面。如果不做額外處理,等于主動把大量空壳地址交给搜尋引擎。自查时先看服務端返回的狀態碼,再看頁面上顯示了什么,顺序不要颠倒。

為什么软 404 比 404 更麻烦

404 本身不會带来惩罚,它只是告诉搜尋引擎“這里没有東西,別再来了”。软 404 的代價在于消耗:抓取预算被花在空頁面上,真正需要更新的内容排不上队;索引里堆积一批没有價值的地址,稀释了整站的内容质量判断。長期累积下来,抓取频次和收錄效率都可能受影响。

几個高频出错的位置

  • 已下架的商品或文章頁:返回 200 並顯示“内容已下线”。有替代内容的應 301 到最相關的類目或新地址,确實没有的應返回 404/410。
  • 空搜尋结果頁:站内搜尋無结果时仍返回 200,被大量生成。建议對空结果頁加 noindex,或直接返回 404。
  • 分頁越界:列表只有 5 頁,訪問第 50 頁却返回 200 的空列表,属于典型软 404。
  • 排序、篩選參數拼出的無效组合:地址可訪問,但列表為空。
  • 被清空的标簽頁、专题頁:栏目還在,内容已搬走,頁面只剩标题和導航。

自查怎么做

  1. 准备一批确定不存在的地址,包括随机字符串、已刪除内容地址、越界分頁地址,用 curl -I 或浏览器開發者工具查看返回的狀態碼。
  2. 抽查返回 200 的頁面,看正文是否為空、是否只有一句“未找到”、是否缺少唯一标题。
  3. 翻服務器日誌,把狀態碼為 404 的地址按出現次數排序,找出高频項。多數时候它們来自站内错誤連結,修一處能减少一批。
  4. 對照站点地图與站内連結,確認列出的地址都能正常打開、狀態碼一致。
判断标准很简單:如果没有實质内容可看,就不要用 200 告诉搜尋引擎“這里有好東西”。

按内容去向决定處理方式

  • 内容永久迁移:301 到最相關的新地址,尽量一對一,不要整站跳到首頁。
  • 内容彻底刪除且無替代:返回 404;确定不再恢复的可以返回 410。
  • 临时维護或短暂下线:返回 503 並附上 Retry-After,不要用 301 把临时狀態固化下来。
  • 地址必须保留但内容為空:至少加 noindex,並考虑把入口合並到上級頁面。

404 頁面本身也值得做

返回 404 並不等于訪客体驗差。一個合格的 404 頁面應当包含:站点主導航、站内搜尋框、几個热门栏目入口,以及一段說明問题可能出在哪里的文字。訪客能繼續往下走,而不是直接關掉頁面。注意不要在 404 頁面堆砌大量連結,也不要用脚本把 404 地址自動跳到首頁,那會让搜尋引擎把首頁和無數無效地址绑在一起。

定期复盘看三個指标

  • 404 數量趋势:突然上升,通常意味着某次改版或某批内容下线没有做好跳轉。
  • 软 404 占比:抓取日誌中返回 200 但正文极短的地址比例。
  • 高频 404 来源:来自站内連結的優先修,来自外部的可以先观察。

這些检查不需要复杂工具,一次抽样加一次日誌篩選,通常就能發現不少問题。把它們纳入固定的维護节奏,比等到抓取異常再回头排查要省力得多。