網站收錄

頁面返回 200 但内容已经没了:软 404 與收錄狀態的核對顺序

有些 URL 狀態碼一直是 200,打開却只有模板和一句提示,這類软 404 不會在日誌里报错,却會持續消耗抓取、稀释頁面质量判断,甚至让空壳頁留在索引里。本文梳理软 404 的常见来源、它與真 404 的区別,以及從狀態碼、原始 HTML、站内入口到索引狀態的核對顺序。

網站收錄

頁面返回 200 但内容已经没了:软 404 與收錄狀態的核對顺序

在日誌里看到某個 URL 被反复抓取,狀態碼是 200,但打開一看只有頁头頁脚和一句"没有找到相關内容",這類頁面通常被称為软 404。它的影响比較隐蔽:站点层看不到报错,爬虫却拿到一個没有實质内容的頁面。

软 404 和真正的 404 差別在哪

真正的 404、410 是明确的信号,告诉爬虫這個地址没有内容,後續不必反复来取。软 404 返回的是 200,等于告诉爬虫"這里有内容",于是抓取繼續,索引里可能留下一個空壳。差別不在頁面好不好看,而在返回给爬虫的狀態信号是否准确。

常见的几個来源

  • 篩選、排序、分頁组合後结果為空,頁面仍然渲染出完整模板;
  • 商品或文章已下架、已刪除,但詳情頁路由還在,返回的是空模板;
  • 參數被随意拼接,命中一個不存在的内容 ID,程序兜底返回 200;
  • 前端渲染失敗或接口超时,只留下骨架屏和占位文案;
  • 活動頁過期後没有下线,内容被替換成"活動已結束"。

為什么它會影响收錄

一是浪費抓取预算。爬虫把時間花在這些空頁面上,真正需要更新的頁面来得就少。二是稀释质量判断。一個站点里大量返回 200 却没有内容的 URL,會让整体頁面质量的评估變差。三是索引里可能出現空壳结果,用戶搜到点進去什么也没有。

核對顺序

  1. 先看狀態碼。用抓取工具或命令行確認返回的是 200、404 還是 301,注意区分渲染前後的差异。
  2. 再看返回给爬虫的 HTML。很多软 404 只發生在無 JS 的原始 HTML 里,或者在渲染後才补上内容,两者要分開看。
  3. 確認頁面是否有實质内容。标题、正文、可用信息是否具备,還是只有模板和一句提示。
  4. 检查站内入口。這些 URL 是從哪里被發現的,列表頁、搜尋頁還是外鏈,入口不清理會持續产生新的空頁面。
  5. 看索引狀態。已经進入索引的空壳頁,需要在下线後观察一段時間才會逐步消失。

處理时按内容狀態分情况

  • 内容永久不存在:返回 404 或 410,同时清理站内指向它的連結。
  • 暂时缺货或缺内容:保留 200 也可以,但要给出明确說明、推荐入口或返回上一級的路径,避免頁面只有一句提示。
  • 參數组合導致無结果:要么让這類组合不产生可訪問的獨立 URL,要么在無结果时返回合适的狀態,不要一律 200。
  • 渲染失敗:先修接口和兜底逻辑,再谈收錄。
判断标准可以用一句话概括:如果這個頁面交给用戶看,用戶會觉得"這里没有東西",那么它大概率也不该以 200 的形式交给爬虫。

收口之後怎么盯

處理完不要只改一次。把這類頁面加進抓取日誌的观察清單,定期統計返回 200 但内容為空的 URL 數量;同时留意索引里的空壳頁有没有减少。上线新模板、新篩選逻辑时,把"無结果时的返回狀態"寫進驗收項,比事後批量清理省事得多。