列表頁、商品頁、文章列表一旦带上參數,一個頁面很容易裂變成几十上百個 URL。它們内容高度相似,只是排序不同、篩選條件不同,或者只是多了一串追踪碼。這些 URL 被大量抓取和索引,會稀释頁面本身的质量信号,也让蜘蛛把時間花在重复頁面上。
先按“參數是否改變頁面内容”分類
- 完全不影响内容:utm_source、gclid、sessionid、ref 之類。同一篇文章加不加這些參數,正文一個字都不差。
- 影响内容但只是顺序變化:?sort=price、?order=asc、?view=list。内容集合一致,只是排列方式不同。
- 真正改變内容集合:?color=red、?price=100-200、?page=2。頁面呈現的條目确實不同。
三類參數的處置方式完全不同。混在一起處理,要么放過一堆重复頁,要么誤杀了本来有價值的頁面。
不影响内容的參數:從源头就不要产生連結
追踪參數常常是投放或分享工具自動加的。站内所有連結應该只輸出不带追踪參數的規范版本,追踪參數只在跳轉和統計环节拼接。站外鏈来的带參 URL 無法控制,可以交给 canonical 處理——頁面寫一個指向無參數版本的自引用 canonical,让搜尋引擎把两個版本归並。
這里有個常见誤区:既在 robots.txt 里 Disallow 掉带參數的路径,又指望 canonical 生效。蜘蛛抓不到頁面,就讀不到頁面里的 canonical,這两個手段通常只能選一個用。
只改顺序的參數:归並到預設排序
?sort=、?order=、?view= 這類參數,頁面内容一致,只是排列不同,一般不值得各占一個索引位。做法是把預設排序设為規范版本,其他排序版本 canonical 指向預設版本;如果參數是頁面上由用戶点击产生的,也可以不生成可抓取的連結,用按钮或表單提交代替 a 标簽。
早些年搜尋引擎提供過參數處理工具,可以手動指定某個參數的作用,現在這類工具基本下线,實际能依赖的還是 canonical、robots.txt 和連結本身。
真的會筛出不同内容的參數:再决定收不收
颜色、尺寸、價格区間、地区這類參數,展示的條目确實不同。但它們组合起来是指數級的:颜色 × 尺寸 × 價格段,几百個變体很常见。判断标准不在于“内容是否不同”,而在于“這個组合有没有獨立搜尋需求”。用戶會搜“红色连衣裙”這類較宽的词,搜“红色 27 碼 300 到 400 元”的可能性极低。
有獨立需求的少數组合,可以做成固定路径的静態頁,例如 /dress/red/,放進導航或聚合入口;其余组合只作為站内篩選功能存在,用 canonical 指向最近的上級頁面,或者干脆不在 HTML 里生成連結。
分頁參數單獨看
?page=2 後面的是真實内容,和排序參數不是一回事。翻頁 URL 要不要進索引,取决于列表頁本身的價值。如果列表頁只是通往詳情頁的過道,翻頁留在索引里意义有限;但也不要粗暴 Disallow,否則詳情頁的發現路径可能被切断。
内鏈是參數問题的源头
大部分參數 URL 被大量抓取,不是因為外鏈,而是因為站内連結輸出不規范:篩選组件、排序按钮、分頁器、面包屑各自生成了带參連結。清理參數 URL,第一步應该是查模板层,把所有連結统一輸出成規范形式。參數只用于前端交互,不進入可抓取的 href。
怎么確認處理有没有生效
- 在抓取統計里看带參 URL 的抓取占比,是否随時間下降。
- 用站内搜尋或 URL 检查類工具抽查几個典型參數 URL,看索引里認的規范版本是哪一個。
- 看蜘蛛日誌中命中參數路径的請求量,判断是不是還有模板在漏連結。
參數處理很难一次到位。改完模板後通常要等蜘蛛重新抓一轮才能看到變化,期間舊的參數 URL 仍可能出現在索引中,這属于正常過程,不必急着反复調整。