先分類:參數不同,處理方式差別很大
判断一個带參數的 URL 要不要收錄,第一步不是决定屏蔽還是放開,而是把參數归類。不同来源的參數,對内容的影响完全不同,混在一起處理通常會導致誤伤。
- 跟踪類:utm_source、gclid、fbclid、spm、ref 等,加與不加,頁面内容一字不差。
- 排序與视图類:?sort=price_asc、?view=grid,内容基本一致,只是顺序或样式變了。
- 篩選類:?color=red&size=40,可能组合出成百上千個结果頁,其中一部分确實有搜尋需求。
- 分頁類:?page=3,属于同一列表的延伸。
- 會话與身份類:?sid=、?sessionid=、?uid=,每個用戶一個地址,几乎必然产生大量重复。
- 語言與地区類:?lang=en,通常和 hreflang 配合使用,属于有明确用途的一類。
跟踪參數:優先級最高的一類
跟踪參數是最容易失控的一類。外鏈、广告、站内分享按钮都可能带上它們,蜘蛛顺着這些連結抓過去,就會看到同一份内容的多個地址。問题不在于某一個參數,而在于規模:如果站内大量連結都带參,抓取预算會被反复消耗在同一批内容上,真正需要更新的頁面反而排到後面。
處理顺序建议:先確認這些带參 URL 現在處于什么狀態——是被抓取了没收錄,還是已经進了索引,還是压根没被發現。狀態不同,手段不同。
- 從服務器日誌或索引报表里捞出带參 URL 的样本,看數量級和抓取频次。
- 检查這些頁面返回的 canonical 指向哪里。如果指向無參數版本,通常問题不大;如果指向自身,索引就會分散。
- 確認無參數版本的 URL 是否稳定、是否可被抓取,這是收敛的前提。
- 再决定手段:站内連結统一去掉跟踪參數,是最干净的做法;需要彻底阻断抓取时用 robots.txt;如果 URL 已经被抓取甚至收錄,用 noindex 让它自己登出更稳妥。
要注意 robots.txt 屏蔽和 noindex 會互相干扰:一旦某個路径被 robots.txt 屏蔽,蜘蛛就看不到该頁面上的 noindex 标簽,已经進索引的頁面可能會長期留在那里,因為没有机會讀到登出信号。
排序與篩選參數:先問有没有搜尋需求
篩選參數不能一刀切。有些组合本身就是用戶的搜尋词,比如“某品牌 某型号 價格”,這類頁面如果内容足够、结果不為空,是可以單獨放開的。判断标准大致有三條:這個组合有没有人搜、生成的结果是否稳定且非空、頁面之間是否存在大量重复的标题與描述。
- 有需求、结果稳定:保留收錄,做好标题描述,让它成為獨立入口。
- 有需求但结果经常為空:優先解决内容問题,空结果頁不宜收錄。
- 纯排序、纯视图切換:一般不需要獨立收錄,用 canonical 归到預設视图即可。
- 组合爆炸型篩選:保留高频组合,其余用 robots.txt 或參數規則收敛。
無论選哪種,站内連結的輸出方式都很關键。如果篩選结果頁之間互相大量連結,蜘蛛會顺着這些連結扩散出去,再好的收敛策略也會被稀释。
分頁參數:預設自指,別急着指向第一頁
分頁 URL 通常是 self-canonical,也就是指向自己。把第二頁、第三頁全部 canonical 到第一頁,會让蜘蛛誤以為後面几頁是重复内容,從而放弃抓取,列表深處的條目就更难被發現。只有当整站确實只保留一個聚合入口时,才考虑向第一頁收敛。
至于第几頁開始不再收錄,可以结合两点看:頁面上的條目是否還有獨立價值,以及這部分内容是否已经被其他路径覆盖。
一套可执行的自查顺序
- 從日誌和索引报表中提取带參 URL,按上面的類別归並,先看總量。
- 對每一類判断:内容是否獨立、是否有搜尋需求、是否會被站内連結反复暴露。
- 選收敛手段——連結层面去掉參數優先,其次是 canonical,再是 noindex,最後才是 robots.txt 屏蔽。
- 同步更新 sitemap,別把准备收敛的带參 URL 繼續提交上去。
- 观察一段時間,重点看抓取分布有没有回到核心頁面上。
几個常见誤区
- 用 robots.txt 屏蔽了參數路径,又在頁面上加 noindex,两個信号互相抵消。
- canonical 指向了一個被屏蔽或不可抓取的 URL,等于给了一個無效建议。
- 認為加上 noindex 就會立刻登出索引,實际還要等蜘蛛重新抓取並讀到标簽。
- 把带參 URL 全量寫進 sitemap,等于主動扩大重复内容的規模。
參數處理的本质不是“要不要”,而是“留哪些、留多少、用什么方式留”。把類別分清楚,再按連結、canonical、noindex、robots.txt 的顺序逐步收敛,通常比一次性大改更容易观察效果,也更少出現誤伤。