參數 URL 是怎么繁殖出来的
带篩選的电商站、房源站、内容列表頁,只要支持排序、價格区間、颜色、品牌、頁碼组合,URL 就會按乘法增長。一個分類下有 20 個品牌、5 個價格区間、4 種排序方式,理论组合就上千個,而這些頁面展示的内容高度重叠。
蜘蛛不認识你的业務逻辑,它只認連結。只要内鏈里存在這些组合,它就會顺着走;如果一個篩選頁還带着指向其他篩選组合的連結,抓取路径會像树一样展開,越走越深。结果不是内容變多了,而是同一批内容被反复取了很多次。
先分清三類頁面
- 有價值的篩選頁:有稳定搜尋量、内容差异明顯、能獨立回答用戶需求,比如按区域或品類划分的固定頁面。
- 低價值的组合頁:只是把同一批條目換個顺序或換個颜色再列一遍,内容與主頁面高度重复。
- 纯操作型頁面:排序、每頁條數、會话 ID、来源追踪參數,本质上不产生新内容。
分不清這三類,很容易一刀切全部屏蔽,把本来能带来流量的篩選頁也一起關掉。
收敛入口比事後屏蔽更有效
蜘蛛發現 URL 靠的是連結。只要内鏈里不给低價值组合留入口,很多參數頁根本不會被發現。常见做法:
- 篩選控件用按钮或表單提交,而不是一堆可抓取的連結;
- 需要保留的篩選组合,連結固定成一條,不做可再叠加的多层連結;
- 列表頁只暴露預設篩選,其余组合放在前端交互里;
- 排序、每頁條數這類參數不進入内鏈。
已经存在的參數 URL 怎么處理
统一參數顺序與命名
同一组參數因顺序不同會产生多個 URL,比如两個參數位置互換就是另一個地址。统一參數顺序、去掉無意义參數(會话 ID、跟踪碼),能直接消掉一批重复地址。
用 canonical 指向規范版本
内容确實相同、又必须保留可訪問的頁面,用 rel=canonical 指回主版本。canonical 是提示而不是命令,配合内鏈收敛,效果才更稳。
robots.txt 屏蔽要谨慎
被 robots 屏蔽的 URL 如果還有内鏈指向,蜘蛛仍可能持續發現但不去抓,長期积累成大量已發現未抓取的队列噪音。屏蔽更适合處理纯技術參數,比如排序、每頁條數,而不是有真實流量的篩選頁。
Sitemap 里只放規范 URL
把參數頁塞進 Sitemap,等于主動邀請蜘蛛去抓。Sitemap 只提交規范、稳定、希望被抓的地址,重复入口越少,清單越可信。
站内搜尋頁要單獨處理
站内搜尋结果頁通常是無限组合,用戶輸入什么就生成什么 URL,也容易被外部連結引用。這類頁面一般不建议大量暴露给蜘蛛:要么限制可抓取范围,要么只保留少量固定關鍵詞入口,並给结果頁加 noindex。如果站内搜尋确實带来流量,可以單獨评估,把有搜尋量的關鍵詞做成静態专题頁,而不是让參數组合自己長出来。
調整後怎么驗證
- 看服務器日誌:抓取請求里參數 URL 的占比是否下降;
- 看有效頁面的抓取量是否上升,而不只是看總量變化;
- 观察已發現未抓取的队列里,是否堆着大量參數地址;
- 抽查 canonicals 是否被采纳,規范版本是否被抓;
- 確認屏蔽没有誤伤带来流量或轉化的頁面。
參數本身不是問题,失控的參數组合才是。控住入口、说清規范、只屏蔽纯技術參數,比事後一封了之更稳妥。
小结
參數 URL 的治理核心是减少入口、明确規范、保留價值。先弄清哪些篩選组合真的有人搜、内容差异明顯,再决定保留、合並還是屏蔽。抓取预算有限,让蜘蛛把請求花在主頁面和真正有差异的頁面上,比多抓几千個重复地址更有意义。