内容越多的站点,越依赖列表页把老内容不断送到蜘蛛面前。首页和栏目页能放的链接有限,真正承担 URL 发现任务的往往是分页:第 2 页、第 3 页,一直到几百页。分页做得好不好,直接影响蜘蛛能不能顺着路径走到内容仓库的深处。
分页是蜘蛛的主要路径之一
蜘蛛沿着链接走站。首页链接到栏目页,栏目页链接到最新若干篇文章,再往下就是分页。如果第 1 页只展示 20 条,而分页入口又藏在页面底部,那么第 21 条之后的 URL 就只能靠 Sitemap 兜底。Sitemap 能补充清单,但它不携带内链关系,也不保证被优先抓取。
一个常见的现象是:新文章很快被抓,半年前的文章却长期停留在“已发现未抓取”。原因往往不在内容本身,而在于从栏目页到那篇文章的点击路径太远,或者中途就断了。
三种分页实现,蜘蛛看到的差别很大
传统静态链接分页
每一页都是独立 URL,底部有指向上一页、下一页和若干页码的 a 标签。蜘蛛可以顺序翻页,路径明确。这种形式对抓取最友好,也最容易在日志里追踪。
“加载更多”和无限滚动
这类交互通常靠脚本请求数据接口,再把结果插入页面。蜘蛛拿到的初始 HTML 里可能只有第一批内容,后续条目并不在文档中。如果脚本执行后能生成真实的 a 标签,渲染阶段还有机会拿到;如果只是一个点击事件,链接就不存在。
纯 JS 分页
分页按钮只改前端路由或局部刷新,地址栏不变。这类页面在蜘蛛眼里基本是一页,后面所有内容都缺少入口。要么改成带独立地址的分页,要么在页面里补一组指向各页的普通链接。
蜘蛛会把分页翻到多深
没有人能给出一个固定数字。实际能翻多深,取决于抓取预算、分页链接所处的层级、页面响应速度和站点整体规模。可以确定的是,层级越深、翻页越多,被完整抓取的概率越低。几百页之后的列表,往往只有 Sitemap 才能勉强维持发现。
如果站点内容量很大,与其指望蜘蛛翻到第 300 页,不如在栏目下面再分一层子分类,让每个列表的页数控制在合理范围内。层级看似多了一点,但从入口到任意一篇文章的点击距离反而缩短了。
让分页路径更好走的几个做法
- 每页保留完整的 a 标签链接,不要只写 JavaScript 事件。
- 分页导航放在列表内容之后、页脚之前,保证它出现在初始 HTML 里。
- 同时保留“上一页/下一页”和具体页码,方便蜘蛛从任意一页进入。
- 分页地址保持简洁稳定,避免每翻一页都追加一串筛选参数。
- 列表条目里的标题必须是指向详情页的链接,不要用跳转脚本包裹。
- 对确无抓取价值的筛选组合,用 robots.txt 或 noindex 处理,别让它们挤占路径。
从日志确认分页是否被走通
看服务器日志时,可以按分页 URL 的模式筛选,观察蜘蛛访问到了第几页、访问频率如何、返回码是否正常。如果只看到第 1 页和第 2 页,后面完全没有记录,说明路径在这里断了,需要回到内链和渲染方式上找原因。如果分页被大量抓取却迟迟带不出详情页,则要检查列表里的链接是否可解析、是否被脚本接管。
分页不是装饰,它是蜘蛛进入历史内容的通道。通道越直、链接越实在,新老 URL 被发现的节奏就越稳定。