搜尋抓取

篩選與标簽聚合頁:自動生成的 URL 要不要放给搜尋蜘蛛

篩選參數、标簽頁、站内搜尋结果會成倍制造 URL。這篇文章讨论怎么把這些自動生成的頁面分成有價值、重复、無意义三類,從内鏈、Sitemap、robots 與 noindex 几個层面分別處理,避免低價值组合挤占搜尋蜘蛛有限的来訪次數。

搜尋抓取

篩選與标簽聚合頁:自動生成的 URL 要不要放给搜尋蜘蛛

篩選、排序、标簽、站内搜尋,這些功能對用戶有用,但它們在幕後會不断生成新 URL。一個列表頁加上颜色、價格、排序几種參數,组合起来就是几十上百個地址。這些 URL 在技術上都能被抓取,但搜尋蜘蛛每次来訪的額度有限,放多少出去、怎么放,是站点自己可以决定的。

自動生成的 URL 主要来自哪里

  • 篩選與排序參數,比如價格区間、品牌、排序方式叠加後产生的组合地址。
  • 标簽頁與话题聚合頁,通常是内容系統自動根據關鍵詞生成的列表。
  • 站内搜尋结果頁,用戶搜什么就生成什么,URL 數量几乎不可控。
  • 分頁與日歷归档,翻頁越深,URL 越多。

這几類頁面的共同点是:不需要人工編輯,系統自己就能产出大量地址。也正因為如此,它們最容易在不经意間把站点的 URL 總量抬高一個量級。

先分類,再决定放不放

把所有自動生成的頁面一刀切,要么全開要么全關,通常都不合适。更實用的做法是先分三類:

  1. 有獨立價值的聚合頁:比如某個主标簽、某個核心品類的列表,本身有稳定的内容量,也有用戶會直接搜尋這類词。這類可以保留入口。
  2. 内容高度重复的组合頁:多個參數叠加後,展示的商品或文章和主列表基本一致,只是顺序不同。這類多數情况下没有單獨维護的必要。
  3. 组合爆炸且無意义的頁面:站内搜尋结果、深层篩選组合、空结果頁。這類頁面數量可以無限增長,内容是動態拼出来的。

判断标准可以简單一些:這個頁面有没有可能被真實用戶主動搜尋到?内容是不是和已有頁面大量重合?數量是否可控?三個問题里有两個答不上来,就倾向于不放。

组合爆炸為什么會拖慢發現

搜尋蜘蛛每天能抓的頁面數是有限的。当站内存在成千上萬個參數组合地址,並且它們都能通過内鏈或 Sitemap 被找到时,這些地址會先進入待抓队列,占掉一部分来訪次數。结果是:真正需要更新的新頁面,被發現和被回訪的時間被推迟。

被發現的 URL 不一定都會被完整抓取,但每一個進入队列的低價值地址,都在和真正重要的頁面争同一個机會。

發現入口與抓取控制是两件事

不要让它們出現在發現路径里

  • 内鏈是最直接的開關:篩選结果不要用可抓取的 a 标簽直出,或者只在用戶交互後才生成連結。
  • Sitemap 里不要混入參數 URL:Sitemap 是主動提交的發現入口,把组合地址寫進去,等于主動請蜘蛛来抓。
  • robots.txt 的 Disallow 只拦抓取,不拦發現:被屏蔽的 URL 仍然可能因為外鏈或歷史记錄被知道,別把它当成刪除工具。
  • noindex 需要頁面能被抓取才生效:如果同时用 robots 屏蔽了抓取,noindex 标簽蜘蛛根本看不到。

需要保留的聚合頁怎么做

保留下来的少數聚合頁,最好有固定的 URL、稳定的标题和描述,並且從主列表或導航里有明确入口。它們的價值在于帮助用戶和蜘蛛理解站点结构,而不是單纯堆數量。

已经放出去的低價值 URL 怎么收敛

如果參數頁已经被大量抓取,處理顺序建议是:先让頁面可抓但加 noindex,等蜘蛛重新訪問並讀到标簽;確認大部分已生效後,再考虑用 robots 限制抓取或對确實無内容的地址返回 410。分阶段做,比一次性全屏蔽更容易观察效果。

  • 先梳理哪些參數组合還在被频繁抓取,按抓取量排序。
  • 保留有流量的少數聚合頁,其余标记為不索引。
  • 观察一到两個抓取周期,看服務器日誌里的變化。

核對方式

抽一段時間的服務器日誌,看看带參數的 URL 占比多少,哪些參數被抓得最多。同时检查 Sitemap 文件里有没有混進不该出現的地址。這两件事做一次,通常就能看出發現路径上有没有漏水的地方。

聚合頁的真正作用是组织内容,不是制造 URL。在生成規則里提前控制组合數量,比事後清理要省力得多。