列表頁通常是站点里 URL 最密集的地方。蜘蛛從首頁進入栏目,再沿着分頁和篩選連結往下走,這個過程會直接决定它能不能發現詳情頁,也會影响抓取预算花在哪里。如果分頁和篩選參數不加控制,蜘蛛的抓取路径會像树枝一样不断分叉,最後既抓不完,也抓不深。
分頁連結要让蜘蛛能跟
分頁是列表頁最基础的抓取路径。蜘蛛不會点击按钮,也不會执行复杂的篩選交互,它只認 HTML 里能解析到的連結。所以分頁導航最好用 a 标簽 直接輸出 href,而不是用 JavaScript 点击事件或表單提交。
- 下一頁、上一頁、頁碼連結都應该可抓取;
- 避免用“加载更多”按钮替代所有分頁連結;
- 分頁 URL 保持简洁,例如 /list/page/2/,不要叠加無意义參數。
如果分頁鏈路被切断,蜘蛛可能只抓到第一頁,後面的詳情頁就缺少内鏈入口,只能依赖 Sitemap 或外鏈發現。
篩選參數最容易让路径發散
颜色、尺寸、價格区間、排序方式等篩選條件组合起来,會产生大量 URL。比如一個列表頁有 10 個篩選维度,每個维度 3 個選項,理论上可以生成數萬條 URL。蜘蛛一旦進入這種參數迷宫,就會把抓取预算消耗在低價值頁面上。
收敛不是把所有篩選都屏蔽,而是让蜘蛛優先走有内容價值、有内鏈意义的路径。
常见做法是:
- 只把主要篩選组合放進内鏈,例如“品牌 + 品類”這種有搜尋需求的组合;
- 對排序參數、會话參數、追踪參數用 robots.txt 屏蔽,或通過 canonical 指向不带參數的版本;
- 用 nofollow 或 JavaScript 控制次要篩選,减少蜘蛛可跟随的連結數量;
- 在 Sitemap 中只提交核心列表頁和分頁,不提交無限參數组合。
内鏈结构决定蜘蛛先走哪條路
蜘蛛在列表頁里會按連結出現的位置和數量来判断重要性。導航、面包屑、列表主体里的連結,通常比頁脚、侧栏深處的連結更容易被優先抓取。如果希望蜘蛛沿着“栏目頁 → 分頁 → 詳情頁”這條路径走,就要保證這條路径上的連結稳定、清晰、层級不過深。
同时要避免同一批詳情頁被大量篩選頁重复連結。重复連結會让蜘蛛反复訪問同一批 URL,增加回环概率,也會稀释真正需要抓取的新頁面。
服務器稳定性會影响路径能否走完
列表頁往往涉及資料库查询和模板渲染,响應時間比静態頁更長。如果蜘蛛抓取时频繁遇到 5xx、超时或连接中断,它會降低抓取频率,甚至暂时收缩抓取范围。原本能走完的分頁路径,可能只走到前几頁就停了。
- 给列表頁做缓存,减少資料库压力;
- 监控 5xx 和超时比例,別让蜘蛛在列表頁反复碰壁;
- 分頁數量多时,考虑静態化或预生成部分頁面。
用日誌和抓取資料检查收敛效果
收敛策略是否有效,不能只看感觉。可以定期查看服務器日誌里蜘蛛對列表頁和參數頁的訪問比例,观察參數頁抓取是否下降、詳情頁抓取是否上升。如果參數頁仍然占據大量抓取,就要回去检查内鏈暴露和 robots 規則。
另外,Sitemap 可以作為补充入口,把重要的列表頁和分頁明确交给蜘蛛,但它不能替代内鏈。蜘蛛更习惯沿着頁面里的連結走,Sitemap 更像一份备選路线图。
總结来说,列表頁分頁與篩選參數的核心問题是路径收敛:让蜘蛛用有限的抓取预算,走完你希望它走的主干路径,而不是在參數组合里打轉。把可抓取的分頁連結、受控的篩選内鏈、清晰的 canonical、合理的 robots 規則和稳定的服務器响應配合起来,蜘蛛的抓取路径才會更接近你的预期。