站点运营

站点运营:软 404 自查,別让空頁面挂着 200 狀態碼混進索引

软 404 指的是頁面明明没有有效内容,服務器却返回 200 狀態碼。它會让蜘蛛反复抓取空頁面,浪費抓取预算,也可能让低质頁面進入索引。本文整理常见触發场景、自查方法和修复思路,帮助站点把狀態碼和頁面實际内容對齐。

站点运营

站点运营:软 404 自查,別让空頁面挂着 200 狀態碼混進索引

什么是软 404

软 404(soft 404)不是标准 HTTP 狀態碼,而是指一種不一致狀態:頁面實际上没有有效内容,或者内容已经不存在,但服務器仍然返回 200 OK。對訪客来说,頁面可能顯示“暂無内容”“该商品已下架”或者一片空白;對蜘蛛来说,它却是一個正常可抓取、可索引的地址。

這種不一致會带来几個直接問题:蜘蛛可能反复回来抓取同一個空頁面,占用本就有限的抓取预算;空頁面可能進入索引,拉低整站质量判断;运营人員看日誌时,也很难区分哪些地址真正值得维護。

常见触發场景

  • 内容刪除但模板未變:文章、商品、活動頁下线後,CMS 仍用詳情模板輸出一個 200 頁面,只是正文区域為空。
  • 站内搜尋结果為空:搜尋词没有匹配结果,頁面返回 200,标题可能是“搜尋结果”,正文只有一句無结果提示。
  • 分頁超出范围:列表頁翻到第 50 頁之後没有資料,但 URL 仍可訪問並返回 200。
  • 參數過滤無结果:篩選條件组合後没有商品,頁面却照常輸出框架和空列表。
  • 错誤處理配置不当:後端捕获異常後统一返回 200 和错誤提示,而不是 5xx 或 404。

自查方法

先從高频入口和容易产生空頁面的模板入手,不必一次性全站掃描。

  1. 抽查狀態碼:用浏览器開發者工具或命令行查看响應头。對疑似空頁面执行 curl -I 可以只看到狀態头,重点是確認返回的是 200 還是 404、410。
  2. 對比頁面可见内容:如果頁面主体只有導航、頁脚和一句“暂無内容”,而狀態碼是 200,就值得進一步確認。
  3. 看抓取日誌:同一批空 URL 是否被反复抓取;如果某個路径每天被訪問多次,但頁面始终没有實质内容,很可能就是软 404。
  4. 检查索引狀態:在搜尋控制台或類似工具中查看“已编入索引”的頁面里,是否出現大量标题相似、内容稀薄的地址。
  5. 模拟蜘蛛訪問:用不带登入態的方式訪問,確認返回的狀態碼和普通訪客看到的是否一致。

修复思路

處理软 404 的核心原則是:让狀態碼和頁面實际内容保持一致。如果内容已经永久消失,返回 404 或 410 通常比返回 200 更合适;如果内容只是換了地址,用 301 指向新地址;如果頁面還有部分價值,就补充有效内容或给出明确的替代入口。

  • 永久刪除的内容:返回 404 或 410,並在頁面上给出返回首頁、相關栏目的連結。
  • 已迁移的内容:配置 301 到新 URL,避免保留空壳頁面。
  • 空搜尋结果頁:考虑返回 404,或者至少加上 noindex,並限制蜘蛛抓取搜尋參數。
  • 超出范围的分頁:返回 404,或者從列表逻辑上限制最大頁碼。
  • 篩選無结果頁:返回 200 但加 noindex 是一種折中,更彻底的做法是返回 404 並引導回主列表。
软 404 不會立刻带来惩罚,但它會让抓取预算流向没有價值的頁面。定期清理空頁面,比事後猜测抓取下降原因要省力得多。

上线後的复查

修复不是改完模板就結束。上线後需要观察一段時間:日誌里這些 URL 的抓取频率是否下降,索引中的空頁面是否逐步减少,替代頁面是否開始获得正常抓取。如果狀態碼改了但頁面仍然被大量訪問,可能是缓存、CDN 或舊連結還在返回 200,需要繼續排查。

另外,不要把所有返回 404 的頁面都当成错誤。只要它确實代表内容不存在,並且訪客能看到清晰的引導,404 就是正常且必要的狀態碼。真正要避免的是“頁面已经空了,狀態碼還在说一切正常”。