站点运营

站点运营:分页导航自查,别让翻页地址变成抓取死角

分页是列表页最常见的结构,也最容易出问题:页码不连续、超出范围返回 200、每页条数随意变动、翻页链接靠 JavaScript 触发。这篇文章给出一份分页导航自查清单,从链接可抓取性、页码边界、canonical 处理到每页内容量,帮你把列表深处的页面重新拉回蜘蛛的视野。

站点运营

站点运营:分页导航自查,别让翻页地址变成抓取死角

栏目列表页通常是站内地址数量最多的一类页面。一个几百篇文章的栏目,按每页 20 条算,就会产生几十个分页地址。这些地址里排着大量正文页的入口,如果分页本身出了问题,蜘蛛顺着栏目往下走的路就断了。

先看清分页是怎么实现的

不同程序的分页地址形态差别很大,自查前先确认自己的栏目用的是哪一种:

  • 路径式:/news/page/2/,地址看起来像目录,容易被当成正常页面。
  • 参数式:/news?page=2 或 ?paged=2,需要确认参数是否稳定。
  • 异步加载:点击“下一页”只更新列表区域,地址栏不变,或者变了但内容靠脚本注入。

路径式和参数式通常都能被抓取,关键在于翻页链接是不是一个真实可点的 a 标签。如果翻页按钮是 onclick 事件或纯脚本渲染,蜘蛛往往点不动,第二页之后就成了它的盲区。

分页导航自查清单

  1. 翻页链接是否可抓取。在浏览器里禁用 JavaScript,看列表页底部还能不能看到指向第 2 页的链接。看不到,就说明这条路对蜘蛛是关着的。
  2. 页码是否连续可达。从第 1 页能否一路点到最后一页,中间有没有因为数据异常出现断号。
  3. 超出范围的页码返回什么。访问第 999 页这种不存在的分页,如果返回 200 加一个空列表,会生成大量无内容地址。比较稳妥的做法是返回 404,或跳回最后一页并给出明确提示。
  4. 每页条数是否固定。如果每页 20 条还是 50 条会随参数或登录状态变化,同一地址在不同时刻内容不同,会给页面质量判断带来干扰。
  5. 分页与筛选参数的组合。筛选、排序、分页三个参数叠加时,地址数量会成倍增长,需要限制可组合的范围。
  6. canonical 指向哪里。如果每个分页地址都 canonical 到第 1 页,后面的页面内容就很难被单独对待;一般建议分页页面自指 canonical,具体做法结合自身收录情况判断。
  7. 是否被 noindex 或 robots 屏蔽。有些站点为了省抓取预算把分页全部屏蔽,结果是列表深处的文章长期缺少入口。屏蔽前先想清楚替代的发现路径。

每页放多少条合适

条数太少,页数变多,蜘蛛要跑很多次才能看完一个栏目;条数太多,单页体积变大、加载变慢,抓取时也容易超时。20 到 50 条之间是比较常见的区间,具体看摘要长度和配图数量。真正要避免的是同一个栏目里条数忽多忽少。

分页之外还要留几条发现路径

分页有个天然缺陷:越早发布的内容越靠后。即使蜘蛛愿意翻到第 20 页,也不代表它每次都会翻。可以在栏目里补充几个辅助入口:

  • 按时间归档的页面,如 /news/2024/,把老内容重新拉到浅层。
  • 热门或推荐列表,给长期有价值的文章一个稳定入口。
  • 正文之间的相关阅读内链,比单纯依赖列表更稳。
分页导航是列表页的骨架。骨架错了,不是某一篇文章收录慢,而是整个栏目深处的地址都缺少入口。

怎么验证改动有没有效果

改完之后别只看总抓取量,去服务器日志里筛一下分页地址:抓取次数、返回的状态码分布、以及第 2 页之后的占比。如果大部分请求都停在第 1 页,说明翻页链接依然不够顺畅,或者后面几页确实没有值得抓的内容。搜索引擎后台的抓取统计和已发现未抓取的数据也可以作为参考,但结论要以自己站点的日志为准。

分页不是需要天天调整的东西,但值得定期查一次。尤其是改版、换模板、调整每页条数之后,翻页链接很容易在改动中被换成脚本触发,而这种问题不会报错,只会安静地少掉一批入口。