搜尋抓取

搜尋蜘蛛抓取:URL 查询參數组合膨胀造成的抓取路径稀释與收敛梳理

站内排序、篩選、追踪類參數會把同一内容分裂成大量可發現地址,稀释抓取预算。本文按日誌形態分布、内鏈暴露核對、canonical 一致性三個顺序梳理排查方法,並给出内鏈規范、Sitemap 收敛、篩選頁限制组合等可落地的處理手段與驗證观察周期。

搜尋抓取

搜尋蜘蛛抓取:URL 查询參數组合膨胀造成的抓取路径稀释與收敛梳理

URL 查询參數在站内很常见:排序、篩選、分頁、追踪、會话标识都會挂在問号後面。對用戶来说這些參數让頁面更灵活,但對搜尋蜘蛛来说,每個參數组合都可能被当成一個新地址。參數一旦可以自由组合,同一條内容會分裂出大量入口,抓取预算被摊薄,真正需要更新的頁面反而被排在後面。

為什么參數组合會被当成新 URL

蜘蛛判断地址是否訪問過,主要依據完整 URL 字串,而不是頁面内容。只要參數顺序、數量、取值不同,就會被记錄成一條新的待抓取連結。如果站点没有给出明确的規范信号,蜘蛛只能按自己的規則去猜,通常结果是保留一部分、丢弃一部分,于是日誌里出現大量抓了但没带来價值的請求。

先分清參數的類型

  • 内容型參數:參數不同,頁面主体内容确實不同,例如商品詳情的關键規格。
  • 排序與视图型:僅改變排列顺序或展示方式,主体内容基本一致。
  • 篩選型:多條件组合,可能产生成百上千種组合。
  • 追踪與會话型:utm、sessionid、from 等,與内容無關。
  • 分頁型:頁碼參數属于正常的抓取路径,需要保留。

分類的目的不是一刀切地屏蔽,而是决定哪些需要被蜘蛛發現,哪些應该收敛到規范地址。

排查顺序

第一步:從日誌看參數形態分布

抽取一段時間的抓取日誌,按路径分组統計带參數的請求占比,再統計參數键名的分布。重点看三類信号:同一路径的參數键超過几十種;參數請求返回 200 但内容高度相似;參數請求占比遠高于無參數請求。這三点同时出現,基本可以确定存在膨胀。

第二步:核對這些參數是否真的被内鏈暴露

日誌里參數 URL 很多,未必是站内連結带来的,也可能是外部引用或歷史遗留。检查頁面源代碼中的連結、Sitemap 中的地址,以及前端脚本動態拼接的地址,確認哪些是主動暴露的入口。只有主動暴露的入口才是可控的。

第三步:检查規范信号是否一致

canonical 标簽、内鏈指向、Sitemap 地址三者應当指向同一個規范 URL。常见問题是指向不一致:canonical 寫的是無參數版本,内鏈却大量带參數,Sitemap 又混入了排序參數。信号互相矛盾时,蜘蛛只能自行取舍,结果往往不可预期。

收敛手段

  1. 内鏈统一指向規范地址:列表頁翻頁、排序入口尽量使用固定且简洁的參數形態,避免层层叠加。
  2. canonical 覆盖參數頁面:排序、视图類頁面统一声明規范地址,避免各自為政。
  3. Sitemap 只放規范 URL:不要把篩選组合寫進 Sitemap,否則等于主動扩大入口。
  4. 谨慎使用 robots 屏蔽:被屏蔽的地址如果仍被内鏈引用,蜘蛛可能记錄但不再抓取,規范信号也無法讀取,判断反而更模糊。優先用 canonical 收敛。
  5. 限制组合數量:篩選頁對無结果组合返回合适响應,避免生成大量空壳地址。
參數處理的判断标准是:這條地址是否承载獨立内容。有獨立内容就保留並規范,没有獨立内容就收敛到主地址。

驗證與持續观察

調整後不要只看一天的資料。以周為單位對比參數請求占比、規范地址的抓取频次,以及新内容的發現速度。如果參數請求下降、規范地址抓取稳定,說明收敛在起作用。若參數請求不降反升,需要回头检查是否有新的入口被放開,例如活動頁批量生成带追踪參數的連結。

參數治理本质上是把被發現的机會集中到少數有價值的地址上,而不是追求抓取總量。抓取预算有限,入口越清晰,重要頁面被及时訪問的概率越高。