網站收錄

篩選參數和站内搜尋 URL 被大量收錄:先分類,再决定保留、归並還是屏蔽

站内篩選、排序和搜尋參數很容易在索引里生出一批 URL。與其急着屏蔽,不如先按有没有獨立搜尋需求分類:少數保留、重复的归並、组合無限的屏蔽。本文按統計規模、分級處理、执行顺序、改後核對四步展開,並說明 robots.txt 與 noindex 的先後關系。

網站收錄

篩選參數和站内搜尋 URL 被大量收錄:先分類,再决定保留、归並還是屏蔽

篩選、排序、站内搜尋這些功能一旦上线,索引里很容易多出一批带參數的 URL。它們不是凭空出現的:只要頁面能被爬虫顺着連結抓到,又没有被明确處理,搜尋引擎就可能把它当成獨立頁面看待。問题不在于參數本身,而在于這些 URL 有没有獨立價值、值不值得占用抓取配額和索引空間。

第一步:把带參數的 URL 從索引和日誌里分出来

先摸清規模,再動手改。按參數名分组統計,比盯着總數更有用。

  • 站内搜尋參數(如 ?q=、?s=):组合近似無限,獨立價值通常最低。
  • 篩選與排序參數(如 ?color=、?sort=):同一個列表的不同视图,内容高度重叠。
  • 分頁或游标參數:属于内容序列的一部分,處理方式和篩選參數不同。
  • 統計與追踪參數(?from=、?ref=):只是入口标记,不该形成新頁面。

顺便看一眼抓取日誌里带 query 的請求占比。如果爬虫大量時間花在參數頁上,核心頁面的抓取频率就會被挤占。

第二步:给每類參數定一個归属

處理方式無非三種,但前提是先判断這個 URL 本身值不值得留。

  • 保留:少量固定的聚合頁,比如“全部商品”或某個固定篩選组合确實有搜尋需求,可以保留為可索引頁面,做自指 canonical,並让内鏈正常指向它。
  • 归並:内容與主頁面高度重复的排序、视图切換,可让頁面 canonical 指向無參數版本。前提是两頁内容确實一致,否則信号會互相矛盾。
  • 屏蔽:组合無限、几乎不可能有獨立搜尋需求的參數,優先考虑禁止抓取或禁止索引。

第三步:执行顺序比選哪一招更重要

  1. 先確認頁面能正常訪問、返回 200,再谈處理方式。
  2. 决定是“不抓”還是“不索引”。要让頁面被讀取但不進索引,用 meta robots 的 noindex,此时不要用 robots.txt 封死。
  3. 如果确定整類參數都不需要被抓,再考虑在 robots.txt 里按模式屏蔽,或使用參數設定類工具让搜尋引擎自行判断。
  4. 處理完回头改内鏈和 sitemap。内鏈仍指向參數 URL,爬虫就會繼續發現,前面的處理等于白做。
  5. 最後再核對索引狀態的變化,而不是当天改完当天就下结论。
一個常见的顺序错誤:先用 robots.txt 屏蔽參數目錄,再往這些頁面上加 noindex。爬虫讀不到頁面内容,noindex 自然不會生效。

第四步:改完之後核對什么

  • 抓取日誌里參數類 URL 的請求占比是否下降,核心目錄的抓取是否更集中。
  • 索引覆盖报告里,參數 URL 的狀態是否變為“已排除”一類,而不是仍顯示已收錄。
  • 被 canonical 归並的頁面是否跟着主頁面走,而不是各自留在索引里。
  • 核心列表頁和詳情頁的收錄是否稳定,別在處理參數时誤伤了主頁面。

几個容易忽略的细节

會话 ID、多語言參數、移動端识別參數同样會生成 URL 變体,處理逻辑與篩選參數類似,但不建议一刀切。參數頁的處理结果通常不會立刻反映到索引里,核對时要按批次、按目錄去看,而不是只看總量。真正需要判断的始终是:這個 URL 上有没有用戶會主動搜尋的内容。