推廣連結、分享按钮、第三方統計常常會在 URL 後面挂一串參數。同一個頁面因此出現了多個地址,如果這些地址都被抓取並進了索引,就會出現内容一样、URL 不同的局面。處理這類問题,第一步不是急着屏蔽,而是先把參數按類型分開。
先把參數分成几類
- 追踪類:utm_source、utm_medium、gclid、fbclid 等,只记錄来源,不改變頁面内容。
- 會话或身份類:sessionid、sid、token、用戶 ID 等,因人而异,内容基本一致。
- 功能類:排序、翻頁、视图切換,如 sort、page、view=list,會改變呈現结果。
- 内容類:真正定位内容的參數,如 ?id=123、?pid=456,去掉參數頁面就不存在。
分類的意义在于:追踪和會话類參數通常不该产生獨立地址;功能類要判断结果頁是否有獨立價值;内容類參數的地址本身就是要收錄的目标。
不改變内容的參數:统一到規范地址
對 utm 這類參數,處理目标是让搜尋引擎把带參與不带參的地址视為同一個頁面。
- 站内連結一律不带追踪參數,尤其是導航、面包屑、正文内鏈和列表頁。
- 在带參數版本上輸出 canonical 指向無參地址;如果無參版本不存在,先让它可訪問。
- 對外投放的連結無法逐一控制,可以接受,但要保證這些地址能正常返回,並且 canonical 正确。
- sitemap 只放規范地址,不要混入带參數的版本。
canonical 是提示而不是命令,所以連結寫法和 sitemap 的一致性同样重要。如果站内到處都在鏈带參地址,canonical 的效力會被削弱。
改變内容的參數:先判断值不值得收
排序、篩選、翻頁參數會产生新的结果頁。這些頁面内容由同一批條目拼出来,容易出現大量近似頁面。判断时可以參考几点:该结果是否有稳定的搜尋需求、是否有用戶會直接分享這個地址、内容是否只是換個顺序。
- 有獨立需求、内容稳定的结果頁,可以保留,並给出清晰的标题和描述。
- 只是顺序不同、内容高度重叠的结果頁,應收敛到一個地址,不要放任各種參數组合被抓。
- 翻頁頁面保留,但要保證列表項本身可以被獨立發現。
落地顺序:從可逆到不可逆
建议按影响范围從小到大處理。先改内鏈和 sitemap,這一步是可逆的;再补 canonical;確認之後才考虑 robots.txt 或 noindex。robots.txt 只是禁止抓取,已经進索引的地址不會因此刪除,而且被屏蔽後頁面上的 canonical 和 noindex 也讀不到。因此對希望保留的地址不要用 robots,對确實不要的頁面優先用 noindex。
參數處理的核心不是“消灭带參數的 URL”,而是让同一份内容只有一個被推荐的主地址,其余地址要么被合並,要么被明确排除。
改完之後看什么
處理不會立刻反映到索引里。之後可以定期查看索引报告和抓取日誌:带參地址的抓取占比是否下降,規范地址是否稳定被抓,canonical 是否被跟随。同时检查服務器有没有因為參數组合過多而产生大量重复抓取。如果日誌里带參地址依然活跃,先回去看内鏈和外鏈,而不是繼續加規則。