搜尋抓取

URL 參數與抓取浪費:篩選、排序和追踪參數该怎么處理

篩選、排序、分頁、追踪參數會让同一份内容派生出几十上百個地址,蜘蛛的抓取額度很容易被這些低價值 URL 吃掉。本文梳理功能性、篩選排序、追踪装饰三類參數的差別,给出 canonical、參數顺序、robots 通配符、内鏈收敛等處理思路,以及容易誤伤的检查点。

搜尋抓取

URL 參數與抓取浪費:篩選、排序和追踪參數该怎么處理

同一個商品頁,用戶点一次“按價格排序”就多一個地址,再勾一個颜色又多一個,加上投放連結里的追踪參數,一個頁面能派生出一大串 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 目前是否被抓取、抓取频率如何、是否有真實的搜尋需求。

屏蔽參數不是目的,把抓取額度让给有價值的頁面才是。動手前先看清楚哪些地址本来就在被正常抓取。

一份可以照着走的检查清單

  1. 統計日誌中带參數請求占全部抓取的比例,看是否明顯偏高。
  2. 抽查站内連結(導航、列表、相關推荐)是否夹带了追踪參數。
  3. 比對無參數頁與參數頁的 canonical,確認指向一致且稳定。
  4. 检查 robots.txt 規則的實际匹配范围,用几個真實 URL 驗證會不會誤伤。
  5. 观察調整後一段時間内,抓取是否更多集中到詳情頁和栏目頁。

小结

參數治理的核心不是把带問号的地址全部消灭,而是分清哪些參數决定了内容、哪些只是外观變化、哪些纯粹是統計用途。保留该保留的,收敛该收敛的,剩下的用 canonical 和連結規范慢慢减少传播。參數混乱通常不會立刻带来明顯問题,但抓取額度被長期分散後,更新較快的頁面往往會先感受到影响。