站点运营

站点运营:站内搜尋與篩選參數自查,別让组合 URL 生成無限低质頁面

站内搜尋和篩選功能方便訪客,却可能生成大量參數组合 URL,消耗抓取预算、稀释索引质量。本文從日誌观察、robots 與 noindex 取舍、canonical、站点地图和内鏈控制几個角度,梳理一套可执行的自查流程,帮助你把發現入口留给真正有價值的頁面。

站点运营

站点运营:站内搜尋與篩選參數自查,別让组合 URL 生成無限低质頁面

站内搜尋和篩選是常见功能:訪客輸入關鍵詞、勾選颜色、價格区間、排序方式,頁面立刻给出结果。對用戶来说很方便,對搜尋引擎爬虫来说却可能是一场灾难。因為每一次參數组合都可能對應一個可訪問的 URL,而這些 URL 大多内容稀薄、彼此高度相似。

如果不加控制,站点會在短時間内多出成千上萬個低质入口。它們未必會被收錄,但會占用抓取预算,也會让站点地图和日誌分析變得混乱。這篇自查清單,帮你把這類頁面管起来。

先確認問题是否存在

不要凭感觉判断。花半小时看几項資料,比争论要不要屏蔽更有用。

  • 服務器日誌:統計爬虫請求中带查询參數的 URL 占比,看看是否超過總抓取量的三成。
  • 索引覆盖报告:观察“已發現未编入索引”“已抓取未编入索引”里,有多少来自搜尋或篩選结果頁。
  • 站点地图:检查是否無意中把參數 URL 提交進了 sitemap。
  • 站内連結:看看篩選结果頁之間是否互相連結,形成了一條没有尽头的路径。

如果日誌里大量請求集中在排序參數、會话參數、空结果頁上,基本可以确定需要處理。

處理這類頁面的几個原則

目标不是把所有參數頁一刀切,而是区分“有稳定搜尋需求”和“只是组合出来的临时頁面”。

1. robots.txt 與 noindex 各管一段

對于纯排序、會话跟踪、價格区間等無獨立價值的參數,可以用 robots.txt 禁止抓取,避免爬虫反复請求。但要注意:被 robots.txt 屏蔽的頁面,搜尋引擎無法讀取頁面上的 noindex。所以更稳妥的做法是,對需要保留連結但不想收錄的頁面,放開抓取並使用 noindex

2. 搜尋頁尽量不要生成静態入口

站内搜尋结果頁通常没有獨立價值,也不适合作為落地頁。建议在模板层面對搜尋结果頁统一加 noindex,並且不要把這些结果頁放進站点地图或導航。如果站内搜尋必须能被站外訪問,至少不要让不同關鍵詞的结果頁互相連結。

3. 篩選參數做規范化

多選參數最麻烦的是顺序和组合。比如 ?color=red&size=m 與 ?size=m&color=red 是两個 URL,内容却一样。可以在服務端對參數排序,或者用 canonical 指向一個主版本。排序參數、每頁條數參數,一般不需要單獨成頁。

4. 站点地图與内鏈要克制

站点地图只放你希望被發現的頁面。篩選结果頁、排序頁、空结果頁不建议進入 sitemap。内鏈方面,篩選功能可以放在頁面上,但不要让它成為爬虫深入站点的唯一路径。重要栏目仍然要有清晰的導航和面包屑。

5. 空结果頁给一個明确狀態

当篩選條件没有匹配内容时,不要返回一個模板完整的空列表頁,更不要让它保持 200 狀態。可以考虑返回 404 或 410,或者至少在頁面上给出明确提示並設定 noindex。空结果頁被大量抓取,是抓取预算浪費的常见来源。

一份可执行的自查流程

  1. 導出最近一周的爬虫日誌,按 URL 參數分组,找出訪問量最高的參數類型。
  2. 確認哪些參數頁有真實搜尋需求,哪些只是排序、會话或空结果。
  3. 對無價值參數頁設定 noindex 或 robots.txt 屏蔽,並确保两者不冲突。
  4. 检查 canonical 是否正确指向主版本,避免參數頁互相声明。
  5. 清理站点地图中的參數 URL,同时確認導航和内鏈不會大量指向篩選结果。
  6. 修改後持續观察日誌,確認抓取請求向有效頁面集中。
站内搜尋和篩選本身不是問题,問题在于让它們成為 URL 發現的主要来源。把發現入口留给栏目頁、詳情頁和真正有搜尋價值的聚合頁,抓取效率才不會被參數组合稀释。

這類調整通常不會立刻带来排名變化,但能减少無效抓取、让日誌更干净。對長期运营的站点来说,這些基础工作是值得定期复查的。