一個商品列表頁挂上颜色、尺碼、價格区間、排序方式之後,URL 组合很容易涨到几千條。蜘蛛顺着這些連結一路走下去,抓取時間大多花在同一批内容上。參數本身不是错,問题在于站点没有明确告诉蜘蛛:哪些组合值得抓,哪些只是给用戶临时用的视图。
蜘蛛眼里的參數頁長什么样
多數蜘蛛把带 a=b 這類參數的地址当作獨立 URL 處理。它不會先判断這頁和那頁内容是否相同,而是先排队、再抓取、後去重。于是站点會看到几種後果:
- 抓取队列被大量低價值地址占據,真正想被收錄的頁面回訪變慢;
- 同一份内容對應多個地址,彼此分散信号;
- 訪問日誌里抓取量看着很大,實际覆盖的獨立内容没有增加;
- 篩選查询通常較重,服務器压力随之上升。
哪些參數頁值得放行
判断标准可以简化成两條:這頁有没有獨立的搜尋需求,内容是否稳定且可复現。
可以放行的類型
- 有真實搜尋量的聚合頁,例如某個品類的固定篩選组合;
- 结果稳定、顺序不随會话變化、不依赖随机推荐;
- 頁面文字描述完整,不只是结果列表。
建议收紧的類型
- 排序方式、每頁條數、视图切換等纯展示參數;
- 會话 ID、来源跟踪、广告点击等非内容參數;
- 多维叠加的组合,例如颜色加尺碼加價格再加排序;
- 站内搜尋结果頁,除非它确實有獨立價值。
几種收口手段與各自邊界
不同手段解决的是不同环节的問题,混用容易互相抵消。
- robots.txt 禁止抓取:适合會话類、跟踪類參數。要注意被禁止的地址如果被外鏈指向,仍可能以無摘要形式出現在结果里。
- canonical 指向主版本:用于告知一组參數属于同一内容,能减少信号分散,但不阻止蜘蛛實际抓取。
- 不生成連結:從源头上让蜘蛛走不到,是最干净的做法。篩選條件用按钮提交而非 a 連結时,要確認核心内容仍可通過普通連結到達。
- 前端渲染篩選结果:能降低被抓概率,但不要用它来隐藏你真正希望被看到的頁面。
把该留的參數頁放進抓取地图
Sitemap 里只列确定要收錄的參數頁,不要把全部组合都塞進去,否則地图本身就成了新的噪音源。内鏈只指向主版本,翻頁保留可抓取的連結但限制深度,让蜘蛛在有限层數内触達全部结果。
怎么驗證收紧是否生效
- 看日誌:參數類地址的抓取占比是否下降,目标頁面的回訪频次是否上升;
- 看索引:同内容多地址的情况是否减少,覆盖情况是否更集中;
- 看服務器:篩選查询相關的响應時間與错誤率是否回落。
收紧參數的目的不是让蜘蛛少来,而是把它的時間換到更值钱的頁面上。改動之後留出几周观察期,再决定要不要繼續收。
參數頁的處理属于長期工程:业務的篩選维度會不断變化,規則也要跟着調整。把判断标准寫下来,交给负责模板和連結的人,比事後從日誌里猜要省力得多。