網站收錄

排序、篩選、追踪參數:參數型 URL 的收錄取舍

带篩選和排序的列表頁很容易生成成百上千個地址,其中大部分只是同一批内容的不同排列。本文按追踪、排序、篩選、分頁四類參數分別给出處理思路,並說明站内連結、canonical、robots.txt 各自该在哪一步介入,以及如何用日誌和索引报告驗證效果。

網站收錄

排序、篩選、追踪參數:參數型 URL 的收錄取舍

一個带篩選功能的列表頁,往往能自動生成成百上千個地址:颜色、尺碼、價格区間、排序方式、頁碼,再混進投放用的追踪參數。對用戶来说這很方便,對搜尋引擎来说,這些地址大多是同一批内容的不同排列。放任不管,蜘蛛的抓取額度會耗在大量近似頁面上,真正需要被收錄的頁面反而排不上队。

先给參數分個類

處理方式取决于參數會带来什么變化,可以先按下面四類归一下:

  • 追踪類:utm_source、gclid、from、spm 之類,纯粹用于統計,對頁面内容没有任何影响。
  • 排序與视图類:sort、order、view、list_mode,内容集合相同,只是顺序或展示方式不同。
  • 篩選類:color、size、price_min 等,可能组合出有意义的新頁面,也可能只是空结果頁。
  • 分頁類:page、p,通常属于内容的一部分,但深度越深,價值越低。

分類之後你會發現,真正值得让蜘蛛抓的其實没几個,大部分地址是工具和前端交互顺手产生的副产品。

能收敛就別让它炸開

  1. 追踪參數優先在入口處處理。在服務器或 CDN 层识別並忽略這些參數,或把带參地址 301 到干净地址。至少要做到站内連結不带追踪參數,否則蜘蛛顺着内鏈爬一圈,就會带出一整套重复地址。
  2. 排序和视图參數用 canonical 收敛。让這些地址的規范版本指向預設视图,站内也只用不带參的預設地址做連結。canonical 是提示不是强制,所以別指望它單獨解决問题,内鏈一致才是關键。
  3. 篩選组合先篩選再决定去留。先看哪些篩選组合确實有獨立搜尋需求,這類可以做成可索引的落地頁;其余组合让它們只在用戶点击时通過 AJAX 或表單触發,不進入可抓取的連結体系。
  4. 用 robots.txt 挡住並不等于不會被索引。如果外部有連結指向某個被屏蔽的带參地址,它仍可能以「無摘要」的形式出現在结果里。真要让它彻底消失,用 noindex 更稳妥,但前提是這個頁面本身能被抓取到。
  5. 分頁保留可抓取,但控制暴露深度。不要把几十分頁的連結全塞進頁脚,可以只保留前後几頁,配合「查看全部」或加载更多的方式减少地址數量。

站内連結是最容易失控的一环

很多參數地址不是外鏈带進来的,而是自己站内的按钮和跳轉造出来的。检查三件事:排序按钮是否生成了 a 标簽;站内跳轉时是否把目前頁的參數一路带下去;模板里的面包屑和導航是否只輸出規范地址。把這几處收干净,參數地址的數量通常會立刻下降一大截。

怎么驗證有没有做對

  • 在服務器日誌里統計带參地址的抓取次數占總抓取的比例,處理前後做對比。
  • 在索引报告的「已排除」里按原因分组,看重复、已發現未抓取、被 robots.txt 屏蔽的條目是不是集中在參數地址上。
  • 抽查几個典型參數组合,確認它們返回的規范地址、狀態碼和 meta 指令符合预期。
參數處理没有一劳永逸的開關。列表頁會改版,前端框架會換,追踪參數也會變,所以更适合的做法是把它当成一項定期检查的工作,而不是上线时配一次就結束的任務。

回到最基本的原則:一個内容尽量只有一個主地址,其余變体能收敛就收敛;實在收敛不了的,至少別主動把它們喂给蜘蛛。