站点运营

站点运营:分页与列表翻页自查,别让翻页把内容切成一地碎片

栏目列表页是蜘蛛发现站内内容的主要通道,但加载更多、脚本渲染、canonical 误指向首页等问题,常让翻页在后半段断掉。本文从翻页实现方式、链接可抓性、规范化写法、每页条数与翻页深度几个角度,整理一份可执行的分页自查清单。

站点运营

站点运营:分页与列表翻页自查,别让翻页把内容切成一地碎片

栏目列表页往往是蜘蛛发现站内新内容的主要通道。首页和栏目第一页的链接通常没问题,问题多出在第二页往后:翻页按钮靠脚本渲染、下一页没有真实 href、页码参数任意可访问,都会让蜘蛛在列表页前几屏就停下。

先确认站点用的是哪种翻页方式

传统翻页链接

形如 /news/page/2//news?page=2,每页都输出可点击的 a 标签。这种实现最容易被抓取,重点检查是否存在页码超限仍返回正常状态码的情况。

加载更多与无限滚动

这类交互对用户友好,但对蜘蛛不友好:按钮往往是 div 或 button,没有 href,点击后才由脚本请求接口并拼接 HTML。蜘蛛不点击,也就看不到后面的内容。可行的做法是保留一个真实可抓取的分页地址作为后备,例如在列表底部放一个指向下一页的链接,或者提供带页码的静态列表面。

分页链接要能被抓取和跟随

  • 分页导航使用 a 标签并带 href,不要只绑 onclick 事件。
  • 不要在分页链接上随意加 nofollow,除非确实不希望蜘蛛继续向后翻。
  • 确认分页链接在初始 HTML 中就存在,而不是滚动到底部后才由脚本插入。
  • 模板改版后回头看一眼分页导航是否被隐藏容器或条件判断包裹住。

canonical 与 prev/next 别用错

一个常见错误是把所有分页页的 canonical 都指向列表首页,这等于告诉搜索引擎这些页面都是首页的副本。页面上的条目链接仍可能被抓到,但分页页本身很难有独立价值。更稳妥的做法是每页 canonical 指向自身。

rel="prev" 与 rel="next" 目前主要作为路径提示存在,不再作为索引信号。保留无妨,但不能用它替代可抓取的翻页链接。

每页条数与翻页深度

每页条数太少,页数迅速膨胀,抓取预算被摊薄;太多则单页体积变大,解析和渲染成本上升。可以结合日志观察:蜘蛛实际翻到第几页,哪些页码几乎从不出现。如果长期只抓到前三页,后面的内容就只能依赖 sitemap 和内链补充入口。

缩短路径的常用办法是在栏目页增加“最新”“热门”模块,或维护按时间归档的专题页,让旧内容有更浅的入口,而不是只能靠一页页翻过去。

参数与伪静态要统一

?page=2 与 /page/2/ 本身都能用,问题在于同一个列表出现多种可访问形式,且都正常返回。建议固定一种,其余做重定向,避免同一份列表堆出多套地址,也避免和其他筛选参数叠加成大量组合。

自查清单

  1. 随机挑三个栏目,禁用 JS 后看分页链接是否仍在 HTML 中。
  2. 检查分页页的 canonical 是否指向自身。
  3. 翻到最后一页,确认没有空白页或循环跳回第一页。
  4. 测试超出总页数的页码,确认返回 404 或 410,而不是 200 的空列表。
  5. 在日志中统计分页 URL 的抓取频次与状态码分布。
  6. 确认分页参数不会与排序、筛选组合成大量可访问地址。
分页不是排版细节,而是内容能否被逐层发现的基础设施。先让翻页链接可抓,再谈每页放多少条。