很多栏目頁刚上线时只有一頁列表,运营几個月後,一統計可抓地址就是几千個。翻回去看,大部分不是新内容,而是篩選條件、排序方式、會话标识這些參數层层叠加出来的组合。這些地址單看都能打開,内容却高度重复,蜘蛛抓得越多,真正有搜尋價值的頁面分到的抓取次數就越少。
先分清參數是不是“内容”
判断标准很简單:換掉這個參數,頁面主体内容有没有實质變化。
- 内容型參數:品牌、型号、固定档位的價格区間、地区等,會产生新的结果集,用戶确實會這样搜。這類地址可以考虑保留並可抓。
- 视图型參數:排序方式、每頁條數、列表與網格切換、颜色偏好、會话 ID、来源追踪(utm、ref)等。頁面内容基本一致,只是展示顺序或入口不同。
视图型參數是治理重点。它們通常不進入任何站内連結,却能被外部連結、用戶複製分享、爬虫自行拼接等方式發現,然後在日誌里反复出現。
三種常见手段,邊界不一样
robots.txt 拦的是抓取,不是索引
Disallow 能减少抓取压力,但被拦的地址仍可能因為外鏈出現在搜尋结果里,标题摘要還可能不完整。所以只有在“這些地址永遠不该被抓”时才用它,比如带會话 ID、带站内搜尋關鍵詞的地址。
noindex 是明确表態,但要防止誤伤
對确實存在、内容有價值但不需要獨立參與排名的篩選頁,可以给 noindex,follow。前提是這些頁面本身能正常訪問,不要和 robots.txt 同时用——被挡住的頁面,蜘蛛看不到 noindex。
canonical 更适合處理近似重复
排序、每頁條數這類參數,頁面内容一致,把 canonical 指回不带參數的規范地址是更自然的做法。注意它只是建议值,別指望解决所有問题,尤其是站内連結和站点地图還在大量指向带參數版本的时候。
從可發現面下手,比逐條屏蔽省事
- 篩選連結不要全部寫成 a 标簽硬编碼。次要篩選可以放在交互之後再生成連結,或者用表單提交。
- 同一组參數保持顺序和命名统一,不要今天 ?color=red&size=m,明天 ?size=m&color=red。
- 站内連結和站点地图只收錄規范版本,不给带參數版本喂入口。
- 翻頁與篩選不要互相嵌套出無限组合,该收口的地方就收口。
上线前後的检查清單
- 拉一份近 30 天的服務器日誌,統計带參數 URL 的占比和抓取频次。
- 抽样打開几個高频參數地址,確認返回的是 200,還是已经被規范到主頁面。
- 確認 robots.txt 與 noindex 没有互相冲突。
- 检查站点地图里是否混進了篩選地址。
- 观察一到两周,看核心頁面的抓取次數有没有回升。
參數治理没有一次性做完的方案。栏目改版、篩選功能迭代、运营活動加參數,都會重新引入問题。把它当成例行检查項,比一次大清掃更現實。