商品列表、文章归档、房源检索這類頁面,往往會带上一串篩選參數:颜色、尺碼、價格区間、排序方式、每頁條數、分頁碼。單個參數看起来無害,但參數一旦可以自由组合,URL 數量就是乘法關系,几千條内容能膨胀出几十萬條地址。這些地址大多由程序即时生成,内容高度相似,却會實打實地占用抓取资源,也會拉低索引里頁面的整体质量。
參數 URL 為什么會失控
失控通常不是因為參數本身,而是因為几個預設設定:
- 排序、每頁條數、来源追踪等參數没有固定,用戶点一下就是一個新 URL;
- 同一批结果有多條路径可達,例如 /list?color=red 與 /list/red 同时存在;
- 篩選條件為空时依然生成带參數的地址,内容和主列表頁完全一致。
结果就是:真正有價值的頁面没几條,等待被抓取的地址却排到了几個月之後。
决定放開還是收紧前,先看三件事
一、這批參數有没有獨立搜尋需求
有些篩選组合本身就是用戶會主動搜尋的词,例如「某品牌 + 某型号 + 二手」。這類頁面存在被搜尋命中的可能,值得單獨對待;而纯粹由排序、頁碼、追踪參數产生的地址,几乎不會有獨立需求。
二、结果集是不是真的不同
把參數頁打開,和主列表頁對比前 20 條结果。如果差异很小,或者只是顺序變了,那它在索引里就是重复内容;如果篩選後剩下的是一批完全不同的條目,頁面本身是有信息量的。
三、它有没有被主動暴露
只出現在篩選交互里、任何静態連結都到不了的參數頁,本身就是孤岛。反過来,如果站内導航、文章正文里大量指向參數 URL,等于在告诉搜尋引擎這些地址很重要。
處理顺序:從宽到嚴
- 统一參數形式。把排序、每頁條數、追踪參數固定為預設值,並把等價地址收敛到一條主地址上。
- 只保留有内容的參數组合。篩選後结果為零或极少的组合,返回 404 或跳回主列表,不要返回一個空壳頁面。
- 用 canonical 指向規范版本。注意 canonical 是建议而非命令,而且被 robots.txt 屏蔽的頁面,搜尋引擎讀不到它的 canonical。
- 對確認無價值但仍需服務用戶的頁面加 noindex。這類頁面可以繼續给人看,只是不進入索引。
- sitemap 只提交主干地址。把參數 URL 一並塞進站点地图,等于主動扩大抓取队列。
- 用日誌和資料驗證。观察參數 URL 的抓取占比是否下降、規范地址的抓取是否上升,再决定要不要繼續收紧。
几個容易踩的坑
- 用 robots.txt 屏蔽參數頁,同时又指望它的 canonical 生效——被屏蔽後 canonical 基本讀不到,這两件事要分開做。
- 把分頁全部 noindex,導致深层内容失去發現路径。
- noindex 與 robots.txt 屏蔽同时使用,标簽同样讀不到,判断依據也會丢失。
- 只處理了 PC 端的參數,移動端模板仍在生成另一套地址。
參數頁不是必须全部屏蔽,也不是全部放開。關键是让每一個進入索引的地址,都有它單獨存在的理由。
给參數頁设一個名額预算
比較實用的做法是设定上限,例如「允许被索引的參數頁不超過站点索引量的 5%」,然後按月抽查:随机抽 20 條已收錄的參數 URL,看它們的訪問量、轉化以及是否在搜尋结果中出現。長期没有表現、内容又與其他頁面高度重合的,就往下压一档處理。
參數治理不會让收錄立刻變好,但能减少無谓的抓取消耗,把机會让给真正需要被發現的頁面。調整之後建议至少观察一個完整的抓取周期再判断效果,避免频繁改方向。