打開索引报告,發現收錄里混着一堆带 ? 的地址,多數情况下不是搜尋引擎擅自抓的,而是站点自己把這些連結递到了蜘蛛面前:商品篩選、排序切換、分享按钮带的 utm、站内搜尋结果頁,以及被自動生成的 sitemap 里带出的參數版本。
參數 URL 本身不是错誤,問题在于它們通常指向與主版本高度相似的内容,一旦成規模被收錄,會占掉索引里的位置,也會分散内鏈權重和抓取額度。
先分清楚是哪一類參數
- 跟踪參數:utm_source、gclid、from、spm 之類。它們不改變頁面内容,只记錄来源,正常情况下不應该出現在任何可抓取連結里。
- 排序與视图參數:sort=price、view=list、page=2。内容基本一致,只是排列或展示方式不同,多數不需要單獨收錄。
- 篩選參數:color=red、size=40。這類可能真的组合出有搜尋需求的新頁面,但也很容易生成成千上萬個低质组合。
先改連結,再改标簽
很多人的第一反應是给參數頁加 noindex。但如果頁面上仍然有大量指向參數版本的内部連結,蜘蛛還是會持續發現並抓取它們,只是抓完不收錄,白白消耗抓取額度。更省事的顺序是:
- 把跟踪參數從站内所有連結中移除,分享連結在跳轉时清理。
- 篩選、排序、视图狀態尽量用前端狀態儲存,URL 保持不變;如果做不到,就让參數顺序固定、預設值不出現在 URL 里。
- 確認 sitemap 只包含規范版本,不带任何跟踪參數。
canonical 的用法與邊界
對于确實需要可訪問、但不需要單獨收錄的參數頁,常见做法是让參數頁自身指向無參數的規范版本,規范版本保持自指。有两点要注意:
- canonical 是建议而非指令。如果两個版本内容差异明顯,或者站内大量連結指向參數版本,搜尋引擎可能選擇保留參數版本。
- 用 robots.txt 的 Disallow 屏蔽參數路径,會阻止蜘蛛讀取頁面里的 canonical 和 noindex,反而可能让 URL 以無摘要的形式留在索引里。要屏蔽抓取,先確認這些 URL 没有被外部連結指向。
能獨立成頁的篩選组合,值得留下
不是所有參數頁都该收敛。如果某個篩選组合有稳定的搜尋需求,頁面上也有獨立的标题、描述和足够内容,把它做成路径形式的獨立頁面(例如 /red-dress/ 而不是 ?color=red)會更清晰。判断标准很直接:這個頁面如果單獨存在,能不能给用戶一個明确用途。
處理參數 URL 的核心不是让它們消失,而是决定哪些版本值得被索引,然後让連結、canonical、sitemap 三處说法保持一致。
自查清單
- 在索引报告里篩選带 ? 的 URL,看占比和近期增長趋势。
- 抽查几個參數頁:内容與規范版本差异有多大,canonical 是否指向自己。
- 看服務器日誌,參數頁消耗了多少抓取次數,是否挤占了重要頁面的抓取。
- 检查搜尋框、篩選组件、分享按钮生成的連結是否带參數。
參數收敛通常需要一到两轮抓取周期才能看到變化,观察时以抓取比例和索引數量两條曲线為准,不要只盯着某一天的數字下结论。