搜尋抓取

Sitemap 里有、内鏈里没有:孤岛頁面靠什么被蜘蛛發現

有些頁面在 Sitemap 里列着,站内却没有任何連結指向它。本文說明蜘蛛發現 URL 的几種入口、孤岛頁面的常见成因,以及如何用服務器日誌判断是否真的被抓取,並给出把這類頁面接回站内主干的具体做法。

搜尋抓取

Sitemap 里有、内鏈里没有:孤岛頁面靠什么被蜘蛛發現

做站点运营的人常會遇到一種情况:某個頁面在 Sitemap 里列着,URL 也能直接打開,但站内翻遍導航和列表都找不到通往它的連結。這類頁面在抓取语境里常被称為「孤岛頁面」。它能不能被蜘蛛發現,取决于蜘蛛是否把 Sitemap 当作可信的發現入口,以及這個地址本身是否值得再抓一次。

蜘蛛發現 URL 的主要入口

蜘蛛不是凭空知道地址的,它需要一個来源。常见的有几類:

  • 内鏈:從已抓取的頁面顺着連結走到新頁面,這是最稳定、也自带上下文的一條路径。
  • Sitemap:站点主動提交的 URL 清單,相当于一份目錄,蜘蛛可以按表抓取。
  • 外鏈與主動提交:其他站点指向你的連結,以及在搜尋平台手動提交的單個地址。
  • 跳轉與規范化:重定向、canonical 指向的地址,也可能成為發現来源。

孤岛頁面切断了第一條,只能依赖剩下的路径。Sitemap 是一條有效路径,但它只告诉蜘蛛「這里有個地址」,並不告诉蜘蛛「這個地址有多重要」。

孤岛頁面是怎么产生的

多數孤岛不是有意做出来的,而是站点演進留下的结果:

  • 改版时删掉了舊入口,頁面本身却還保留着;
  • CMS 自動生成的标簽頁、归档頁、作者頁,没有放進任何導航;
  • 批量生成的詳情頁先發了 Sitemap,内鏈還来不及补;
  • 只在篩選、排序等交互中出現,無法人工构造抓取路径的頁面。

這類頁面往往數量不少,积累起来會挤占抓取资源,在日誌里也常表現為抓取很散、深度很浅。

Sitemap 能做什么,不能做什么

Sitemap 的價值在于补充發現:当内鏈路径太深或已经断開,它能把地址直接送到蜘蛛面前。维護好 lastmod 有助于蜘蛛判断某個地址是否需要重新抓取,但這並不等于收錄承诺。如果 Sitemap 里長期堆着大量重复、參數化或低质量地址,蜘蛛對這個文件的信任度會下降,抓取节奏也可能趋于保守。

另一個常见誤区是把 Sitemap 当成唯一的發現方式。只靠 Sitemap、不给内鏈的頁面,即使被抓到,也很难從站内获得稳定的再抓取信号——頁面更新了,却没有任何入口提醒蜘蛛回来看。

怎么確認孤岛頁面是否被抓

  • 查服務器日誌:搜對應的 URL 路径,確認是否有蜘蛛 UA 的請求,以及返回碼是 200 還是 3xx、4xx。
  • 統計内鏈數:把站内連結抓取一遍,找出指向數為 0 的地址。
  • 区分「没抓」和「抓了没收錄」:這是两個問题,前者要修發現路径,後者要看内容质量與規范化設定。

日誌里也要留意抓取的時間分布。孤岛頁面如果只在 Sitemap 更新後才偶尔被訪問,說明抓取兴趣有限,此时补内鏈通常比反复提交更有效。

把孤岛接回主干的思路

  1. 在相關的内容頁里补自然内鏈,锚文本寫清楚目标頁的主题,不要用「点击這里」。
  2. 让列表頁、聚合頁或分類頁收錄這些地址,给它們一個稳定的上一层。
  3. 检查面包屑和相關推荐位,確認從首頁到目标頁有一條走得通的路径。
  4. Sitemap 繼續保留,並让其中的 lastmod 與頁面真實更新時間保持一致。
  5. 如果頁面确實没有保留價值,考虑合並、重定向或設定 noindex,而不是让它以孤岛形式占着抓取预算。

小结

URL 發現是一條鏈:入口、路径、抓取、再抓取。Sitemap 能补上入口,却补不上路径和上下文。想让孤岛頁面被稳定抓取,最终還是要回到最基础的一件事——给它一條從站内走得通的連結。

孤岛頁面不是抓不到,而是缺少被反复抓的理由。内鏈提供路径,Sitemap 提供目錄,两者同时存在时,抓取才更稳定。