软 404 不是真的 404
服務器返回 200 OK,頁面能正常打開,但正文区域几乎是空的,只剩導航、頁脚和一句提示语。搜尋引擎會把這批 URL 判定為软 404。它不是服務器给出的狀態碼,而是爬虫根據标题、正文、可见文本量得出的判断。
換句话说:你對搜尋引擎说「這個頁面存在」,頁面内容却對它说「這里什么都没有」。两邊打架时,判定通常更相信内容。
哪些頁面最容易踩到
- 站内搜尋结果頁:没有匹配结果时仍返回 200,只顯示「暂無相關内容」
- 分類或篩選组合頁:某個篩選條件组合下没有任何商品或文章
- 缺货、下架、活動結束的商品頁,正文被清空只剩一句「已結束」
- 自動生成的标簽頁、归档頁:当月或该标簽下没有新内容
- 站点错誤頁:頁面做得很精致,但服務器返回的是 200 而不是 404
為什么它比普通 404 更麻烦
真實 404 是明确信号,搜尋引擎收到就知道该怎么處理。软 404 是「先抓取、再判断」,判定结果會随頁面内容變動,同一批 URL 可能這周還正常,下周就整批被判為空白。
這里要区分抓取和收錄:被抓取不等于被收錄。软 404 的 URL 往往會被持續抓取——蜘蛛每次都要重新確認它到底有没有内容——但收錄數並不會因此增長。
抓取是過程,收錄是结果。软 404 消耗的是過程,卡住的是结果。
自查的几步
- 看搜尋控制台里的软 404 报告和「已抓取,目前未收錄」這两類,統計涉及的路径規律
- 抽若干個 URL,用命令行或浏览器開發者工具確認返回碼,再關掉样式和脚本,看正文還剩多少可用文字
- 用 site: 查询相關路径,观察這些頁面是否還在索引里
- 翻服務器日誌,看這批 URL 的抓取频率是否明顯高于同层級的有内容頁面
按頁面價值分情况處理
頁面确實有價值
先补内容,而不是急着改狀態碼。空搜尋结果頁可以给出该條件下的替代推荐、热门分類或相近關鍵詞入口,让頁面在「没有精确匹配」时依然有可用信息。归档頁、标簽頁在确實有内容时應正常呈現,不要用脚本延迟很久才渲染正文。
頁面确實没有存在意义
- 永久不會再产生内容的空頁:返回 404 或 410,比让它挂着 200 更干净
- 周期性出現的空頁(按月归档):保留结构,但在没有内容时不要放開抓取,或先 noindex、有内容後再撤掉
- 缺货但可能补货的商品頁:保留 URL,正文补上库存狀態、同類替代、预計到货時間,不要直接清空
拿不准的
先別批量删。用 robots.txt 屏蔽只是禁止抓取,如果頁面有外鏈指向,仍可能以缺少描述的形式出現在结果里;要让它從索引中登出,應该用 noindex,同时确保该頁面没有被 robots.txt 挡住,否則 noindex 根本讀不到。
几個容易忽略的细节
- 软 404 的判定和語言、正文占比有關,不要用「大概多少字」当硬标准
- 篩選參數组合出来的頁面,更适合在 robots.txt 里屏蔽抓取,而不是指望它們被收錄
- 错誤頁必须返回真實的 404 狀態碼,頁面设計再完整也一样
- 批量處理前後留一份 URL 清單和處理動作,過几周再對照索引變化,才知道是哪個動作起了作用
软 404 更像一個提醒:搜尋引擎看到的不只是你的狀態碼,還有頁面真正呈現出来的東西。把狀態碼和内容對齐,問题往往就解開了一半。