站点上线一段時間後,抓取日誌里常常會多出一批意料之外的地址:站内搜尋结果頁、带篩選條件的列表頁、标簽聚合頁。它們没有人工维護,却數量庞大,而且彼此之間還能互相連結,形成一片看起来很深、實际内容高度重复的区域。要不要让蜘蛛走進這些入口,需要先弄清楚它們是怎么产生的。
這些地址是怎么被造出来的
站内搜尋頁通常来自搜尋框:用戶輸入關鍵詞,頁面跳到带查询參數的地址。如果頁面上還挂着篩選、排序、分頁,同一個關鍵詞很快能衍生出几十個 URL。篩選頁同理,颜色、價格区間、排序方式任意组合,就得到一批结构相似、内容重叠的頁面。标簽聚合頁則由内容系統按分類、作者或關鍵詞自動生成。
問题不在于這些頁面本身,而在于它們會占用抓取资源。蜘蛛在有限時間里能走的路径是有限的,如果大量時間花在翻動這類頁面,留给真正需要更新的内容頁的份額就會减少。
站内搜尋结果頁:一般不建议開放
站内搜尋頁的内容由用戶輸入决定,邊界無法穷举。更麻烦的是,结果頁之間還容易互相連結,形成“结果頁指向结果頁”的循环。常见的處理方式是:
- 用 robots.txt 屏蔽搜尋路径,或至少屏蔽带查询參數的版本;
- 在搜尋頁 HTML 里加 noindex,避免被当作普通内容頁處理;
- 结果列表里的連結加上 nofollow,减少蜘蛛沿着结果繼續扩散。
如果站内搜尋本身就是一個重要的入口,也可以只開放少量固定關鍵詞的静態结果頁,其余參數一律挡住。
篩選與聚合頁:分情况看
篩選頁的價值差別很大。品牌、品類這類有稳定需求的篩選组合,可能确實需要被訪問;纯粹按價格排序、按上架時間排序的组合,則基本没有獨立價值。判断时可以從三個角度問自己:
- 這個篩選组合,用戶會不會主動去搜?如果不會,它被訪問的價值就很低。
- 頁面上的商品或内容集合,和其他篩選组合是否高度重合?重合度越高,越接近重复内容。
- 這個地址是蜘蛛自然發現的,還是你主動挂在内鏈上的?只有自己挂上去的入口,才需要為後果负责。
决定保留之後,怎么把范围收住
如果判断某些聚合頁确實要留下,重点就變成控制數量,而不是全部放行:
- 限制可组合的參數,只保留白名單内的篩選维度,其余參數在服務端直接忽略;
- 分頁只開放前若干頁,更深的頁面對蜘蛛屏蔽,同时保證核心内容能從列表前几頁走到;
- 聚合頁里指向詳情頁的連結保持稳定,避免每次請求都輸出不同的連結顺序;
- 给這些頁面設定合理的缓存,减少蜘蛛反复請求时對服務器的压力。
观察一段時間再决定
處理完之後不要立刻停手。可以按周對照服務器日誌,看两個指标:一是這些路径上的抓取請求占比有没有下降;二是剩下的抓取是否更多落在内容頁上。如果屏蔽之後整体抓取量明顯减少,而内容頁並没有得到更多机會,說明屏蔽范围可能過大,需要逐條放開驗證。
抓取路径的取舍没有统一答案,更多是“限制總量、保留必要入口”的平衡問题。少而稳定的入口,通常比铺得满天飞的聚合頁更容易管理。