站点运营

站点运营:篩選與排序參數自查,別让 URL 组合無限膨胀

篩選、排序、分頁這些參數看着方便,却可能让同一批内容生成成千上萬個 URL。本文梳理常见的參數陷阱,以及如何用 robots、canonical、站内連結约束和抓取日誌,把抓取入口控制在可管理的范围内。

站点运营

站点运营:篩選與排序參數自查,別让 URL 组合無限膨胀

带篩選和排序功能的站点,往往在内容量還没起来的时候,URL 數量就先膨胀了几十倍。原因不复杂:一個篩選頁如果有五個维度,每個维度十個可選項,理论组合就是十萬級。再叠加排序方式、每頁條數、视图模式,實际生成的網址會遠遠超過站内真正有内容的頁面數。

這類問题不會让網站立刻打不開,但會慢慢消耗抓取资源:蜘蛛在一個頁面集合里反复進出,真正需要被發現的頁面反而排在後面。下面按“先認清參數、再决定去留、最後驗證效果”的顺序梳理一遍。

先看清楚站里到底有哪些參數

把最近一段時間的訪問日誌按 URL 去重,統計問号後面出現過的參數名,通常會看到几類:

  • 内容相關參數:分類、品牌、價格区間、地区、标簽,這類參數决定了頁面上顯示哪些内容。
  • 排序與视图參數:sort=price、order=desc、view=list,只改變呈現顺序或样式。
  • 分頁參數:page=2、p=3 之類。
  • 追踪與會话參數:utm_source、from、ref、sid,對頁面内容没有任何影响。
  • 無意义參數:時間戳、随机數、版本号,多出現在前端拼接或缓存刷新时。

分類之後,問题通常一目了然:真正有獨立價值的參數只是少數,剩下的都是同一批内容的重复入口。

哪些參數值得保留,哪些该收住

可以考虑保留的

有稳定搜尋需求、頁面内容确實不同、並且能给出獨立标题和描述的篩選组合,比如“城市 + 房源類型”“品牌 + 型号”。這類頁面如果數量可控,保留下来對訪客和抓取都有意义。

建议收住的

  • 排序參數:同一批结果換個顺序,不构成新頁面。
  • 视图模式與每頁條數:纯前端偏好,不改變内容集合。
  • 追踪與會话參數:對訪客和蜘蛛都没有信息量,最好在服務器或前端统一剥离。
  • 空结果和只有一個结果的篩選頁:既没有内容,也容易产生大量低质入口。

具体可以用哪些手段约束

  1. 统一規范版本。给每個内容集合固定一個不带排序、不带追踪參數的規范網址,頁面上的 canonical 始终指向它,不要今天指 A 明天指 B。
  2. 站内連結只鏈規范版本。導航、面包屑、列表頁里不要出現排序連結;如果排序必须存在,用按钮或表單提交,而不是可抓取的 a 标簽。
  3. 给不该收錄的頁面加 noindex。排序頁、视图切換頁可以用 noindex, follow,让蜘蛛仍能顺着連結走到詳情頁,但不把它們当成獨立结果。
  4. 谨慎使用 robots.txt。Disallow 只阻止抓取,不阻止 URL 被其他站点引用後出現在结果里;被屏蔽的頁面也無法传递 noindex 信号。用之前先想清楚是想要“不抓”還是“不收錄”。
  5. 控制篩選维度。能合並的维度合並,能限制多選的限制多選,從产品设計上减少组合數量,比事後清理省力得多。
  6. 處理空结果頁。没有结果的篩選组合直接返回 404 或 410,比返回 200 的空頁面更清楚。

用抓取資料和搜尋表現驗證

改完之後不要凭感觉判断。回到服務器日誌,看带參數的請求在蜘蛛總請求里占多大比例,以及這些請求集中在哪些參數上。如果半個月後 order=、view= 這類請求明顯下降,說明约束起了作用。

同时看看篩選頁在搜尋里带来了多少真實点击。多數情况下,排序頁和视图頁的点击接近于零,而少數核心篩選组合會持續有量。這個對比能帮你判断哪些參數值得繼續维護。

參數本身不是問题,問题在于同一批内容被拆成几百個入口,让蜘蛛和訪客都在原地打轉。

落地检查清單

  • 日誌里統計過參數名和請求占比,知道問题出在哪里。
  • 每個内容集合都有唯一确定的規范網址,canonical 指向一致。
  • 排序、视图、追踪參數不出現在可抓取的連結中。
  • 無内容價值的篩選頁設定了 noindex,或被合理返回 404/410。
  • robots.txt 的使用范围有明确理由,不是随手加一條。
  • 改動後持續观察日誌,確認參數請求占比确實下降。

這類調整不必一次做完。先處理量最大、最没價值的參數,观察一段時間,再决定下一步。比起一次性大改,小步迭代更容易看出哪一步真正有效。