搜尋抓取

抓取深度與連結层級:詳情頁离首頁几步的核對方式

搜尋蜘蛛靠連結一跳一跳地發現 URL,跳數越多,深层頁面越容易被排在队列後面。本文說明抓取深度對 URL 發現的影响,介绍用站内爬虫、服務器日誌来源和 Sitemap 對照来核對层級的方法,並给出压缩深度、补充浅层内鏈入口的實用思路。

搜尋抓取

抓取深度與連結层級:詳情頁离首頁几步的核對方式

搜尋蜘蛛發現 URL 的主要方式是顺着頁面上的連結一跳一跳地走。首頁、栏目頁、列表頁、詳情頁,每一跳都算一层。层級越浅,蜘蛛越容易反复经過;层級越深,到達需要走的跳數越多,中間任何一环失效,後面的 URL 就可能長期不被發現。這個跳數通常叫抓取深度,也有工具称為点击深度。它和 Sitemap、推送渠道一样,是决定 URL 發現速度的基础變量。

深度是怎么影响 URL 發現的

蜘蛛抓取首頁时拿到一批連結,抓取這些頁面时再拿到下一批。假设首頁是第一层,那么第二层的 URL 會被優先排队,第三层次之。對于内容量大的站点,深层 URL 往往排在队列後面,加上抓取配額有限,實际被訪問的频率會明顯低于浅层頁面。

更麻烦的是路径單一。如果某個詳情頁只能從「列表頁翻到第 8 頁」或者「先選篩選條件再点排序」才能到達,那么它對蜘蛛来说等于藏了八层。列表頁更新快,舊分頁連結被替換後,這條路径還會断掉。

核對深度的三個入口

站内爬虫:先看结构上的最短路径

用爬虫工具從首頁出發,不要只丢 Sitemap,记錄每個 URL 的层級。重点看三類頁面:詳情頁、栏目聚合頁、标簽或专题頁。把深度按模板分组,統計各模板的最大深度和常见深度。如果重要模板大部分在 5 层以上,就值得調整结构。

抓取日誌:看蜘蛛實际從哪来

服務器日誌里的 referrer 字段,能看出蜘蛛是沿着哪條連結過来的。把日誌中的目标 URL 和来源頁面成對提取,观察同一批詳情頁常见的来源是栏目頁、分頁還是相關推荐。若某個栏目的大量 URL 来源都是深层分頁,說明入口過于單一。

日誌里的来源不總是完整,有些請求 referrer 為空,需要用站内爬虫的结果作為补充,不要只凭一邊下结论。

Sitemap 與内鏈對照

把 Sitemap 中的 URL 數量和内鏈可達的 URL 數量比一比,差距能反映有多少頁面只能靠 Sitemap 被知道。差距大不代表一定有問题,但如果這些頁面長期處于「已發現未抓取」,就要考虑给它們补一條内鏈入口。

深度過大的常见原因

  • 詳情頁只能從翻頁列表進入,首頁和栏目頁没有直接出口。
  • 分類层級太细,三級、四級栏目之下才出現内容列表。
  • 相關推荐、热门榜單只放在詳情頁底部,蜘蛛走到那里已经消耗了不少配額。
  • 面包屑只有文字没有連結,或者連結指向了带參數的地址。
  • 重要頁面被放在需要点击「加载更多」之後,連結在初始 HTML 里不存在。
  • 站内搜尋、篩選參數頁占用了入口,真正的内容頁反而没有被鏈。

把深度压下来的做法

  1. 在首頁或一級栏目頁留出稳定入口,指向更新频繁的列表或聚合頁。
  2. 分類层級尽量控制在三层以内,詳情頁通過列表頁直接可達。
  3. 面包屑做成可点击連結,回到上一級列表,形成多一條浅层路径。
  4. 相關推荐、同栏目热文用静態連結輸出,不要只靠 JS 渲染。
  5. 對确實較深的内容,用专题頁或聚合頁把它們聚到浅层,再鏈回詳情。
  6. Sitemap 作為补充入口保留,但不要把它当成唯一的發現渠道。

別把首頁變成連結墙

压深度的常见誤区,是把几百個連結堆在首頁。連結總量過大,單頁可分得的權重被摊薄,用戶也难以阅讀。更稳的做法是分层:首頁给一級栏目和少量聚合頁,栏目頁给子分類和列表,列表頁给詳情。每一层都控制連結數量,让蜘蛛按层次自然推進。

核對节奏

站点结构改動、模板換版、列表分頁逻辑調整之後,都值得重新跑一次深度核對。把深度分布、日誌来源、抓取覆盖率三组資料放在一起看,比單看某一個指标更能說明問题。發現深层 URL 抓取長期偏少时,先补一條浅层入口,再观察日誌中的變化。