投放蜘蛛池时,很多人直接把浏览器地址栏里的連結複製到入口頁,里面常常带着 utm_source、spm、sort、filter、sid 這類參數。對用戶来说,這些參數只是訪問路径的差异;對搜尋蜘蛛来说,它們可能被当成不同的 URL。结果是同一份内容出現多個地址,URL 發現和抓取被分散。
要不要在投放前處理參數,不能一概而论,先看參數属于哪一類。
先分清三類常见的 URL 參數
1. 跟踪與营销參數
utm_*、gclid、fbclid、spm、from 這類參數通常只用于統計来源,不影响頁面内容。同一個頁面加不同跟踪參數,内容完全一样。這類參數建议在投放前去掉,投放干净的地址。
2. 排序、篩選和分頁參數
sort、order、filter、price_range、page 這類參數會改變頁面上展示的内容组合,可能生成大量排列组合。例如“颜色+尺碼+排序”就能组合出几百個地址。這類頁面不是完全没價值,但要控制數量,並且明确哪個版本是主要入口。
3. 會话與身份參數
sid、sessionid、token、uid 這類參數往往每個用戶不同,甚至每次訪問都變。對搜尋蜘蛛来说,這類地址几乎無法稳定抓取,也不适合作為投放目标。投放前應尽量去掉,或让服務器對蜘蛛返回不带會话參數的版本。
參數不處理,會带来哪些實际問题
- 同一内容對應多個 URL,抓取請求被拆散,單個地址得到的抓取次數變少。
- 组合參數頁會占用抓取预算,让真正需要發現的新 URL 排队更久。
- 日誌分析變难,你很难判断蜘蛛到底抓的是哪個版本。
- 如果參數頁和主版本同时可訪問,canonical 寫错或缺失时,可能出現版本互相竞争。
- 带會话 ID 的地址被大量抓取,容易产生重复請求甚至触發風控。
抓取资源是有限的。參數頁越多,單個目标 URL 能分到的抓取机會就越少,這不是單纯增加投放量能解决的問题。
投放前可以做的几步處理
- 只保留必要參數。打開目标頁,把跟踪參數和會话參數删掉,確認内容仍然正常,再把干净地址寫進入口頁。
- 確認 canonical 指向。如果目标頁有多個參數版本,頁面上的 canonical 應指向你希望被采用的版本,投放时就填這個版本,避免填 canonical 之外的地址。
- 用 robots.txt 挡明顯無意义的參數。例如只带 sid 的地址,可以用規則挡掉。但要注意,robots.txt 只控制抓取,不控制索引;重要頁面不要只靠它来去重。
- 控制篩選頁的组合數量。能静態化就静態化;不能静態化时,限制可選的篩選項,或者對低價值组合使用 noindex,follow,並保證主列表可被抓取。
- 入口頁連結直接指向最终地址。不要先跳到带參數的中間地址,也不要鏈到带 # 锚点的地址——锚点部分不會發送给服務器。
哪些參數可以保留
- 參數决定頁面内容,例如商品 ID、文章 ID、語言版本。
- 參數是頁面唯一区分方式,去掉後無法定位内容。
- 參數數量少、组合稳定,且服務器能稳定返回同一版本。
這類地址本身就是有效的目标 URL,不需要為了看起来干净而强行改寫。
投放後怎么检查參數有没有造成浪費
投放一段時間後,可以從几個地方回看:
- 看服務器日誌中搜尋蜘蛛請求的地址,統計带參數版本和干净版本的比例。
- 抽查入口頁里連結的可訪問性,確認返回 200,没有跳轉到登入頁或错誤頁。
- 抽查目标頁的 canonical 和 meta robots,確認和你投放的意图一致。
- 對比處理參數前後,同一批目标 URL 的抓取频次和狀態碼變化。
如果發現大量抓取集中在無意义的參數版本上,優先回到入口頁和站点規則上調整,而不是繼續增加投放量。
两個常见誤区
誤区一:用 robots.txt 屏蔽參數就等于不索引。被 robots.txt 挡住的 URL 仍可能出現在搜尋结果里,只是没有摘要。真正重要的頁面,應该用 canonical 或 noindex 明确表達意图,而不是只靠屏蔽抓取。
誤区二:把所有參數都去掉。有些頁面的參數就是内容的一部分,去掉後用戶看不到對應信息,蜘蛛抓到的也不是你想要推廣的版本。處理參數的目标是减少重复,不是把頁面改坏。
简單说,投放前先判断參數類型:跟踪參數和會话參數尽量去掉,篩選分頁參數控制數量並明确主版本,内容型參數可以保留。把這一步做完再投放,URL 發現會更集中,抓取日誌也更容易看懂。