列表頁、分頁連結和篩選參數,是站内 URL 增長最快的几個位置。一個商品列表加上排序、價格区間、品牌、尺碼等條件,很容易组合出成百上千個 URL。蜘蛛顺着這些連結走,抓取次數會被迅速摊薄,真正需要更新的頁面反而等得更久。
路径膨胀通常從哪来
常见来源有這几類:
- 分頁:列表頁翻到第几十頁,内容重复度高,更新频率低。
- 排序參數:同一批结果換一個排序方式,URL 就變一次。
- 篩選组合:多個篩選條件自由叠加,产生大量内容相近的頁面。
- 标簽與归档:标簽頁、日期归档在内容少时會形成空壳。
它們本身不一定有問题。有搜尋需求、有獨立内容的篩選頁,可能值得被抓取。問题在于自動生成、没有维護、内容大量重复的那部分。
蜘蛛會怎么取舍
蜘蛛没有無限预算。它更愿意把時間花在連結位置明顯、层級較浅、歷史更新稳定的 URL 上。如果一個篩選组合只在内頁深處出現,且長期没有内容變化,被抓一次之後往往很久不再回来。
所以路径膨胀的代價不只是多占几個 URL,而是把本来可以给新頁面、更新頁面的抓取次數,分给了大量低價值地址。表現可能是:新文章提交後迟迟不见抓取,老列表頁却被反复訪問。
收敛路径的几種做法
先区分要抓和不用抓
不要一刀切地把所有參數都屏蔽。可以先看日誌和站内搜尋資料:哪些篩選组合真的有用戶訪問、有獨立内容、與其他頁面差异明顯,保留;纯粹為了排序或空结果生成的 URL,考虑在 robots.txt 中屏蔽參數,或让頁面返回合适的 404/410,而不是 200 空頁。
分頁保留,但控制深度
分頁對發現舊内容仍有價值,不必全部砍掉。可以只保留前若干頁的可抓連結,更深的頁碼不再通過連結暴露,或者用加载更多替代無限翻頁。注意分頁頁不要 canonical 到第一頁,那样會让後續頁面的内容失去被抓的理由。
把有價值的入口固定下来
如果某些篩選组合确實有搜尋需求,最好给它們固定的内鏈入口,比如從分類頁或導航中連結過去,而不是只靠參數自動生成。這样蜘蛛看到的是一條稳定路径,而不是随机组合。
Sitemap 只放稳定 URL
Sitemap 适合提交内容稳定、需要持續抓取的頁面。把參數组合、临时排序頁塞進去,反而會稀释清單的作用。分頁頁是否放進 Sitemap,可以根據内容更新情况决定,但不必把所有頁碼都列上。
留意服務器承接能力
參數頁數量多时,蜘蛛集中抓取會给服務器带来額外压力。如果這些頁面查询慢、响應時間長,可能影响同一時間其他 URL 的抓取。把低價值參數挡在抓取之外,也是在减少無谓的服務器消耗。
定期检查調整效果
調整之後,可以看几件事:抓取日誌里參數 URL 的占比是否下降;新内容從發布到首次被抓的間隔是否缩短;返回 200 但内容重复的頁面是否减少。若發現某個篩選頁有稳定流量,再單獨放出来也不迟。
路径收敛的目标不是把所有參數都消灭,而是让蜘蛛把有限的抓取次數用在有内容、有更新、有入口的 URL 上。
分頁和篩選參數本身是正常的站内结构,只要入口清晰、内容有区分、數量可控,就不必過度處理。真正需要警惕的是自動生成、無人维護、内容雷同的那部分 URL,它們最容易让抓取路径失控。