蜘蛛来抓頁面,最怕的不是返回错誤碼,而是返回一個 200 却几乎没有内容的頁面。前者至少能让蜘蛛知道“這里没有東西”,後者會让它把抓取预算花在無效路径上,還可能把同一類 URL 标记為低质量。软 404 就是這類情况的典型表現。
软 404 和真正 404 的差別
真正 404 是服務器明确告诉蜘蛛:這個地址不存在。软 404 則是地址還能訪問,狀態碼是 200,但頁面主体没有實质内容,或者内容與用戶预期嚴重不符。比如篩選條件组合後没有商品、下架商品頁仍保留、活動結束只剩一句“已結束”、站内搜尋無结果只顯示“没有找到”。
對蜘蛛来说,200 是一個承诺:這里有一份可索引的内容。当它反复抓到空壳,就會降低對這類 URL 的信任,甚至影响整站抓取节奏。
蜘蛛遇到空頁面後通常會怎么反應
- 把该 URL 归入软 404 或低质量頁面,减少再次抓取。
- 把同一模板生成的 URL 一起观察,降低整组路径的抓取频次。
- 停止沿着這些頁面繼續發現新連結,内鏈出口被浪費。
- 已经收錄的空頁面可能被降權或移出索引,但過程較慢。
- 如果空頁面數量持續增加,服務器抓取预算會被大量占用。
哪些 URL 容易變成空頁面
- 篩選參數组合後没有结果的列表頁。
- 商品下架、库存為零但頁面還保留的詳情頁。
- 過期活動、過期专题、已結束的报名頁。
- 分頁超出實际頁數,仍然返回 200 的翻頁地址。
- 标簽聚合頁下没有關联内容,只剩标题和導航。
- 站内搜尋结果頁,無结果时也返回 200。
狀態碼要尽量诚實
能明确判定地址不再存在时,返回 404 或 410 比返回 200 空頁更有利于抓取。410 表示永久移除,通常能让蜘蛛更快放弃。如果頁面只是暂时無货、暂时無结果,可以保留 200,但要避免让蜘蛛把這類地址当成長期有效内容。例如篩選無结果頁可以用 noindex 處理,而不是让它在索引里空轉。
有些站点担心 404 影响用戶体驗,于是全部返回 200。结果是蜘蛛和用戶都得不到明确信号,抓取预算被慢慢消耗。
内鏈與 Sitemap 要同步清理
空頁面如果還有大量内鏈指向,蜘蛛就會反复走到這里。检查導航、列表模板、相關推荐和分頁组件,避免把無内容 URL 放進去。Sitemap 里也不要保留已下架或已過期的地址,否則相当于主動把空頁交给蜘蛛。
分頁可以設定合理的最後一頁,超出范围返回 404,而不是無限生成空列表。标簽聚合頁如果没有内容,可以從内鏈中撤下,或者合並到更合适的入口。
服務器稳定性與抓取预算的關系
服務器响應不稳定时,蜘蛛本来就會放缓抓取。此时大量空頁面會让情况更糟:它花了請求次數,却没有拿到可索引内容,下一次可能直接减少整站抓取量。保持服務器稳定、减少無效 URL,是让抓取预算落在有效頁面上的基础。
排查顺序可以這样走
- 看日誌里狀態碼為 200 但响應体很小的 URL,按模板归類。
- 检查這些 URL 是否有實质内容,還是只有框架、導航和提示语。
- 看索引狀態,確認空頁面是否已经被收錄。
- 检查内鏈和 Sitemap,找出谁在持續把蜘蛛引向這些地址。
- 對确定不存在的地址返回 404 或 410,對暂时無内容的頁面做 noindex 或收口。
- 修复後观察抓取频次和有效 URL 的發現數量,不要只看單日日誌。
空頁面不是小問题。它不一定让蜘蛛立刻离開,但會让它把抓取机會花在错誤的地方。把狀態碼、内鏈和 Sitemap 收拾清楚,比反复提交地址更有效。