站内連結是蜘蛛走過的一條條路,Sitemap 更像一份清單。清單上寫了地址,不代表路上真的有人走。当某個 URL 只出現在 Sitemap 里,導航、列表頁、正文推荐里都找不到入口,它就變成了一條孤岛。
内鏈孤岛是怎么形成的
孤岛通常不是故意造出来的,多半是流程上的時間差或者结构上的遗漏:
- 新頁面先上线,Sitemap 已经推送,但栏目頁和推荐位還没来得及挂連結。
- 列表頁分頁太深,靠後的頁數几乎没有其他頁面指向。
- 标簽、归档這類自動生成的聚合頁,只在後台存在,前台没有可達路径。
- 舊頁面下线或改路径後,原本指向它的入口被删掉,舊地址還留在 Sitemap 中。
- 内容靠 JS 异步加载,連結在初始 HTML 里看不见。
蜘蛛拿到孤岛 URL 之後會怎样
抓取和索引是两件事。孤岛 URL 通常不會完全不被抓,但抓取的稳定性和复查频率,往往會明顯弱于有内鏈支撑的頁面。
- 發現渠道單一:Sitemap 是主要甚至唯一来源,這條通道一旦断掉,就没有替代路径。
- 缺少連結上下文:没有锚文本、没有来源頁面,蜘蛛只能依赖 URL 本身和頁面内容做判断。
- 抓取優先級偏低:在額度有限时,队列更倾向先處理被多個頁面指向的 URL。
- 复查节奏變慢:頁面更新後缺少站内信号,變化被重新看到的時間會更長。
- 站内關系传递不到:同類内容之間的連結關系無法流向它。
自查:從抓取日誌里找孤岛
日誌是最直接的證據,可以按下面几步做一次筛查:
- 看来源字段:如果某個 URL 的抓取记錄里,来源几乎都是 Sitemap 或者為空,站内頁面极少出現,就值得留意。
- 統計同一 URL 的抓取频次:把有内鏈支撑的頁面和疑似孤岛頁面分组對比,看复查間隔差了多少。
- 人工驗證可達性:從首頁出發,看能不能在两三次点击内走到這個 URL。
- 做一次站内爬取模拟:如果爬虫走遍全站都到不了它,實际抓取路径大概也差不多。
修复的顺序
優先接入有真實流量的入口,而不是随便找几個頁面挂上連結。
- 先在同類内容之間加相關推荐,方向自然,上下文也清楚。
- 把頁面挂進最近的栏目頁或列表頁,同时控制列表分頁的深度。
- 补上面包屑,让层級路径可讀。
- 标簽和归档頁按需保留,没有内容的就清理掉,別让它們制造新的孤岛。
- Sitemap 只放有實际入口的 URL,避免清單越来越長、真正可抓的却不多。
- 老頁面改路径时,舊地址做重定向,同时把站内指向舊地址的連結改成新地址。
不要為了消灭孤岛而乱加連結
内鏈不是越多越好。同一個頁面被几十個頁脚連結反复指向,反而會让蜘蛛在同一批 URL 上打轉,把額度消耗在重复路径上。判断标准很简單:這個連結對用戶有没有用。如果有用,它通常對蜘蛛也有用。
站内連結解决的是“怎么走到”,Sitemap 解决的是“有哪些”。两者重合的部分越扎實,URL 發現的通道就越稳。
一個可以固定下来的检查清單
- 新頁面上线时,同步確認至少一條站内入口。
- 定期比對 Sitemap 覆盖的 URL 與站内連結能到達的 URL,找出差集。
- 關注抓取日誌中来源單一的那批 URL,作為重点观察對象。
- 定期清理既没有内容、也没有入口的聚合頁。