搜尋蜘蛛判断一個地址,先看它返回什么,再看里面有什么。当服務器返回 200,頁面却是“没有找到”“该内容已下架”“暂無结果”时,這個地址在蜘蛛眼里就是一個正常頁面,但用戶点進去什么也得不到。這類頁面通常被称為软 404。
软 404 為什么容易被收錄
它並不需要被专门提交,往往是自己長出来的。常见来源包括:
- 站内搜尋、篩選、排序生成的大量空结果頁,URL 结构正常,模板完整;
- 已下架的商品、已刪除的文章,頁面還在,只是主体内容換成了提示语;
- 分頁翻到超出范围的頁碼,返回 200 但列表為空;
- 舊版頁面改版後没有做跳轉,只留下一個空壳。
這些頁面往往有标题、有導航、有頁脚,看起来和正常頁面差不多,蜘蛛顺着内鏈或 sitemap 走過来,很容易抓取並進入索引。
先核對三件事,再動手
- 狀態碼:用命令行或抓取工具看真實返回头。頁面顯示“不存在”不代表狀態碼就是 404。
- 頁面主体:去掉導航、頁脚、推荐位之後,正文区域是否還有實质信息。只有一句提示的,基本可以判定為软 404。
- 入口来源:這個地址從哪来。是内鏈、sitemap,還是站内搜尋自己生成的。不切断入口,處理完還會再出現。
處理方式按是否有替代内容来選
- 有更合适的替代頁,比如商品換型号、文章換栏目:做 301,指向最接近的有效頁面。
- 内容彻底没有了,也没有替代:直接返回 404 或 410。410 语义更明确,但不是必须。
- 頁面仍需保留,只是不想被索引:加 noindex。注意不要再同时指向一個不存在的 canonical,两者冲突时容易让蜘蛛反复確認。
顺序上建议先改狀態碼,再清内鏈,最後看 sitemap。狀態碼改了但内鏈還挂着,蜘蛛會一直来確認,等于白改。
内鏈和 sitemap 要同步清理
检查方法
sitemap 里保留已失效地址,會持續把蜘蛛引向空頁面。内鏈中的死連結同理。處理完之後,最好用抓取工具重跑一遍站内連結,看看還有哪些頁面在指向這些地址。批量改狀態碼时,也顺手導出一次带外鏈的舊地址清單,两者對照着清,不容易漏。
狀態碼、頁面主体、入口指向,這三者要一致。只改其中一個,問题往往會在几周後重新出現。
不要一次性全站掃
软 404 往往成千上萬,一次全改容易誤伤正常頁面,也不方便观察效果。可以按模板或栏目分批處理,改完一批後看抓取日誌和索引狀態的變化,再决定下一批的范围。
最後提醒一点:處理软 404 的目标是让索引里的地址更接近真實存在的有效頁面,而不是追求某個數量。地址少了,但每個都能打開、都有内容,對站点更有利。