搜尋抓取

搜尋蜘蛛抓取:篩選與排序參數造成的入口膨胀與收敛

站点上的篩選、排序、對比等參數化連結,會让搜尋蜘蛛發現的 URL 數量迅速膨胀,抓取次數被分散到大量低價值頁面上。本文從日誌統計入手,說明如何识別參數入口占比,並用 canonical、内鏈指向、robots.txt 與 sitemap 做有取舍的收敛,同时避免誤伤已收錄地址。

搜尋抓取

搜尋蜘蛛抓取:篩選與排序參數造成的入口膨胀與收敛

站点只要带上篩選、排序、對比這類交互,URL 的數量就會以參數组合的方式成倍膨胀。搜尋蜘蛛顺着頁面上的連結一路爬下去,很容易把大量带參數的地址当成彼此獨立的入口,抓取次數被摊薄,真正需要更新的正文頁反而排在後面。下面按“為什么會變多—怎么量化—怎么收敛—怎么观察”的顺序梳理一遍。

參數入口變多的常见来源

  • 排序參數:列表頁加上 sort、order 之類的參數,同一批内容會生成若干套地址,内容完全一致,只是顺序不同。
  • 篩選參數:價格区間、品牌、属性标簽可以多選,组合數量随選項增長呈几何級放大,其中大部分頁面只有一两條结果。
  • 分頁與參數叠加:带篩選條件後再翻頁,參數被逐层累加,同一個詳情頁可能被多條拼装路径指向。
  • 追踪參數:推廣連結、站内推荐位自带的 utm、ref、from 等參數,如果被站内連結直接複製使用,會額外造出一批入口。

這些地址本身未必有错,問题在于它們大多内容重复、更新极少,却和核心内容共享同一份抓取額度。

先用日誌量化參數入口占比

動手改结构之前,建议從訪問日誌里拿到几個數字,避免凭感觉下判断:

  1. 統計蜘蛛請求中带問号參數的 URL 占比,以及這批請求落在多少個不同的參數名上。
  2. 按參數名分组,看哪些參數被抓取的次數遠高于其内容價值,例如纯排序參數。
  3. 對比參數頁與無參主版本的抓取比例,判断抓取重心是否已经偏向參數頁。
  4. 抽样查看參數頁返回的狀態碼與响應体积,確認是否存在大量近似重复的响應体。

如果带參 URL 的抓取占比明顯高于它實际带来的價值,就可以進入收敛环节。

收敛手段與取舍

canonical 與内鏈指向

參數頁可以保留可用,但對多套排序、篩選结果统一用 canonical 指回無參主版本;站内連結尽量只暴露主版本,排序、篩選按钮改成点击後再生成參數,而不是在 HTML 里直接铺满連結标簽。這样既保住功能,也减少入口數量。

robots.txt 要慎用

直接屏蔽某個參數看似干脆,但 robots.txt 只约束抓取、不约束收錄。若某個带參地址已经被收錄,屏蔽後蜘蛛無法讀取頁面上的 canonical,反而可能長期留存舊快照。對已收錄的地址,優先考虑返回 301 到主版本或补充 noindex,而不是简單堵住。

sitemap 只放主版本

站点地图里只列出無參的規范地址,把參數頁交给内鏈自然發現。让 sitemap 與内鏈给出同一套地址,抓取路径會更集中。

观察收敛效果

調整後不要立刻下结论,抓取节奏的變化通常需要數周。可以按周對比几個指标:带參 URL 的抓取請求數、主版本頁面的抓取次數、日誌中重复路径的條數。若带參抓取占比下降而主版本上升,方向基本正确;若主版本没有變化,則要回头检查 canonical 是否被正确讀取、内鏈是否真的只指向主版本。

參數收敛的目标不是让蜘蛛少抓,而是让有限的抓取次數落在内容會變、值得被更新的地址上。任何屏蔽動作之前,先確認目标地址是否已经被收錄,避免把入口和退路一起關掉。

另一條稳妥的路径是把參數治理纳入日常發布检查:新增篩選或排序功能时,同步確認 canonical、内鏈與 sitemap 的表現,减少入口膨胀在後期才被發現的情况。