搜尋抓取

分頁與篩選參數:蜘蛛抓取时的路径膨胀怎么收敛

列表頁、分頁和篩選參數组合起来,很容易让站内出現大量相似 URL。蜘蛛沿着這些連結抓取时,會把有限的抓取次數分散到低價值頁面上。本文從路径来源、蜘蛛取舍逻辑和收敛做法三方面,說明如何让抓取回到有内容、有更新的 URL 上。

搜尋抓取

分頁與篩選參數:蜘蛛抓取时的路径膨胀怎么收敛

列表頁、分頁連結和篩選參數,是站内 URL 增長最快的几個位置。一個商品列表加上排序、價格区間、品牌、尺碼等條件,很容易组合出成百上千個 URL。蜘蛛顺着這些連結走,抓取次數會被迅速摊薄,真正需要更新的頁面反而等得更久。

路径膨胀通常從哪来

常见来源有這几類:

  • 分頁:列表頁翻到第几十頁,内容重复度高,更新频率低。
  • 排序參數:同一批结果換一個排序方式,URL 就變一次。
  • 篩選组合:多個篩選條件自由叠加,产生大量内容相近的頁面。
  • 标簽與归档:标簽頁、日期归档在内容少时會形成空壳。

它們本身不一定有問题。有搜尋需求、有獨立内容的篩選頁,可能值得被抓取。問题在于自動生成、没有维護、内容大量重复的那部分。

蜘蛛會怎么取舍

蜘蛛没有無限预算。它更愿意把時間花在連結位置明顯、层級較浅、歷史更新稳定的 URL 上。如果一個篩選组合只在内頁深處出現,且長期没有内容變化,被抓一次之後往往很久不再回来。

所以路径膨胀的代價不只是多占几個 URL,而是把本来可以给新頁面、更新頁面的抓取次數,分给了大量低價值地址。表現可能是:新文章提交後迟迟不见抓取,老列表頁却被反复訪問。

收敛路径的几種做法

先区分要抓和不用抓

不要一刀切地把所有參數都屏蔽。可以先看日誌和站内搜尋資料:哪些篩選组合真的有用戶訪問、有獨立内容、與其他頁面差异明顯,保留;纯粹為了排序或空结果生成的 URL,考虑在 robots.txt 中屏蔽參數,或让頁面返回合适的 404/410,而不是 200 空頁。

分頁保留,但控制深度

分頁對發現舊内容仍有價值,不必全部砍掉。可以只保留前若干頁的可抓連結,更深的頁碼不再通過連結暴露,或者用加载更多替代無限翻頁。注意分頁頁不要 canonical 到第一頁,那样會让後續頁面的内容失去被抓的理由。

把有價值的入口固定下来

如果某些篩選组合确實有搜尋需求,最好给它們固定的内鏈入口,比如從分類頁或導航中連結過去,而不是只靠參數自動生成。這样蜘蛛看到的是一條稳定路径,而不是随机组合。

Sitemap 只放稳定 URL

Sitemap 适合提交内容稳定、需要持續抓取的頁面。把參數组合、临时排序頁塞進去,反而會稀释清單的作用。分頁頁是否放進 Sitemap,可以根據内容更新情况决定,但不必把所有頁碼都列上。

留意服務器承接能力

參數頁數量多时,蜘蛛集中抓取會给服務器带来額外压力。如果這些頁面查询慢、响應時間長,可能影响同一時間其他 URL 的抓取。把低價值參數挡在抓取之外,也是在减少無谓的服務器消耗。

定期检查調整效果

調整之後,可以看几件事:抓取日誌里參數 URL 的占比是否下降;新内容從發布到首次被抓的間隔是否缩短;返回 200 但内容重复的頁面是否减少。若發現某個篩選頁有稳定流量,再單獨放出来也不迟。

路径收敛的目标不是把所有參數都消灭,而是让蜘蛛把有限的抓取次數用在有内容、有更新、有入口的 URL 上。

分頁和篩選參數本身是正常的站内结构,只要入口清晰、内容有区分、數量可控,就不必過度處理。真正需要警惕的是自動生成、無人维護、内容雷同的那部分 URL,它們最容易让抓取路径失控。