栏目列表页往往是站点里被抓取最多的页面之一,但很多运营者只盯着第一页,后面的第 2 页、第 3 页乃至更深的分页几乎没人管。结果是:旧内容沉在列表深处,蜘蛛在翻页链上兜圈子,用户想找几个月前的文章只能靠站内搜索。分页看起来是个小功能,实际上决定了栏目能不能被顺利走完。
先分清你的分页属于哪种形态
- 路径式:如 /news/page/2/,结构清晰,容易被理解成同一栏目的延续。
- 参数式:如 /news?page=2,能用,但要避免和排序、筛选参数混在同一条地址里。
- 按钮式:翻页链接是普通 a 标签,还是靠点击事件拼接地址,差别很大。后者多数情况下蜘蛛走不到。
- 无限滚动或“加载更多”:视觉上流畅,但如果没有可访问的翻页地址作为兜底,等于把后面的内容藏了起来。
分页自查清单
一、翻页链接必须是真实可点的链接
最快的判断方法:鼠标悬停看状态栏、右键看能否复制出地址。如果翻页靠脚本拼接参数,蜘蛛很难继续向后走,第二页之后的内容就只能依赖其他入口被发现。把“下一页”“末页”“页码”做成普通链接,是改动成本最低的一步。
二、分页参数尽量收敛成一种
常见问题是同一栏目同时存在 ?page=2、?paged=2、?p=2 等写法,站内链接混用,导致同一个列表出现多套地址。建议固定一种路径或参数形式,所有翻页入口保持一致,历史遗留写法做跳转处理,减少重复请求。
三、标题与描述别复制粘贴
如果第 2 页的标题和第一页一模一样,用户和蜘蛛都分不清这是哪一段内容。可以在标题里带上页码或时间范围,例如“行业动态 第 2 页”;描述里也可以说明这是列表的第几页,帮助点击前的判断。
四、页码深度和每页条数要算一算
每页 10 条、栏目共 500 条内容,就意味着 50 页。指望蜘蛛一路翻到第 50 页并不现实。可以适当调大每页条数(15 到 30 条是常见区间),同时用子分类、标签、时间归档等方式,给旧内容留出更短的入口,而不是全部压在翻页链上。
五、“加载更多”要留一条后路
如果前端采用无限滚动,建议同时保留传统分页地址,或者在追加内容时同步更新地址栏,让每一次内容延伸都有对应的地址可访问、可分享、可被抓取。否则列表在视觉上很长,在代码层面却只有一屏。
六、去日志里看翻页有没有被走到
在服务器日志中筛选分页路径,观察蜘蛛是否访问过第 2、3 页,访问是否稳定,是否出现大量参数变体被反复请求。日志比主观猜测可靠得多,也能帮你判断每页条数调整后是变好了还是变糟了。
调整之后怎么验证
- 关闭 JavaScript,用纯文本方式打开栏目页,看还能不能点到第二页。
- 挑一个较深的页码,直接在地址栏输入访问,确认返回正常且内容对得上。
- 检查站内所有翻页入口,确认参数写法统一、没有多余变体。
- 观察一段时间日志,看翻页抓取是否稳定,有没有异常参数被持续请求。
分页不是越深越好,也不是越少越好。目标是让栏目里的每条内容,都能在少数几次点击内被用户和蜘蛛找到,同时不给服务器制造大量重复且无意义的请求。