站点运营

站点运营:篩選與排序參數,別让一個栏目生成上千個可抓地址

篩選、排序、會话、追踪這几類參數混在一起,很容易让栏目頁衍生出成百上千個可抓地址。本文按“參數是不是内容”来分類,讲清 robots.txt、noindex、canonical 各自的适用邊界,以及怎样從内部連結和前端交互入手收回可發現面,让抓取落在真正有搜尋價值的頁面上。

站点运营

站点运营:篩選與排序參數,別让一個栏目生成上千個可抓地址

很多栏目頁刚上线时只有一頁列表,运营几個月後,一統計可抓地址就是几千個。翻回去看,大部分不是新内容,而是篩選條件、排序方式、會话标识這些參數层层叠加出来的组合。這些地址單看都能打開,内容却高度重复,蜘蛛抓得越多,真正有搜尋價值的頁面分到的抓取次數就越少。

先分清參數是不是“内容”

判断标准很简單:換掉這個參數,頁面主体内容有没有實质變化。

  • 内容型參數:品牌、型号、固定档位的價格区間、地区等,會产生新的结果集,用戶确實會這样搜。這類地址可以考虑保留並可抓。
  • 视图型參數:排序方式、每頁條數、列表與網格切換、颜色偏好、會话 ID、来源追踪(utm、ref)等。頁面内容基本一致,只是展示顺序或入口不同。

视图型參數是治理重点。它們通常不進入任何站内連結,却能被外部連結、用戶複製分享、爬虫自行拼接等方式發現,然後在日誌里反复出現。

三種常见手段,邊界不一样

robots.txt 拦的是抓取,不是索引

Disallow 能减少抓取压力,但被拦的地址仍可能因為外鏈出現在搜尋结果里,标题摘要還可能不完整。所以只有在“這些地址永遠不该被抓”时才用它,比如带會话 ID、带站内搜尋關鍵詞的地址。

noindex 是明确表態,但要防止誤伤

對确實存在、内容有價值但不需要獨立參與排名的篩選頁,可以给 noindex,follow。前提是這些頁面本身能正常訪問,不要和 robots.txt 同时用——被挡住的頁面,蜘蛛看不到 noindex。

canonical 更适合處理近似重复

排序、每頁條數這類參數,頁面内容一致,把 canonical 指回不带參數的規范地址是更自然的做法。注意它只是建议值,別指望解决所有問题,尤其是站内連結和站点地图還在大量指向带參數版本的时候。

從可發現面下手,比逐條屏蔽省事

  • 篩選連結不要全部寫成 a 标簽硬编碼。次要篩選可以放在交互之後再生成連結,或者用表單提交。
  • 同一组參數保持顺序和命名统一,不要今天 ?color=red&size=m,明天 ?size=m&color=red。
  • 站内連結和站点地图只收錄規范版本,不给带參數版本喂入口。
  • 翻頁與篩選不要互相嵌套出無限组合,该收口的地方就收口。

上线前後的检查清單

  1. 拉一份近 30 天的服務器日誌,統計带參數 URL 的占比和抓取频次。
  2. 抽样打開几個高频參數地址,確認返回的是 200,還是已经被規范到主頁面。
  3. 確認 robots.txt 與 noindex 没有互相冲突。
  4. 检查站点地图里是否混進了篩選地址。
  5. 观察一到两周,看核心頁面的抓取次數有没有回升。
參數治理没有一次性做完的方案。栏目改版、篩選功能迭代、运营活動加參數,都會重新引入問题。把它当成例行检查項,比一次大清掃更現實。