带參數的 URL 在收錄里很容易失控。一個列表頁加上篩選條件、排序方式、會话追踪參數,就能裂變出成百上千個地址。蜘蛛顺着站内連結一路爬下去,索引里出現大量内容相近、價值不高的版本,真正的核心頁面反而被稀释。處理這類問题,顺序比手段更重要。
第一步:把參數按用途分類
不同參數的處置方式不一样,先分類再動作,能避免誤伤。
- 篩選參數:如颜色、價格区間、品牌。有的组合有獨立搜尋需求,有的只是组合爆炸。
- 排序參數:如按價格、销量、上新排序。绝大多數只是同一批内容的顺序變化。
- 追踪參數:如 utm_source、gclid、ref。纯粹用于統計,不應产生獨立頁面。
- 分頁參數:如 page、p。属于列表的浏览路径,需要單獨考虑。
- 會话與临时參數:如 sessionid、随机串。通常每次訪問都不一样。
第二步:判断哪些參數頁有资格進入索引
判断标准可以简單一些:這個參數頁是否提供用戶會主動搜尋的、與主列表不同的内容?
- 能獨立满足搜尋意图的篩選组合(例如“二手手机 128G 國行”),可以考虑保留。
- 只是改變排列顺序、或參數取值组合數量巨大的,一般不需要獨立收錄。
- 追踪參數、會话參數、随机串,一律不该出現在索引里。
注意,判断的是“是否值得收錄”,而不是“蜘蛛會不會来抓”。這两件事经常被混為一谈。
第三步:按從入口到索引的顺序收口
處理顺序建议如下,先减少發現,再清理已有索引。
- 改連結:站内尽可能輸出干净 URL,追踪參數用脚本拼接,而不是寫死在 href 里。
- 收敛入口:篩選组合不要做全量互鏈,控制可点击的组合數量。
- 規范版本:确定每個參數頁對應的規范 URL,用 canonical 指向它。
- 屏蔽抓取:對确定無價值的參數路径,用 robots.txt 挡住抓取。
- 處理已收錄:已经進入索引的 URL,再按下面的方式逐類清理。
几種常见手段的代價
robots.txt 屏蔽
它能阻止抓取,但已经收錄的 URL 不會因此消失,甚至因為無法讀取頁面,蜘蛛拿不到 noindex 信号。适合用在還没被收錄、且确定無價值的路径上。
canonical 指向主版本
适合内容确實高度相似、但有保留價值的參數頁。canonical 是建议而非指令,主版本本身要能正常抓取、内容要更完整,否則可能被忽略。
noindex
适合确定不要出現在索引里的參數頁。前提是頁面允许被抓取,否則标簽讀不到。數量大时,先在少量頁面驗證效果,再批量推進。
核對與驗證
- 用站点日誌確認蜘蛛還在抓哪些參數 URL,抓取频次是否下降。
- 在索引狀態里按參數特征抽查,看規范版本是否被正确選擇。
- 检查站内連結是否真的換成了干净 URL,避免一邊清理一邊繼續制造入口。
- 改完後留出观察周期,索引更新不會立刻完成。
參數 URL 的處理没有统一答案。關键是先分清哪些有獨立價值,再把“减少發現”和“清理索引”分成两步走,別指望一個标簽解决全部問题。