有些頁面明明已经没内容了,服務器却照样返回 200,蜘蛛抓回来一看是個空壳。這類頁面在搜尋引擎眼里常被归為“软 404”。它不像真正的 404 那样干脆,而是让蜘蛛反复来、反复失望,最後影响對整站质量的判断。站点运营里,软 404 属于那種不致命但很磨人的問题。
软 404 常见的样子
判断软 404 不看狀態碼,而看頁面實际给訪客和蜘蛛提供了什么。下面這些情况比較典型:
- 分類或标簽下没有任何内容,模板仍然正常渲染,頁面只剩标题和導航。
- 站内搜尋無结果时,返回 200 並顯示“没有找到相關内容”。
- 商品或文章已经下架,詳情頁保留着空模板,图片和正文都被清空。
- 分頁翻到超出范围的頁碼,仍然返回 200 的空列表。
- 程序出错时用了一個“友好提示頁”,但狀態碼依舊是 200。
為什么別把软 404 全 301 到首頁
遇到空頁面,最省事的做法是统统 301 到首頁。但大量不相關的地址都指向首頁,會让蜘蛛把這些地址理解成同一個頁面的多個入口,首頁本身也承担了不属于它的相關性。對訪客来说,点進来發現内容和预期無關,同样是一次糟糕的体驗。
更合理的判断是看這個地址還有没有存在價值:有替代内容就合並,没有就让它退场。
發現软 404 的几種途径
- 看搜尋控制台的覆盖率或頁面索引报告,里面會列出“软 404”一類的狀態。
- 在服務器日誌里篩選返回 200 但字节數很小的頁面,尤其是模板生成的動態地址。
- 用抓取工具跑一遍站内連結,重点看那些只有框架、没有正文的地址。
- 手動抽查:從導航、标簽、分頁随机点進去,看有没有内容空白的頁面。
處理方式按情况分開
有可替代的内容
如果舊地址的内容已经並入了新頁面,做 301 指向新地址,並且保證新舊主题确實相關。合並後记得检查内鏈,把指向舊地址的連結改過来,別让跳轉鏈越拉越長。
确實没有對應内容
直接返回 404,或者對已经确定永久移除的頁面返回 410。這两種狀態都能让蜘蛛尽快把這個地址從抓取队列里放下。不要為了“留住流量”繼續返回 200,頁面本身已经没有東西可留。
只是暂时缺内容
如果栏目只是暂时没有更新,可以考虑返回 503 並带上 Retry-After,或者先补齐一段有實际價值的說明内容。長期空着返回 200,對訪客和蜘蛛都没有好處。
noindex 不能代替狀態碼
有人會用 noindex 来對付空頁面,但 noindex 只解决“不索引”,不解决“還在被抓”。一個没有内容的地址如果一直可訪問、一直返回 200,蜘蛛仍然可能把它放進抓取队列,占用本该留给正常頁面的額度。頁面既然永久没内容,让地址以 404 退场通常更干净。
日常运营里的预防
- 给空结果頁、空标簽頁單獨设計狀態處理逻辑,而不是复用普通模板。
- 内容下架时同步决定這個地址的去處,是合並、重定向還是刪除。
- 定期检查程序错誤頁的狀態碼,避免異常被包装成正常頁面。
- 分頁超出范围时给出明确提示,或者直接返回 404。
软 404 的核心不是狀態碼寫得好不好看,而是頁面有没有對得起訪客点進来的那一次点击。地址该退场就退场,该合並就合並,蜘蛛和用戶都會少走弯路。