软 404 是什么,為什么容易被忽略
正常情况下,一個頁面如果内容不存在,服務器應该返回 404 或 410,告诉蜘蛛「這里没有東西」。软 404(soft 404)指的是另一種情况:頁面已经没有有效内容,但服務器依然返回 200,让蜘蛛以為這是一張正常的内容頁。
它难被發現,是因為從浏览器看過去一切正常——用戶打開頁面,看到的是「暂無相關内容」「该商品已下架」「没有找到你要的结果」,但這层提示被包在完整的模板里,頁头、頁脚、導航一應俱全。用肉眼掃碼,很难判断它和正常頁面的区別;只有把狀態碼和正文字數放在一起對比,問题才會露出来。
這些空頁面通常從哪来
- 搜尋無结果頁:站内搜尋被外部訪問或蜘蛛抓到,關鍵詞匹配不到任何内容,頁面只剩一句提示。
- 已下架的内容:商品、文章、活動頁下线後,模板仍在渲染,正文位置空着,狀態碼依舊是 200。
- 參數拼接出的空列表:篩選條件组合後没有匹配項,列表返回空结果,但 URL 本身是合法的。
- 栏目建好却長期没内容:新開的分類只有标题没有條目,被導航或站点地图带了出去。
- 模板改版留下的空白頁:字段名變化後取不到資料,頁面结构還在,正文為空。
為什么它值得單獨花時間查
软 404 的直接代價是抓取预算被浪費。蜘蛛按連結一路爬進来,拿到的是一張没有信息的 200 頁面,既不能作為内容索引,也不會像真正的 404 那样被快速标记為失效,于是隔一段時間還會再回来確認一次。
數量一多,還會影响整站的质量判断:大量空頁面挂在站内,會让有效内容在連結结构里的權重被摊薄,用戶從搜尋或導航進来之後也容易直接跳出。
自查可以按這几步做
- 抽样對比狀態碼和正文字數:用抓取工具批量跑一遍重要目錄,把返回 200 但正文字數极低的 URL 單獨列出来,人工確認是不是空頁面。
- 检查站内搜尋與篩選參數:搜尋無结果頁、多條件篩選後的空列表,重点看它們是否被允许抓取。
- 翻一遍抓取日誌:看蜘蛛经常訪問的 URL 里,有没有那些已经下架、但狀態碼還是 200 的頁面。
- 用站内检索驗證:在搜尋引擎里用 site 指令配合下架内容的關鍵詞,確認是否已有空頁面進入索引。
- 检查站点地图:站点地图里有没有混進無内容的栏目頁或标簽頁。
確認為软 404 之後怎么處理
- 内容确定不再提供的,让服務器返回 410(明确刪除)或 404,而不是繼續返回 200。
- 有新頁面承接的,做 301 跳轉到最相關的頁面,不要一律跳到首頁。
- 搜尋無结果頁、内部篩選空结果頁,可以加 noindex,並确保不進入站点地图。
- 暂时缺内容但栏目會繼續运营的,先补上有效内容,或临时從導航中撤下,而不是让它空着被反复抓取。
處理之前先看資料:有些「空頁面」其實還带着自然流量,直接 404 掉反而可惜,優先考虑补内容或做迁移。
几個容易踩的坑
一是把 404 当成萬能药,凡是没内容的頁面全部改成 404,结果连還在被引用的舊地址一起清掉;二是只改前端提示,服務器狀態碼没動,問题依舊;三是改完不做记錄,過段時間模板再次改版,同样的問题又冒出来。建议把狀態碼和頁面類型的對應關系寫進运营規范,改版後按目錄抽查一遍,比事後补救省事得多。