站点运营

站点运营:分页与“加载更多”自查,别让栏目页只暴露第一屏

栏目列表页是蜘蛛发现新内容的主要入口,但改成“加载更多”或无限滚动后,第二屏之后的链接往往不在初始 HTML 里。本文从源码可见性、分页 URL、canonical 指向、日志观察几个角度,整理一份可执行的分页自查清单,并给出静态分页兜底的思路。

站点运营

站点运营:分页与“加载更多”自查,别让栏目页只暴露第一屏

栏目列表页通常是蜘蛛发现新内容的主要入口。不少站点把精力放在首页和详情页上,却忽略了列表页的分页——尤其是从传统翻页改成“加载更多”或无限滚动之后,第二屏之后的内容在初始 HTML 里根本不存在。

先确认蜘蛛能看到什么

用抓取工具或者直接查看网页源码(关掉 JavaScript,或只看初始响应),确认列表里是否包含指向详情页的真实 a 标签链接。如果详情链接要滚动到底部才由脚本插入,蜘蛛拿到的响应里就是一张空列表。

  • 首屏是否有可点击的链接,而不是只有图片、按钮和骨架屏。
  • 点击“加载更多”后 URL 是否变化,是否有可独立访问的地址。
  • 分页是否有对应的静态地址,例如 /list/2 或 ?page=2。

分页 URL 的几处常见坑

  • 只有第一页有入口链接,后续页靠脚本拼接参数,且返回内容依赖会话或 Cookie。
  • 所有分页的 canonical 都指向第一页,等于告诉搜索引擎后面几页都是重复内容。
  • 分页参数顺序不稳定,同一页出现多个不同地址。
  • 筛选、排序、分页三个参数叠加,组合出大量内容近似的结果页。

一份可执行的自查清单

  1. 打开任一栏目的第二页、第三页,看 URL 是否可直接访问、刷新后是否稳定。
  2. 查看该页源码,确认 canonical 是否指向自身,而不是统一指回第一页。
  3. 确认分页链接是 a 标签,并且出现在上一页的 HTML 中,而不是只在脚本里生成。
  4. 翻到最后一页,检查是否有返回上一页或返回栏目的路径,不要留下断头路。
  5. 检查各分页的标题与描述是否完全一致,必要时用页码做区分。
  6. 在服务器日志里筛出列表页地址,观察蜘蛛是否访问过第一页之后的页码。

处理思路

无限滚动和“加载更多”对用户体验友好,但建议同时保留一套可抓取的分页地址作为兜底:脚本加载的内容,仍然能通过 /page/3 这类链接被直接访问。两者可以共存,由同一批数据渲染,维护成本并不高。

对于筛选条件过多的结果页,可以考虑用 robots.txt 或 meta noindex 做抓取控制,但动手之前先确认这些页面有没有承担 URL 发现的任务。真正需要保留的,是那些能通向详情页的列表分页;纯粹组合排序、不指向唯一内容的页面,才适合收紧。

列表页的价值不在于它本身有多少文字,而在于它能把蜘蛛送到哪些页面。如果这条路只留给脚本,等于把发现新内容的主动权交了出去。

调整之后别急着下结论,持续观察一段时间日志,看详情页的首次抓取和更新后的再次访问有没有变化,再决定是否继续微调。分页这种基础结构,改动一次往往要几周才能看出趋势。