站点上线了一批頁面,抓取日誌里也能看到蜘蛛来過,但等了一段時間,索引里始终没有它們。查狀態碼是 200,頁面也能正常打開,問题往往不在抓取權限,而在于這些頁面被当成了软 404。
软 404 是什么
服務器返回的是 200,頁面也能打開,但頁面主体没有與该 URL 主题相符的内容——只有導航、頁脚和一句“暂無结果”或“内容已下架”。搜尋引擎無法從中提取到有效信息,就會把它归類為软 404,按實际不存在的頁面處理。
它和真 404 的区別在狀態碼:真 404 是明确告诉搜尋引擎“這里没有東西”,软 404 是嘴上说正常、實际是空壳。對抓取来说没有报错,對索引来说同样没有價值。
為什么它比直接 404 更容易被忽略
返回 404 的頁面會在工具里清楚报错,运维和編輯都能注意到。软 404 不报错,頁面看起来正常,很容易被当成“抓取還没轮到”或者“新頁面還在考察期”,于是一直等下去。
抓取次數多、狀態碼正常,都不等于内容合格。收錄的前提是系統判断這個 URL 值得留在索引里。
哪些頁面最容易踩到
- 站内搜尋的無结果頁,以及两個互相冲突的篩選條件组合出来的空结果頁
- 商品下架、文章刪除後仍保留的詳情頁,模板還在,主体已经空了
- 分類頁叠加篩選後没有符合條件的内容
- 列表頁翻到超出實际范围的頁碼
- 依赖前端渲染、但渲染失敗或還没渲染完就被抓取的頁面
- 只寫了“即將上线”“敬請期待”的占位頁
自查顺序
- 直接打開頁面,確認主体区域是否有與该 URL 主题一致的内容,而不是只有顶部和底部有文字
- 检查狀態碼和响應头,区分真 404、410 和 200 空頁
- 用抓取工具查看渲染完成後的 HTML,別只看初始源碼,JS 頁面尤其要看渲染结果
- 在覆盖率類报告里找软 404 分類,看被归進去的 URL 有没有共同特征
- 抽样一批“已抓取未收錄”的 URL,逐個人工打開,往往能發現是同一類模板的問题
分情况處理
頁面确實已经不存在
该给 410 就给 410,或者 301 到最相關的替代頁面。繼續返回 200 空壳,只會让這個 URL 反复被抓、反复不收錄。
篩選组合、翻頁越界這類參數頁
這類 URL 理论上可以無限生成,正确做法是從入口上限制,比如冲突的篩選组合不给可点击連結、翻頁超出范围就返回 404 或跳回第一頁。只靠 noindex 收口,URL 還是會被發現和抓取。
暂时為空、以後會有内容
先不要放出来,或者先加 noindex,等内容补齐再去掉。空着等收錄,大概率是白等。
必须登入才能看到内容
對搜尋引擎来说等同于空頁。需要被索引的部分,要么提供可公開訪問的替代頁,要么就接受它進不了索引。
別把正常頁面誤伤
判断标准是主体内容是否與頁面主题相符,不是字數多少。一篇信息完整、說明清楚的短頁面不属于软 404;反過来,堆满模板文字、核心信息全無的頁面,字再多也救不回来。
小结
遇到“抓取了但不收錄”,先別急着怀疑蜘蛛和抓取频率,打開頁面看一眼主体。返回 200 的空壳頁面,要么把它做成有内容的頁面,要么明确告诉搜尋引擎它不存在,而不是繼續放在那里等。