網站收錄

頁面返回 200 却是空壳:收錄核對时先排查软 404 這類伪正常頁

很多 URL 能正常打開、狀態碼是 200,但頁面實质為空或没有可用内容,這類软 404 常被收錄核對忽略。文章說明哪些模板最容易产生空壳頁、怎样用抽样和模板分组把它們找出来,以及按“這個地址還有没有存在價值”分別用错誤碼、合並或补内容来處理,並提醒不要把渲染問题誤判為软 404。

網站收錄

頁面返回 200 却是空壳:收錄核對时先排查软 404 這類伪正常頁

一個 URL 返回 200、浏览器能正常打開,並不代表它對搜尋引擎来说是一個合格的内容頁。软 404 指的是服務器给出了正常狀態碼,但頁面實质上是空的、错的,或者對用戶没有價值。它既不是明确的 404,也不是一個值得長期保留的頁面,通常先被抓取,再被判断,最後停在“已抓取,尚未编入索引”或“已排除”里。做收錄核對时如果只看狀態碼,很容易漏掉這一類。

先把“能訪問”和“有内容”分開看

抓取、索引、展示是三個不同的环节。软 404 往往能顺利通過抓取,卡在後面两個环节。它的麻烦在于:表面上没有报错,站長平台也不會给你一個醒目的红字,只能靠自己抽查看内容。判断一個地址是不是空壳,看的是正文里有没有可用信息,而不是看它能否打開。

哪些頁面最容易變成空壳

  • 越界分頁:URL 上寫着 page=999,模板照常渲染,但列表為空,只剩導航和頁脚。
  • 站内搜尋结果頁:關鍵詞没有匹配項时仍返回 200,正文只有一句“没有找到相關内容”。
  • 已下架的商品或文章詳情頁:主体内容被删,模板還在,頁面只剩标题、面包屑和推荐位。
  • 參數生成的變体頁:颜色、尺寸、排序方式组合出一個從未有過内容的地址。
  • 需要登入才能看正文的頁面:蜘蛛拿到的是提示语和登入框。
  • 内容极短的聚合頁:只列了几條标题、没有摘要,和其他列表頁高度重复。
  • 靠前端填充的頁面:原始 HTML 里只有骨架,資料要等接口返回才出現。

用几個低成本的方式把它們找出来

  1. 抽样:從索引和抓取日誌里各取一批 URL,用不带 Cookie 的方式請求,看返回的 HTML 里正文部分還有多少可用文字。
  2. 按模板分组統計:同一套模板批量取 50 到 100 個样本,看空壳比例是否集中。集中出現时,往往能一次定位到一個模板。
  3. 看抓取频次與索引狀態的组合:抓得很勤但長期不進索引的模板,值得單獨拉出来對照。
  4. 看日誌里的狀態碼分布:如果某個目錄下几乎全是 200,反而值得警惕,正常站点通常會有一定比例的 404。

處理时按“這個地址還有没有存在價值”来分

没有存在價值的

  • 越界分頁、無结果搜尋頁、無效參數頁,直接返回 404 或 410 更干净。让模板在無内容时明确返回错誤碼,比渲染一個空壳省事得多。
  • 已经彻底下架、也不打算恢复的内容,同样走 404 或 410,不要用 200 挂着。

有存在價值但目前内容不足的

  • 先补内容,再谈收錄。加一段真正有用的說明、把相關條目聚合進来,通常比反复調整 canonical 更有效。
  • 短期补不上、又不想让用戶看到空頁,可以合並到上級頁面,並做 301 指向那個真正有内容的地址。

内容没問题,只是被抓到的部分少

  • 這種情况要和软 404 区分開。判断方法是看原始 HTML 里有没有正文:有,則偏渲染問题;没有,才更接近内容問题。
  • 不要把渲染問题当成软 404 去删頁面,那样容易誤伤本来正常的地址。

几個容易踩的坑

  • 用 noindex 代替 404。noindex 只是不索引,URL 依然可能被反复抓取,長期占用抓取资源。
  • 全站一套 404 模板却返回 200。用戶和蜘蛛看到的一样,但引擎無法靠狀態碼判断,只能退而判断内容,成本更高。
  • 把“内容少”直接等同于软 404。有些頁面确實短,但信息完整、能解决問题,這類不该一刀切。
  • 只看站長平台的匯總报告,不看真實响應。报告有延迟和聚合,抽查原始响應更可信。
處理软 404 的顺序建议是:先確認這個 URL 该不该存在,再决定给错誤碼、做合並還是补内容。顺序反了,容易把本来有用的頁面一起清掉,收錄量看着降了,反而不清楚是清理生效還是誤伤。