搜尋抓取

篩選和排序連結被蜘蛛發現後:參數 URL 怎么收口

列表頁上的篩選、排序和站内搜尋連結,往往是參數 URL 被大量發現的来源。文章說明蜘蛛如何跟進這些連結、哪些參數组合值得保留,並從連結出口、robots.txt、canonical 與 Sitemap 几個层面给出收口顺序,帮助减少無效抓取,同时不影响正常用戶使用。

搜尋抓取

篩選和排序連結被蜘蛛發現後:參數 URL 怎么收口

列表頁加一排篩選條件、一個排序下拉,用戶找東西通常更快,但搜尋引擎蜘蛛顺着這些連結走進去,會發現一批内容高度相似的 URL:同一批商品按價格排序、按颜色篩選、带上追踪參數……這些地址本身不算错誤,問题在于被發現得太多,會挤占站点本就有限的抓取资源。

參數 URL 是怎么被蜘蛛發現的

常见入口大致有几類:

  • 篩選條件寫成可点击的 a 連結,蜘蛛會逐個跟進;
  • 排序功能用連結實現,每点一次都产生一個新地址;
  • 站内搜尋结果頁被用戶複製分享,或被外站引用;
  • 頁面連結由 JS 拼接,渲染完成後同样可能被讀取。

判断标准其實很简單:只要在 HTML 里以可点击連結的形式出現,蜘蛛就有机會走進去。按钮、表單提交、纯 JS 事件通常不會額外产生被抓取的 URL,除非它們最终輸出了可連結的地址。

為什么不能放任不管

參數頁大多只是同一批内容的重新排列,對用戶有價值,對索引却容易造成重复。当這些地址大量進入待抓取队列,直接後果是:

  • 抓取资源被分散,新發布的規范頁面反而排在後面;
  • 日誌里出現大量相似抓取记錄,排查問题變困难;
  • 部分參數頁被抓取後進入索引,與主頁面争抢展示。

注意,這里说的不是“參數頁必须全部封掉”,而是要让蜘蛛把精力放在值得收錄的地址上。

先分清哪些參數值得保留

  1. 有真實检索需求的组合:比如品牌、颜色、尺碼這類用戶會主動搜尋的篩選维度,其中一部分可以保留為可收錄的落地頁。
  2. 只是排序或视图切換:按價格、销量、上架時間排序,一般不构成獨立内容。
  3. 會话與追踪參數:utm、来源标记、session id 之類,對抓取没有帮助。
  4. 分頁參數:保留,但要注意與規范形態的配合,別让翻頁連結無限制地扩散。

收口的几種做法

從連結出口控制

最直接的一步是改連結本身的形態。排序、视图切換改用按钮或表單提交,不再生成可点击地址;确實需要保留的篩選連結,限制维度组合,避免出現三层以上嵌套。站内搜尋的结果頁連結,一般不建议作為普通入口暴露给蜘蛛。

robots.txt 要谨慎使用

用 Disallow 拦住參數路径,能减少一部分抓取,但被拦下的 URL 仍然可能因為外鏈而被索引,只是内容無法被抓取判断。所以它更适合用来處理确實不需要抓取的路径,而不是当作萬能開關。

用 canonical 表態

對保留下来的篩選落地頁,如果内容與主列表高度重合,可以在頁面上声明規范地址,让蜘蛛知道哪個版本才是主体。canonical 是提示而非强制,所以前提是頁面本身不要互相矛盾。

Sitemap 只提交規范形態

站点地图里尽量只放确定要收錄的地址,不要把所有參數组合都塞進去。提交的样本越干净,蜘蛛對站点结构的判断越清晰。

站内搜尋頁單獨處理

搜尋结果頁數量不可控,通常建议加 noindex,同时用 robots.txt 阻止抓取。两者结合,既避免索引,也减少抓取消耗。

建议的處理顺序

  1. 先看服務器日誌,確認哪些參數组合真的在被抓、频率如何;
  2. 区分需要保留和需要收口的參數,列一份清單;
  3. 改連結出口,把排序、视图切換這類操作從連結改成交互控件;
  4. 對保留頁面加 canonical,明确規范形態;
  5. 更新 robots.txt 與 Sitemap,只保留必要路径;
  6. 持續观察两到四周日誌,確認抓取分布是否朝预期方向變化。
不要一次性把所有參數路径全禁掉,先小范围調整,再根據日誌反馈决定下一步。參數治理是随业務變化反复調整的過程,不是一次性的開關。

站点功能會不断更新,新的篩選维度、新的排序方式都可能带来新的參數 URL。把這件事放進定期巡检的清單里,比事後集中處理要轻松得多。