搜尋抓取

狀態碼 200 的空壳頁:软 404 怎样一点点消耗抓取预算

服務器返回 200,正文却是空的——這類软 404 頁面會被蜘蛛当成正常 URL 反复訪問。本文梳理它們常见的生成来源、對抓取预算與内鏈的實际影响,以及從狀態碼、内鏈和 Sitemap 三處做清理的具体步骤,並区分内容简短與软 404 的邊界。

搜尋抓取

狀態碼 200 的空壳頁:软 404 怎样一点点消耗抓取预算

什么是软 404:狀態碼说“在”,内容说“不在”

软 404 指服務器返回 200,頁面本身却没有實质内容:模板在、導航在、頁脚在,正文区域却是空的,或者只寫一句“暂無相關结果”“该商品已下架”。對用戶来说這是一次無效訪問;對蜘蛛来说,這是一個“看起来存在”的 URL,會被记入抓取清單,並在之後的調度里被反复訪問。

它們通常從哪几個口子冒出来

  • 篩選與參數组合:颜色 × 尺碼 × 價格区間,几十種组合里只有少數有货,其余组合照常生成頁面。
  • 站内搜尋结果頁:没有命中關鍵詞时仍然返回 200,並留下一個可被抓取的 URL。
  • 分頁越界:列表只有 3 頁,參數寫成第 50 頁依然能打開,只是列表為空。
  • 已下架内容保留模板:商品或文章刪除後,URL 繼續返回 200,正文替換成“内容已移除”。
  • 渲染失敗的空壳:依赖前端接口取數的頁面,在超时或異常时返回的是一個等待資料的空容器。

它消耗的不只是抓取次數

  • 抓取预算:每訪問一個空壳頁,就少一次訪問真正需要更新的頁面。
  • 再抓取机會:空壳頁可能被当作“内容稀少但可訪問”,進入常規調度,長期占用請求。
  • 内鏈權重:列表頁和相關推荐把連結给了空壳頁,這些入口本可以指向有效頁面。
  • 整体判断:大量结构相似、内容雷同的空壳頁,會影响蜘蛛對站点内容密度的评估。
判断标准不是“頁面内容少”,而是“頁面没有提供它声称提供的内容”。联系頁只有三行字,不算软 404;商品頁只剩一句“已下架”,算。

怎么把它們找出来

靠翻几個頁面是不够的,需要一份可以定期跑的清單。

  1. 用站点爬取工具把全站 URL 拉一遍,導出狀態碼、响應字节數、正文文本長度。
  2. 按字节數排序,重点看那些狀態碼為 200 但正文极短的 URL。
  3. 與服務器日誌對照:這些 URL 是否被蜘蛛反复訪問。
  4. 確認它們是否出現在 Sitemap 或被内鏈主動推荐。

把狀態碼、字节數和日誌訪問次數放進同一張表,比單獨看任何一項都更容易定位問题。

處理方式:要么承認它不存在,要么做成真正的頁面

让它返回正确的狀態碼

确定不會再提供的内容,返回 404 或 410 是更干净的表述。不必過度期待狀態碼變化本身能带来什么額外收益,關键是不再让蜘蛛把它当成正常頁面處理。切忌用 200 加一句“抱歉,没找到”来伪装。

给它實质内容

如果這個 URL 有搜尋需求或外鏈,把它做成有用的頁面:补足說明、提供替代内容、给出同類推荐連結。這通常比直接删掉更划算,但前提是真的有内容可寫。

從源头减少生成

  • 篩選结果為空时,不再輸出可被抓取的連結,或把參數组合收敛到有限集合。
  • 分頁超出范围返回 404,而不是空列表。
  • 站内搜尋结果頁一般不開放抓取;若要屏蔽,優先考虑 noindex 而不是 robots.txt——被 robots 拦截的 URL 若仍有内外鏈,仍可能以無摘要形式出現。

内鏈與 Sitemap 的同步清理

頁面狀態改了、連結没改,蜘蛛還是會被引過去。改完狀態碼之後,检查三處:列表頁與相關推荐是否還挂着死鏈;Sitemap 是否仍包含這些 URL;标簽聚合或站内搜尋頁是否還在自動生成指向它們的連結。撤連結和改狀態碼,两件事要一起做。

最後一点:別把“内容少”全判成软 404

關于頁、联系方式、隐私政策這類頁面内容天然简短,但它們正是用戶會主動寻找的頁面,並不需要更多文字。软 404 的核心特征是“承诺了内容却不提供”,而不是字數少。把這條线划清楚,清理时才不會誤伤真正该保留的頁面。