站点里總有一些 URL,頁面质量不差,日誌里也能看到被抓取過几次,但入口只有站外的零星引用或者一份 Sitemap 记錄。這類没有被站内任何頁面連結指向的 URL,通常被称為孤岛頁面。它們不是打不開,而是蜘蛛缺少一條稳定、可重复走到的路径。
孤岛頁面是怎么出現的
多數孤岛不是故意造出来的,而是站点演進中留下的副产品:
- 栏目改版时舊内鏈被删掉,頁面本体却還保留着。
- 篩選、排序、分頁等參數组合生成的 URL,只存在于用戶的操作路径里。
- 批量導入商品或文章时只寫進了資料库和 Sitemap,没有分配導航入口。
- 活動頁下线後只撤了入口,頁面本身没做任何處理。
- 父子栏目结构調整,子頁面的連結没跟着迁移。
它們的共同特征是:頁面可達,但入口不可重复。蜘蛛這一次可能靠外鏈或 Sitemap 走進来,下一次未必還能走到。
先把孤岛找出来
靠感觉判断容易漏。比較稳妥的做法是用集合求差:
- 導出一份站内内鏈可達的 URL 集合,方式是從首頁出發爬一遍,或用站内爬虫工具跑一遍。
- 分別導出 Sitemap 中的 URL 集合,以及日誌里近 30 天有抓取记錄的 URL 集合。
- 用 Sitemap 集合或日誌集合减去内鏈可達集合,差集就是候選孤岛。
- 再排除 robots.txt 屏蔽、功能性頁面和必须保留的參數頁,剩下的才需要處理。
如果站点規模不大,直接從日誌里找「有抓取、看不出入口」的 URL 也够用。
Sitemap 可以是桥,但不是長期方案
Sitemap 能告诉蜘蛛“這個 URL 存在”,却很难告诉蜘蛛“這個 URL 在站点里處于什么位置”。缺少内鏈的頁面,往往也缺少上下文和權重传递。
把 URL 塞進 Sitemap 之後确實更容易被發現,很多站点因此長期依赖這一條路径。問题在于 Sitemap 只解决發現問题,不解决頁面之間的關系。当站点變大、Sitemap 分片增多以後,只有 Sitemap 入口的頁面,抓取優先級通常排在靠後的位置。
把孤岛接回主路径
處理方式要按頁面價值分档,並不是所有孤岛都值得保留。
值得保留的頁面
- 從最相關的父級栏目或聚合頁加一條内鏈,位置放在正文或列表区,而不是頁脚堆砌。
- 如果是成批的相似頁面,比如型号頁、地区頁,先建一個索引頁统一收口,再由索引頁鏈向明细頁。
- 跨栏目做两三條上下文相關的互鏈,通常比在頁面底部加一堆“相關阅讀”更有效。
不值得保留的頁面
- 内容重复、由參數生成的變体,用 canonical 或 robots 規則處理,避免繼續分散抓取。
- 已下线的活動頁、失效商品頁,301 到最接近的替代頁,或返回 410 明确告知已刪除。
- 空壳頁、占位頁直接删掉,不要留着让它被反复尝试抓取。
以後怎么少产生孤岛
- 新增内容时同步確認入口,把“是否存在内鏈入口”寫進發布检查清單。
- 下线頁面时顺序反過来:先撤内鏈,再决定 301、410 還是保留。
- 改版迁移时把舊路径的入口關系一並梳理,不要只改連結地址。
- 每隔一段時間跑一次内鏈可達性巡检,把新增的孤岛记錄下来。
孤岛頁面的問题很难一次修完,它更像一條需要持續维護的线:只要站点還在改版、上架、下线,就還會有頁面掉出主路径。定期检查内鏈可達性,比事後翻日誌反复猜测要省力得多。