列表页通常是站点里 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 规则和稳定的服务器响应配合起来,蜘蛛的抓取路径才会更接近你的预期。