内容型站点很难把所有文章都铺在首页,分页、翻页、“加载更多”就成了蜘蛛继续往下走的通道。通道断了,蜘蛛不一定报错,只是安静地停在第一页——你在后台看不到任何异常,收录量却迟迟不见起色。这篇自查清单围绕分页结构本身,帮你确认蜘蛛能不能顺利翻到第二页、第三页。
先分清站点用的是哪种分页
- 传统分页:形如 /list/?page=2 或 /list/2.html,翻页链接写在页面上,蜘蛛顺着 a 标签走。
- “加载更多”按钮:首屏只给一部分,点击后由 JavaScript 追加内容。
- 无限滚动:滚动到底部自动加载,没有独立的翻页地址。
三种形态对蜘蛛的友好程度不同。传统分页最容易被发现,后两种要看实现方式——如果翻页后地址不变、内容靠脚本注入,蜘蛛很可能只看到首屏那几条。
分页自查清单
- 在关闭 JavaScript 的情况下打开列表页,检查分页链接是否还存在。如果“下一页”只是一个 button,蜘蛛通常不会去点它。
- 复制“下一页”的链接地址,看是否为可访问的独立 URL。参数式、路径式都可以,关键是要能直接打开。
- 手动改一下页码,翻到靠后的一页(比如第 10 页),确认仍然有内容,而不是空白页或报错。
- 检查分页链接是否带有 rel="next" / rel="prev",或者至少在页面上有清晰的文字锚点。
- 确认分页页面的 title、description 有区分(例如带上“第 2 页”),不要全部照抄第一页。
- 查看第 2 页以后的 canonical 指向哪里。若全部指向第一页,等于告诉搜索引擎“后面几页不用看”。
“加载更多”和无限滚动的处理
这两种交互对用户友好,对蜘蛛不友好,因为内容不在初始 HTML 里。常见的折中做法是:保留一个普通的分页地址作为兜底(如 /list/2.html),按钮点击后用脚本改地址;或者首屏以下的内容由服务端渲染输出,脚本只负责交互。至少要让每一批内容都有一个可以直接打开的 URL,否则蜘蛛翻页这件事只能靠猜。
分页参数别太随意
排序、筛选、每页条数这些参数,如果都能生成可访问的地址,就很容易组合出大量内容相近的页面。蜘蛛撞进去,会在一堆重复列表里消耗抓取配额。建议对这些参数做限制:能通过 robots.txt 屏蔽的屏蔽,不方便屏蔽的用 canonical 收敛,或者加 noindex。
列表页本身也要克制
有些站点把文章的完整正文直接输出在列表页,翻几页之后,同一篇内容在列表地址和详情地址各出现一次,重复度很高。更稳妥的做法是列表页只给标题、摘要或前一两段,正文留在详情页。这样既减轻页面体积,也让摘要有一个明确的归属地址。
用抓取日志确认蜘蛛真的翻页了
打开服务器日志或抓取统计,搜索列表页的地址,看有没有出现 page=2、page=3 之类的记录。如果只有第一页反复被访问,说明翻页入口对蜘蛛不可用,前面几项自查大概率存在问题。日志里的抓取频率、状态码和访问路径,比任何推测都直接。
提示:分页不是越多越好。列表页通常只需保留前若干页的可抓取入口,更早的内容交给分类页、标签页或站内搜索去承接,避免让蜘蛛在深层翻页里反复打转。
分页是站点结构里比较容易被忽略的一环,因为它平时看起来“能点、能翻”。但对蜘蛛来说,能不能点、能不能翻,取决于链接是否写在 HTML 里、地址是否独立可访问。把这几项确认一遍,通常比反复提交 Sitemap 更有实际意义。