參數頁為什么容易變成抓取黑洞
很多站点上线篩選、排序、分頁或推廣追踪功能後,URL 會带上各種參數,比如 ?color=red、?sort=price、?utm_source=xxx。這些 URL 對用戶是有用的,但如果每一種组合都能被蜘蛛爬到並当成獨立頁面,站点很快會多出一大批内容相同、只是參數不同的入口。
常见的结果是:抓取预算被大量參數頁消耗,真正重要的頁面更新變慢;同一批商品或文章出現多個版本,權重被摊薄;日誌里全是带參數的 URL,很难判断哪些頁面才值得投入精力。
參數本身不是错誤,問题在于哪些參數頁该被索引、哪些只是给用戶临时使用的。
先盘点:哪些參數是必要的
打開訪問日誌或服務器日誌,按 URL 是否含問号做一次統計,看看带參數的請求占了多少比例。然後逐個分類:
- 功能性參數:分頁、排序、视图切換。對用戶有用,但不一定要让蜘蛛把每一種都抓一遍。
- 篩選參數:颜色、價格区間、品牌等。單個條件也许有搜尋需求,多條件叠加的组合通常没有。
- 追踪參數:utm_source、utm_medium、fbclid 等,基本是营销用途,不應产生獨立可索引版本。
- 會话或缓存參數:sessionid、timestamp、rand 之類,属于實現细节,最好不出現在對外連結里。
常见處理方式與注意点
1. 统一 canonical
如果參數並不改變頁面核心内容,可以让這類頁面 canonical 指向無參數的規范版本。這样即使參數頁被抓到,也更可能归並到主頁面。前提是無參版本本身可正常訪問、内容完整,而不是一個空壳頁。
2. 用 noindex 處理不该索引的頁面
對于篩選组合頁、追踪落地頁,可以在頁面上輸出 noindex,follow,表示不索引但保留連結传递。需要留意的是:如果先用 robots.txt 屏蔽了這些 URL,蜘蛛就看不到頁面上的 noindex,两種手段不要同时混用。
3. 在 robots.txt 里屏蔽參數路径要谨慎
屏蔽能减少抓取,但也可能挡住你後来想索引的頁面。相對稳妥的做法是先用 noindex 观察一段時間,確認這些頁面确實没有價值,再考虑是否屏蔽。
4. 限制篩選组合的生成
很多參數爆炸来自“任意條件都能叠加”。在产品层面可以限制:只让單個主篩選條件出現在可点击連結中,多條件组合頁不主動生成入口,或者加上 noindex。列表的排序與视图切換可以保留參數,但不進入站点地图。
5. 站点地图與内鏈只放規范版本
站点地图里尽量只提交無參數或已确定要索引的版本。站内連結、面包屑、上一篇下一篇也應尽量指向規范 URL,避免自己制造出一堆參數入口。
自查清單
- 日誌中带參數的請求占比是否異常偏高?
- 每個參數是否有明确用途,是否都生成了可点击的連結?
- 參數顺序不同是否會产生多個 URL,能否做參數排序規范化?
- 追踪參數是否混進了内鏈或分享連結?
- 不该索引的參數頁,是否加了 noindex,而不是只靠 robots.txt?
- 站点地图里是否混入了參數頁?
- 新上线的篩選功能,預設是否给所有组合都生成了可抓取連結?
這類問题不必一次全部解决,先處理量最大的那几類參數,通常就能看到抓取分布上的變化。比起一次性清理,定期复查更容易把問题控制在早期。