網站收錄

返回 200 的空頁與错誤頁:软 404 的识別與收口顺序

软 404 指的是頁面返回 200 狀態碼,但正文為空或是错誤提示。搜尋引擎容易把它当成正常頁面,進而抓取甚至收錄。本文讲清识別方法、常见来源、排查顺序,以及按頁面類型分別選擇 404、410、301 還是限制抓取。

網站收錄

返回 200 的空頁與错誤頁:软 404 的识別與收口顺序

有一類頁面在日誌和抓取工具里看起来一切正常:狀態碼 200,抓取成功,没有跳轉,也没有报错。但真正打開时,要么是一片空白模板,要么寫着“暂無内容”“參數错誤”。搜尋引擎會按正常頁面處理它,于是這些地址可能被收錄、進入索引,甚至占着索引配額不放。這類情况通常被称為软 404。

软 404 和真 404 的差別在哪

真 404 返回的是 404 或 410 狀態碼,搜尋引擎能明确判断這個地址已经失效,會逐步把它從索引里清掉。软 404 返回的却是 200,等于在说“這個頁面是好的”,只是内容碰巧是空的。信号和事實不一致,麻烦就出在這里。

對抓取来说,這是一個正常頁面;對用戶来说,這是一個死頁面。两者的判断被拆開了,收錄结果自然就會偏离预期。

常见的几種来源

  • 商品下架、内容刪除後,模板照常渲染,只是内容区為空;
  • 站内搜尋、篩選、分頁在無结果时,依然輸出一個空列表頁;
  • 資料库讀取失敗,程序捕获異常後返回“出错了”頁面,狀態碼仍是 200;
  • 栏目改版後舊路径没有做跳轉,直接渲染成一個空壳;
  • 需要登入的頁面,未登入时返回登入提示頁,同样是 200。

為什么值得優先處理

一是它會稀释索引质量。大量空頁混在索引里,同站其他有效頁面的判断也會受影响。二是它會浪費抓取額度,尤其当這些地址通過 sitemap 或站内連結成批暴露时,抓取工具會反复来。三是排查收錄問题时,如果不先把這批頁面摘出去,後面的判断很容易被带偏。

排查顺序

  1. 先核對狀態碼和正文是否一致。抽一批“看起来正常”的 URL,看返回碼,再對比渲染後的正文長度、标题和主要区块是否為空。
  2. 再看這批地址是怎么被發現的。来自 sitemap、内鏈還是外鏈,决定了收口时要改哪一层,只改頁面本身往往不够。
  3. 然後分類。是永久失效、临时無内容,還是内容其實存在但没渲染出来,三類處理方式完全不同。
  4. 最後才决定動作,並同步清掉来源入口。

處理方式按類型選

  • 内容永久不存在:返回 404 或 410,同时從 sitemap 和内鏈里去掉;
  • 内容有替代地址:301 到新地址,一步到位,不要串成多跳;
  • 參數非法但頁面本身有效:回到正常頁面或返回 404,不要让空模板繼續輸出;
  • 需要登入才能看的内容:考虑限制抓取或加 noindex,而不是让它以 200 空頁被收錄。

两個容易忽略的点

第一,监控不要只看 5xx。真正麻烦的往往是狀態碼 200 但正文极短或命中“出错”“無權限”這類模板的頁面,可以按這個條件做告警。

第二,改完不會立刻见效。抓取會先變,索引的清理通常更慢,观察周期要留够,期間別因為看不到變化就反复改配置。

判断标准其實只有一句:頁面返回的狀態碼,要和用戶真正看到的内容一致。不一致的地方,就是問题所在。