頁面被刪除、下架或临时不可用时,很多站点只做了删掉内容這一步,服務器仍然返回 200,頁面也還能打開,只是里面空了。這種狀態對用戶和爬虫都是模糊信号:它既不是可用的内容頁,也不是明确的已下线。
三種頁面没了的信号
從 HTTP 层面看,一個 URL 不再提供内容,通常有三種表達方式。
- 404:资源不存在。這是最通用的找不到,适合已经不打算再提供、也没有合适替代頁面的 URL。
- 410:资源曾经存在,現在被永久移除。语义上比 404 更明确,但爬虫對两者的處理差异没有想象中那么大。
- 301 或 302 重定向:頁面換了地址或有了新的归属,用戶應该被带到新的 URL。
這三種都可以是正确選擇,取决于這個 URL 之後還有没有價值。真正需要避免的,是第四種狀態:内容没了,但服務器依然返回 200。
软 404 長什么样
软 404 指的是頁面返回 200,但實际内容為空、报错或與用戶预期不符。它不一定是空白頁,常见的形態包括:
- 商品下架後保留了模板框架,只剩标题和暂無库存
- 列表頁篩選出 0 條结果,但仍返回 200
- 错誤頁面返回 200,而不是 404
- 文章被清空,只剩導航、頁脚和评论区
- 用 JS 讀取參數失敗後顯示空白,但初始响應仍是 200
這些頁面對爬虫来说都是可抓取的,于是可能被反复抓取,甚至進入索引。
為什么它會影响收錄
搜尋引擎判断一個 URL 是否值得保留在索引中,會看它提供的内容與用戶意图是否匹配。返回 200 的空壳頁面,會让這個判断變得困难。
返回 200 並不代表頁面合格,它只代表服務器愿意把這份响應交给客戶端。内容是否成立,是另一层判断。
實际影响通常体現在几處:一是抓取资源被空頁面占用,真正需要更新的頁面来得更少;二是站内出現大量低信息量 URL,稀释了站点整体的内容质量信号;三是用戶從搜尋進入後立刻返回,行為資料也不理想。
怎么發現站内的软 404
- 在搜尋控制台的頁面报告中查看软 404 分類,它會列出被判定為软 404 的 URL 样本。
- 抽查站内返回 200 但内容极少的頁面,尤其是篩選頁、搜尋结果頁、下架商品頁和空分類頁。
- 用日誌观察:哪些返回 200 的 URL 被反复抓取,但長期没有带来任何有效内容變化。
- 检查错誤處理逻辑,確認 404 頁面本身返回的是 404,而不是 200。
處理顺序:先定狀態,再定去向
發現软 404 後,不建议直接批量改成 404,先回答两個問题:這個 URL 以後還會不會提供内容?有没有更合适的替代頁面?
- 如果頁面只是暂时缺内容,尽快补上;补不上就考虑合並到相關頁面。
- 如果 URL 永久不再使用,且没有替代頁面,返回 404 或 410。
- 如果有明确的替代頁面,用 301 指向最相關的那一個,避免统一跳到首頁。
- 如果 URL 必须保留但不想出現在索引中,用 noindex,同时保證頁面本身有可讀内容。
- 改完後观察一段時間,確認狀態碼在服務器层和頁面层都生效。
几個容易踩的坑
- 用 200 的错誤頁代替 404,爬虫會当成正常頁面繼續抓取。
- 用 JS 跳轉到 404 頁面,初始响應仍是 200,信号不明确。
- 把大量下架商品统一 301 到首頁,容易被当作软 404 處理。
- 只在 robots.txt 里屏蔽,而不處理狀態碼。屏蔽抓取不等于让頁面登出索引。
- 頁面已返回 410,但站内還有大量内鏈指向它,爬虫會持續發現這個地址。
頁面下线是站点运营里很常见的動作,但删内容只是第一步。把狀態碼、重定向和索引信号表達一致,爬虫才能正确理解這個 URL 的現状,也才谈得上把抓取和收錄的资源留给真正有價值的頁面。