站点运营

站点运营:站内搜尋頁與篩選參數自查,別让參數组合铺满索引

站内搜尋、篩選、排序和追踪參數會自動生成大量 URL,如果不加区分地放行,蜘蛛很容易在排列组合里反复绕圈。本文梳理常见的參數来源,按頁面類型给出處理方式,並附上一份可直接照做的自查清單與几個常见坑,帮助把抓取资源留给真正需要的頁面。

站点运营

站点运营:站内搜尋頁與篩選參數自查,別让參數组合铺满索引

很多站点的正文頁面數量並不夸張,但站内搜尋頁、篩選頁、排序頁却能把 URL 總量放大好几倍。這些頁面由參數自動生成,没有人工审核,也缺少固定的内鏈入口,蜘蛛一旦走進去,很容易在排列组合里反复绕圈,既浪費抓取资源,也让真正需要被發現的正文頁排在後面。

一、先摸清哪些參數會生成新 URL

動手處理之前,先把參數来源列清楚。常见的几類:

  • 站内搜尋:?q=、?s=、?keyword= 這類由訪客輸入决定的頁面,内容组合几乎是無穷的。
  • 篩選與排序:?color=、?brand=、?price=、?sort=、?order= 等,單一维度還好,多维度叠加就會迅速膨胀。
  • 追踪參數:utm_source、utm_medium、gclid 等投放參數,同一篇内容會派生出若干版本。
  • 分頁:?page= 與篩選條件组合後,數量往往再翻一倍。

把最近一周的訪問日誌拉出来,按參數名做一次分组統計,就能看出哪些參數被蜘蛛高频訪問,哪些只是偶尔出現。這一步不需要复杂工具,用脚本或表格分组即可完成。

二、按頁面類型選擇處理方式

1. 站内搜尋结果頁

這類頁面通常不值得被索引,建议在頁面头部加 noindex, follow,让它仍然能传递連結價值。如果直接寫進 robots.txt 屏蔽,蜘蛛就看不到 noindex 标簽,對應 URL 仍可能出現,只是没有摘要,展示效果反而更差。

2. 篩選與排序參數

不要一刀切。可以按「是否有真實搜尋需求」做白名單:例如「品牌 + 分類」這種组合有用戶主動搜尋,可以保留並寫好标题與描述;其余没有搜尋量的组合统一 noindex,或者用 canonical 指向不带參數的列表主頁。排序參數一般直接 canonical 到預設排序即可。

3. 追踪參數

最干净的做法是在服務端或 CDN 层把 utm 類參數剥离並 301 到不含參數的 URL;退一步,也可以在頁面上把 canonical 固定寫成干净地址。

另外要注意參數顺序:?a=1&b=2 與 ?b=2&a=1 在很多系統里會被当成两個不同 URL,最好在服務器层做一次统一归一化。

三、上线前的自查清單

  1. 列出站点所有會产生新 URL 的參數名,並标注各自用途。
  2. 站内搜尋頁是否已設定 noindex,是否與 robots.txt 規則冲突。
  3. 篩選頁是否有白名單策略,還是全部放行。
  4. canonical 指向的目标頁面本身是否可索引,避免指向一個 noindex 頁面。
  5. 同一组參數不同顺序,是否會被归一化到同一個地址。
  6. 站内搜尋頁的 follow 是否會让蜘蛛顺着结果爬到大量随机内容,必要时改為 nofollow。
  7. sitemap 中是否混入了參數 URL,需要清理。

四、几個容易踩的坑

  • robots.txt 屏蔽與 noindex 同时使用,導致 noindex 永遠不生效。
  • 列表頁 canonical 一律指向首頁,把分類主题也一起合並掉。
  • 篩選頁上其實放了優质正文,却因為整站規則被一起屏蔽。
  • 只在模板里改了規則,忘了歷史生成的參數 URL 仍在被抓取。
參數治理的目标不是把所有带參數的 URL 都杀掉,而是让值得被發現的頁面留下明确入口,让無意义的排列组合失去被反复抓取的机會。

這項工作不需要一次做完。可以先從流量最大、參數最杂的栏目開始,處理完一個再观察日誌變化,逐步把規則补齐。規則确定之後,最好记錄在站点运维文档里,避免下次改模板时又被無意覆盖。