带篩選、排序、分頁參數的 URL,是很多站点地址數量失控的起点。一個列表頁,加上颜色、價格区間、排序方式、每頁條數這几個维度,很容易组合出成百上千個地址。蜘蛛顺着連結一路走下去,抓取路径就會在參數空間里打轉,真正需要被收錄的内容頁反而排到了後面。
蜘蛛是怎么走進參數迷宫的
- 列表頁源碼里直接輸出的篩選連結,蜘蛛抓到列表頁就顺带發現了
- 前端渲染後才生成的連結,初始 HTML 里没有或只有一部分
- 排序、分頁控件里的 href
- 外站轉载、广告投放带過来的 utm 等追踪參數
- Sitemap 或站点地图頁里誤收錄的參數地址
這些入口往往不是一次出現的,而是随着运营活動、模板改版逐步叠加。等發現时,日誌里參數型 URL 的比例已经很高了。
參數地址给抓取路径带来的三個問题
第一是重复。同一批内容對應多個地址,權重被摊薄,蜘蛛也难以判断哪個是主版本。第二是预算。抓取预算有限,蜘蛛在參數變体之間来回走,能分配给新頁面的次數就少了。第三是深度。列表頁參數變体抓不完,排在後面的詳情頁入口就更难被發現。
先分清哪些參數该留,哪些该收
- 篩選參數:如果某個篩選维度本身有搜尋需求(例如品牌、品類),可以保留一到两個主维度,做成可被抓取的稳定路径
- 排序參數:通常只保留預設排序,其余排序组合用按钮或 JS 控制,不輸出可抓連結
- 追踪參數:utm、来源标记這類對内容没有影响的參數,站内連結里就不该出現
- 會话與用戶标识:這類參數必须拦在外面,否則每個訪客都能生成一套新地址
- 分頁參數:要保留,而且要保持可抓取,這是蜘蛛進入列表深层的路
收口的几種做法
- canonical 指向無參數版本。對同一内容的參數變体统一声明規范地址,注意它只是提示,不是强制指令,最好同时配合下面几條一起用。
- robots.txt 屏蔽。适合纯追踪參數和组合爆炸的篩選路径。但要清楚:一旦屏蔽,這些地址下的内容就不會被抓取,也不要指望它們能被收錄。
- 連結层面收敛。站内連結尽量指向干净地址;篩選控件做成表單提交或按钮交互;分頁連結保持真實 href,不要只靠点击事件。
- URL 重寫。把常用篩選路径改寫成静態化的目錄形式,例如 /shouji/pinpai-apple/ 這類结构,比一串參數更容易被理解和传递。
- Sitemap 只提交規范地址。別把參數地址混進去,否則等于主動把蜘蛛引向迷宫。
- 内部連結统一。全站指向同一個列表时,用同一套參數規則,避免三種寫法並存。
分頁參數不要顺手一起拦掉
有些站点為了省抓取预算,把分頁地址也放進屏蔽規則里。结果是列表頁深层的内容失去了唯一的入口,蜘蛛只能看到第一頁。分頁要保持可点击、可抓取,URL 结构最好有規律,方便蜘蛛顺着 page 參數或静態路径往下走。
屏蔽是最後一步,不是第一步。能用連結收敛和 canonical 解决的事情,尽量不要用 robots.txt。
怎么驗證收口有没有生效
- 看服務器日誌里參數型 URL 的抓取占比,調整後一两周是否有下降
- 看後台覆盖率报告中被排除的地址及其原因
- 抽查同一批内容是否還存在多個可訪問版本
- 確認重要列表頁的分頁連結仍然能被抓取
參數收口不是一次性動作。每次改版、上新篩選维度、接入新的投放渠道,都要回头看一眼:連結是怎么被輸出的,蜘蛛又會顺着哪條路走進来。