站点里常有一類頁面:地址存在、服務器能返回 200、内容也是真的,但從首頁出發,顺着任何一條可见連結都走不到它。蜘蛛只能靠站外連結或 Sitemap 偶尔碰见,抓取频次低,内容更新也長期無人問津。這類頁面通常被称為孤岛頁面,它属于抓取路径上的死角,而不是内容本身有問题。
孤岛頁面是怎么产生的
大部分孤岛不是有意做出来的,而是在改版、下架、上线的過程中慢慢漏掉入口。
- 列表入口被撤掉,詳情頁還在。調整栏目、隐藏某個分類时没有刪除頁面,也没有做 301 或 noindex,于是它只剩下一個地址。
- 連結靠脚本生成。如果列表内容依赖前端渲染,蜘蛛第一次拿到的 HTML 里可能没有可跟随的 a 标簽,頁面就成了看不见的节点。
- 只躺在 Sitemap 里。Sitemap 能告诉蜘蛛地址存在,但不等于给它一條站内路径。只靠 Sitemap 的頁面,抓取優先級和更新频率通常都偏低。
- 分頁被截断。列表只保留前几頁連結,或者用“加载更多”替代翻頁連結,第五頁之後的内容就失去了入口。
- 站内搜尋與篩選组合出的地址。這些頁面大多只對当次訪問有效,没有内鏈指向,也不适合作為正式入口。
怎么把孤岛找出来
排查思路不复杂:把“蜘蛛抓到的 URL”和“站内能走到的 URL”放在一起對照,差集就是重点。
- 從服務器日誌里筛出蜘蛛訪問的 URL,去重後得到一份抓取清單。
- 用抓取工具從首頁出發,按可跟随連結爬一遍,得到一份内鏈可達清單。
- 两份清單做差:日誌里有、站内走不到的,基本就是孤岛。
- 再核對這些 URL 的返回狀態:该保留的补入口,该合並的做 301,该退场的返回 404 或 410。
如果站点規模不大,也可以反過来看:在後台導出全部已發布 URL,逐個检查它是否至少被一個可抓取的頁面連結引用過。没有引用来源的,都值得复查。
把入口补回去
- 补内鏈是最直接的方式。在相關的分類頁、专题頁、正文相關推荐里加上指向它的連結,锚文本寫清楚頁面讲的是什么。
- 用面包屑和上下級連結建立位置感。让頁面知道自己挂在哪個栏目下,也让蜘蛛顺着栏目往回走。
- 分頁連結保持可抓取。不一定要全部展開,但至少保證從第一頁能连到後續頁面,別只留一個“加载更多”。
- 失效入口要善後。下架頁面不要只把連結删掉,改 301 到最接近的新頁面,或者明确返回 404、410。
- Sitemap 作為兜底。它可以补上少量重要但内鏈不足的地址,但不建议用它来替代整站的内鏈结构。
Sitemap 提供的是地址清單,内鏈提供的是路径。蜘蛛更愿意沿着路径走,而不是每次都從清單里翻。
日常维護的检查习惯
孤岛是動態产生的:每次改版、每次下架、每次調整導航,都可能新增几個。比較省事的做法是把检查固定成习惯——上线新栏目时確認入口存在,下架内容时確認返回狀態,改版後重新跑一遍内鏈對照。這样抓取路径不會因為一次調整就被切断,站点也不會悄悄攒下一堆没人走得到的頁面。