分页列表看起来只是“上一页、下一页”的小功能,但它是搜索蜘蛛发现旧内容的重要路径。一个栏目如果只靠首页和最新几篇,蜘蛛很难继续往深处走;分页做得好,能帮助 URL 发现,做得不好,也可能让蜘蛛在参数和空列表里绕圈。
先确认:分页到底给谁看
分页首先服务于用户,让访客能继续浏览历史内容;其次才是给搜索蜘蛛提供发现路径。两者目标一致,但实现时容易只顾前端体验,忽略了链接是否真实存在、地址是否稳定。
常见分页形式
- 页码式:/list/page/2 或 ?page=2。
- 加载更多:点击按钮追加内容,地址栏不变。
- 无限滚动:滚动到底自动加载。
- 筛选与排序:按时间、热度、分类等生成不同顺序的列表。
前两种如果处理得当,蜘蛛可以顺着链接抓取;后两种如果缺少兜底地址,蜘蛛可能只看到第一页。
分页自查清单
1. 每一页是否可直接访问
随便找一个深层分页地址,粘贴到无登录、无缓存的浏览器里打开。页面应该返回正常状态,内容与页码对应,而不是永远显示第一页。如果地址返回错误或跳回首页,蜘蛛会认为这条路径断了。
2. 翻页链接是否出现在 HTML 中
有些站点用按钮加脚本生成翻页链接,用户能点,但 HTML 源码里没有可抓取的地址。搜索蜘蛛不一定执行复杂交互,结果只能停在第一页。至少要让“下一页”和页码链接以普通链接形式出现在源码里。
3. 空列表页怎么处理
当页码超过实际内容总页数时,常见结果是返回一个空列表。大量空页会占用抓取请求,也让日志变得嘈杂。可以考虑对超出范围的页码返回 404 或 410,或者在页面上明确提示没有更多内容,并避免让“下一页”继续指向空地址。具体选择要结合网站技术条件,但不要放任无数空页可访问。
4. 排序和筛选参数是否失控
同一个列表加上不同排序参数,就可能生成一组内容相近的地址。如果这些地址都能被抓取,容易造成重复。运营上可以只保留默认排序为可抓状态,其他排序用参数控制,并通过 robots.txt、canonical 或 noindex 等方式减少重复。注意不要一刀切挡住正常分页。
5. 加载更多和无限滚动是否有分页兜底
如果前端采用无限滚动,建议保留一个传统分页地址,例如 /list?page=3,让蜘蛛和用户都能直接到达。加载更多按钮也尽量配合真实链接,而不是只靠点击事件。
6. 列表页本身是否有足够内容
如果分页页面上只有几十个标题链接,没有摘要、发布时间或栏目说明,价值会比较低。可以适当补充列表摘要、更新日期,帮助用户判断是否点击。但不要为了填充而堆砌关键词。
7. 站点地图要不要放分页
通常不需要把每个分页都写进站点地图。站点地图更适合放栏目首页和重要详情页。分页可以通过列表页上的链接自然被发现。如果分页数量巨大,更要避免让站点地图变成低价值地址清单。
8. 观察抓取日志
在一段时间内查看服务器日志,统计搜索蜘蛛在分页地址上的请求比例。如果大量请求落在 ?page=、排序参数或空列表上,而详情页抓取很少,就说明分页结构需要调整。可以对比调整前后的日志变化。
一个简单的抽查方法
- 从栏目第一页开始,手动点到第三页,记录地址变化。
- 复制第三页地址,用无痕窗口打开,确认内容一致。
- 查看该页源码,搜索“下一页”或页码链接,确认是普通链接。
- 尝试访问一个明显超出范围的页码,看返回什么状态。
- 加一个排序参数再访问,观察是否产生新地址。
这些动作不需要复杂工具,却能暴露大部分分页问题。
分页不是越多越好,也不是全部隐藏就好。关键是让有价值的列表页可发现,让低价值或重复的地址少被浪费抓取。
站点运营里的很多问题都类似:单个页面看起来不起眼,累积起来却会影响蜘蛛对整站结构的判断。定期抽查分页,比等到日志里全是参数地址再回头处理要轻松得多。