同一個商品頁,用戶点一次“按價格排序”就多一個地址,再勾一個颜色又多一個,加上投放連結里的追踪參數,一個頁面能派生出一大串 URL。對用戶来说這些地址長得差不多,對蜘蛛来说却是實實在在要排队抓取的對象。參數本身不是問题,參數失控才是。
參數為什么會放大 URL 數量
大多數參數頁的正文内容是重复的,差別只在排序方式或篩選條件上。一旦參數可以自由组合,地址數量就按乘法增長:3 個颜色 × 4 個尺碼 × 3 種排序 × 若干頁碼,轻松過百。蜘蛛不會帮你判断哪個地址更值得抓,它只看到一堆待抓队列。结果是真正需要更新的詳情頁迟迟排不上,而大量排序頁被反复訪問。
三類參數要分開看
功能性參數:必须保留
像詳情頁的 id、分頁的 page、文章的語言标记,這些參數决定了頁面呈現的内容,删掉就換了一個頁面。這類參數應当保持可抓取、可索引,並且在站内連結和 Sitemap 里使用统一寫法。
篩選與排序參數:视情况保留
有搜尋量的篩選组合(比如“品牌 + 品類”)可以保留為獨立入口,其余的排序、多條件叠加更适合收敛到主頁面。判断标准不是“能不能生成”,而是“這個组合有没有人真的會搜”。
追踪與装饰參數:應当忽略
utm_ 系列、from、ref、分享来源、會话 ID,這些參數不改變頁面内容,却會制造大量重复地址。它們出現在站外連結里难以完全避免,但至少站内連結不應该带。内部連結一旦带上追踪參數,等于把這套地址主動递给蜘蛛。
常见的几種處理方式
- 统一參數顺序:?a=1&b=2 和 ?b=2&a=1 在系統里是两個地址,在規范化上應指向同一個。
- canonical 指向規范版本:排序頁、篩選頁把 canonical 指回無參數主頁面,前提是内容确實高度重叠。
- 跳轉收敛追踪參數:對確認無用的參數做 301 到干净地址,让連結里残留的舊地址逐步失效。
- Sitemap 只放規范 URL:不要把所有參數组合都塞進去,那等于主動扩大抓取需求。
- robots.txt 通配符要算清范围:Disallow: /*?sort= 之類的規則寫起来方便,但很容易连正常詳情頁一起挡住。
通配符屏蔽最容易誤伤
用 robots.txt 拦參數是见效最快也最容易出事的一步。規則里的 * 會匹配任意位置,如果詳情頁本身也带問号參數,一條看似精准的規則可能把整個栏目挡在门外。改規則之前,先在抓取日誌里確認:這些带參數的 URL 目前是否被抓取、抓取频率如何、是否有真實的搜尋需求。
屏蔽參數不是目的,把抓取額度让给有價值的頁面才是。動手前先看清楚哪些地址本来就在被正常抓取。
一份可以照着走的检查清單
- 統計日誌中带參數請求占全部抓取的比例,看是否明顯偏高。
- 抽查站内連結(導航、列表、相關推荐)是否夹带了追踪參數。
- 比對無參數頁與參數頁的 canonical,確認指向一致且稳定。
- 检查 robots.txt 規則的實际匹配范围,用几個真實 URL 驗證會不會誤伤。
- 观察調整後一段時間内,抓取是否更多集中到詳情頁和栏目頁。
小结
參數治理的核心不是把带問号的地址全部消灭,而是分清哪些參數决定了内容、哪些只是外观變化、哪些纯粹是統計用途。保留该保留的,收敛该收敛的,剩下的用 canonical 和連結規范慢慢减少传播。參數混乱通常不會立刻带来明顯問题,但抓取額度被長期分散後,更新較快的頁面往往會先感受到影响。