栏目页和列表页是蜘蛛进入正文的主要通道,但通道本身也有成本。当一个分类下有几十上百页翻页,而每一页的标题、描述、正文片段都差不多时,蜘蛛很容易把大量时间花在这条通道上,真正需要被发现的文章反而排在了后面。分页不是不能有,而是要让它在结构上清楚、在数量上有边界。
先看蜘蛛是怎么翻页的
常见的翻页实现大致有三种,它们对抓取的影响并不一样:
- 静态路径分页,例如 /list/2/、/list/3/,每一页都有独立可访问的地址;
- 参数分页,例如 /list?page=2,地址可变但容易叠加其他参数;
- 前端加载更多或无限滚动,只有在浏览器里滚动才会继续取内容。
前两种更容易被稳定发现和跟踪,第三种如果没有可访问的链接作为兜底,翻页出来的内容往往只存在于访客的浏览器里,蜘蛛翻到第一屏就结束了。
分页自查清单
- 翻页链接是否真的可点击。打开列表页,查看源代码,确认“下一页”是一个真实的 a 标签链接,而不是纯 JS 事件。可点击的链接才是蜘蛛继续往下走的台阶。
- 列表页标题是否互相重复。第 1 页到第 20 页全都叫同一个标题,会让蜘蛛难以判断哪一页更值得保留。至少在标题里体现出页码或栏目分段。
- 深分页有没有边界。一直翻到第 300 页、内容却是三年前的旧闻,这类页面基本没有访客价值,还会分走抓取额度。可以考虑设置翻页上限,或者把旧内容收进归档入口。
- 翻页参数是否收敛。page=2 后面再挂排序、筛选、跟踪码,会衍生出大量地址相似、内容相同的页面。让分页参数保持单一、干净。
- 列表页是否被当成正文页来优化。列表页的职责是分发链接,不是承载长文。堆大量关键词反而模糊了页面定位。
- 有没有归档或时间维度的第二入口。当翻页被截断时,归档页能让蜘蛛从另一个方向找到旧内容。
几种常见的坑
无限滚动只加载、不落链接
视觉上很流畅,但对抓取并不友好。比较稳妥的做法是保留一个可访问的分页地址作为兜底,或者为加载出来的内容生成对应的独立链接。
翻页参数被跟踪码污染
从推广渠道进来的翻页地址带上了来源参数,如果这些地址被外部引用,就会形成同一页面的多个版本。检查一下列表页是否存在这类入口。
把成千上万个列表页塞进站点地图
站点地图是给蜘蛛指路的,不是把所有地址都倒出来。只保留主要栏目和必要的分页入口,比一股脑提交更有效。
修复的优先顺序
如果一时改不完,可以按这个顺序处理:先保证翻页链接可被直接访问,再解决标题重复和参数收敛,最后处理深分页和归档入口。同时对照访问日志,看看蜘蛛实际翻到了第几页、哪些翻页被反复抓取却没有新增内容,这些数据比猜测更可靠。
分页的目标不是让蜘蛛翻完所有页面,而是让它在有限的行程里先找到值得收录的正文。列表可以深,但入口要清晰,边界要明确。
分页看起来只是几个按钮的事,实际影响着整个站点的抓取效率。定期打开栏目页翻到最后几页,用访客的视角走一遍,往往就能发现那些被忽略的问题。