搜尋抓取

点击深度與抓取覆盖:内鏈层級如何影响 URL 的發現顺序

点击深度决定了蜘蛛從入口走到某個頁面需要几步。层級過深、枢纽頁响應不稳、列表分頁依赖脚本,都會让 URL 長期停留在未發現狀態。本文說明点击深度的核對方法,包括最短路径抽样、抓取日誌交叉驗證、枢纽頁响應检查,以及用聚合頁、真實分頁連結和 Sitemap 兜底降低有效深度的具体做法。

搜尋抓取

点击深度與抓取覆盖:内鏈层級如何影响 URL 的發現顺序

站点的 URL 能不能被抓到,很多时候不取决于它寫得多好,而取决于蜘蛛能不能沿着連結走到它。蜘蛛没有站点地图之外的“全局视野”,它從一個或几個入口出發,沿着頁面里的連結一层层往下走。层級越浅的頁面,越容易在早期被訪問到;层級越深的頁面,往往在抓取节奏放缓时被排到後面,甚至長期停留在未發現狀態。

点击深度到底是什么

点击深度指從站点入口(通常是首頁)出發,到達某個頁面所需经過的最少連結跳數。首頁算第 0 层,首頁直接鏈出的頁面是第 1 层,再往下是第 2 层,以此類推。核對时不要凭分類树的直觉判断,而要用工具或脚本實际爬一遍,按“最短路径”統計,因為同一個頁面往往有多個入口,只要有任意一條短路径存在,它就不算深层頁面。

深层頁面為什么容易被漏掉

  • 抓取节奏限制:蜘蛛對單個站点單位時間内的抓取量有大致上限,深层頁面排在队列後面,遇到预算收紧时最先被砍掉。
  • 中間环节失效:第 2 层某個列表頁如果返回 404、5xx 或長期超时,第 3 层之後的所有頁面在這一次抓取中都會断鏈。
  • 連結可發現性問题:依赖点击展開、标簽頁切換、滚動加载才出現的連結,在首屏 HTML 里根本不存在,蜘蛛自然走不過去。
  • 分頁與篩選參數:列表頁翻頁如果只靠脚本拼接,翻到第 5 頁之後的詳情頁就失去了内鏈入口。

几種常见的核對方法

按最短路径抽样

挑選若干目标 URL(比如近期新增的内容頁、商品頁),用站点爬虫工具從首頁出發,记錄每個 URL 的發現层級。重点看两類頁面:层級大于 3 的核心内容頁,以及只能從 Sitemap 發現、内鏈里找不到的頁面。

用抓取日誌交叉驗證

把服務器日誌里蜘蛛的實际訪問记錄,和理想的层級表做對比。如果某個第 2 层的頁面在最近一個周期内完全没有蜘蛛訪問记錄,說明問题不在深度,而在入口本身——它可能没有被任何上层頁面連結到,或者連結被 robots.txt 拦截、被 nofollow 标注。

看入口頁的响應质量

层級統計只解决“能不能走到”,不解决“走得到多少次”。如果承载大量連結的分類頁、列表頁首字节時間很長,蜘蛛每次抓取都要等,單位時間内能走的路就變少。核對时可以抽查這些枢纽頁的响應時間、狀態碼分布,確認没有大量 5xx 或超时。

降低有效深度的常见做法

  1. 给核心頁面补一條短路径:在首頁或频道頁的推荐位、相關阅讀、热门聚合里加一條直達連結,比把分類树整体砍掉一层更可行。
  2. 善用聚合與标簽頁:按主题、時間、热度做聚合列表,让内容頁多一條第 2 层的入口,但注意聚合頁本身要有明确規則,避免生成大量近似頁面。
  3. 分頁連結用真實 URL:翻頁尽量是可抓取的 a 标簽連結,而不是纯 JS 事件,保證爬到第 N 頁之後仍能繼續發現。
  4. 用 Sitemap 兜底:Sitemap 不是替代内鏈的手段,但對深层、更新频繁的頁面,可以作為發現渠道的补充,注意提交时的 lastmod 要與實际更新時間一致。
内鏈决定蜘蛛能不能走到,服務器响應决定它愿不愿意繼續走。两者缺一,深层頁面都很难稳定進入抓取队列。

核對清單

  • 核心内容頁的最短点击深度是否控制在 3 层以内;
  • 是否存在只能靠 Sitemap 發現、内鏈為零的頁面;
  • 枢纽列表頁、分頁面的狀態碼與响應時間是否稳定;
  • 登入墙、懒加载、点击展開是否遮挡了關键連結;
  • 新增内容上线後,是否第一時間從入口頁获得一條連結。

点击深度不是一次調完就結束的指标。站点结构、模板改版、列表分頁策略變化都會悄悄把頁面推向更深的位置,定期抽样核對比一次性優化更有價值。也不要指望某個操作能立刻带来收錄變化,抓取行為本身受站点整体质量與蜘蛛調度策略共同影响,能做的是把可訪問路径铺平、把响應做稳。