參數 URL 為什么會失控
列表頁上的篩選、排序、分頁、追踪參數,單看每一條都不多,但组合起来是乘法關系。颜色 8 種、尺碼 5 種、價格区間 4 段、排序方式 3 種,就已经接近 500 個地址;再叠加来源追踪參數、會话标识,數量還會繼續往上翻。這些地址對搜尋引擎来说都是可發現的 URL,而服務器要為每一次抓取付出响應成本。
問题不在于參數能不能有,而在于它們是否产生了真正獨立的内容頁。如果同一個篩選结果有多個入口、多種參數顺序,本质上只是同一批内容換了件外套。
先把參數分成三類
- 内容型參數:确實决定頁面展示哪一批内容,比如分類、标簽、關鍵詞。這類通常有價值,但要看背後是否有足够多的獨立條目支撑。
- 排序與视图型參數:排序方式、每頁條數、列表或網格切換。它們不改變内容集合,只是換個排法,一般不需要被單獨抓取。
- 追踪型參數:来源、渠道、推廣 ID、會话标识。對爬虫毫無意义,却會成倍增加 URL 數量。
一份自查清單
- 從服務器日誌或抓取統計里導出被訪問的 URL,去掉路径只看參數部分,統計出現频次最高的參數名。
- 找出「參數不同但頁面主体内容相同」的地址,確認它們各自的 canonical 指向哪里。
- 检查站内連結:篩選、排序按钮是普通連結還是脚本交互?頁面上有没有直接輸出带追踪參數的連結?
- 看站点地图里是否混進了篩選结果地址。
- 確認參數顺序是否固定,避免同一篩選结果出現两種先後排列的寫法。
- 检查外鏈和第三方投放落地頁,是否仍在用舊版參數寫法。
几種常见的處理方式
收敛入口
把真正有價值的篩選结果做成少量固定入口,只在几個關键组合上開放,其余组合通過脚本交互完成,不产生新的可抓取地址。入口少了,蜘蛛的注意力才會集中到主列表和内容頁上。
規范與合並
對内容相同的參數頁面,统一 canonical 到主版本,並保持頁面自引用一致;排序、视图類參數如果只是呈現差异,可以考虑归並到主列表頁,不在頁面上以連結形式暴露。
谨慎使用 robots.txt
直接屏蔽整個參數目錄看起来省事,但很容易连带挡掉真正有價值的内容頁,尤其是參數和内容路径混在一起的时候。更稳妥的顺序是:先做站内連結收敛和 canonical,确實無法收敛再考虑屏蔽,並且規則要尽量精确,上线後核對日誌確認没有誤伤。
驗證抓取是否真的收敛
規則上线後不要只看一天的資料。观察两到四周,看日誌里带參數 URL 的抓取占比是否下降、核心頁面被抓次數是否上升。如果參數 URL 依舊稳定出現,多半是站内還有連結在持續輸出這些地址,或者站点地图、外鏈里還留着舊寫法。
參數本身不是問题,無意义地複製頁面才是。判断标准很简單:這個參數有没有让用戶看到不一样的内容。
把這件事当成一次常規巡检就好,不必一次做完。先處理追踪參數,再處理排序與视图,最後评估篩選维度,节奏會稳一些。