列表页和分页是站内链接最密集的地方,也是蜘蛛最容易陷进去的地方。一个栏目如果翻到第 200 页还有内容,蜘蛛可能先把这两百页走完,才回头去看你真正想被看到的那几篇文章。分页本身不是问题,问题在于分页没有边界、没有规则,也没有人管。下面这份清单可以按顺序过一遍。
一、分页链接是不是真实链接
- 打开页面源码,确认“下一页”用的是 a 标签带 href,而不是绑定 click 事件的按钮。纯 JS 翻页在未渲染的 HTML 里往往什么都没有。
- 检查分页链接有没有被顺手加上 rel="nofollow"。列表页的主要价值就是给内容页提供入口,屏蔽掉等于自断路径。
- 如果站点依赖前端渲染列表,确认渲染后的链接能被正常解析,或者干脆在 HTML 里输出一份分页导航。
二、分页地址的形式要统一
同一个列表同时存在 ?page=2 和 /page/2/ 两套地址,是常见的重复来源。做法是确定一种为主,另一种用 301 指过去,或者干脆不生成。
- 第一页尤其容易出问题:列表首页和 ?page=1 往往是同一批内容,选一个作为规范地址即可。
- 警惕参数叠加。排序、筛选、分页三个参数组合起来会产生大量近似地址,蜘蛛走进去很难自己绕出来。
- 筛选类参数如果对内容没有实质区分,建议不生成可抓取链接,或直接屏蔽抓取。
三、canonical 与 noindex 怎么取舍
一个常见的误操作是把所有分页页的 canonical 都指向列表第一页。这样做的结果是,后面的分页不再被当作独立入口,列表页作为抓取通道的作用被削弱。
- 分页页通常指向自身更稳妥;如果内容确实高度重复且无独立价值,再考虑其他处理。
- rel="next" / rel="prev" 现在不再被主流搜索引擎用作索引信号,可以保留作为爬取线索,但不要把它当成一条规则来依赖。
- 如果某类列表页只是聚合、没有独立价值,可以考虑 noindex, follow,既不让它占索引,又保留链接和抓取路径。
四、翻页的边界要明确
- 超出范围的页码,例如只有 10 页却请求第 11 页,应返回 404 或合适的错误状态,而不是统统返回 200 加一个空列表,否则会引出无穷无尽的空页。
- 无限滚动(瀑布流)要额外提供可点击、可被抓取的分页链接,否则内容只能靠接口地址被发现。
- 移动端和 PC 端分页行为应保持一致,不要一边能翻、另一边只能看第一页。
五、列表页自身的内容质量
- 分页页的标题不要整站或整栏目一个样,至少能体现出层级或页码差异。
- 列表项尽量带摘要或缩略图,避免整页只有密密麻麻的纯链接,这类页面通常很难有独立价值。
- 长期没有内容的空栏目、空标签页,该合并就合并,该下线就下线,不要留着让蜘蛛反复访问。
六、用日志复核,而不是凭感觉
翻页问题最后还是要回到日志上验证。统计一段时间内蜘蛛的请求分布,看看列表页和分页占了多少比例。如果发现某个栏目的分页请求量远高于内容页,基本可以判断抓取被翻页吃掉了。
分页不是要一刀切删掉,而是让每一页都有明确的作用:要么提供入口,要么承载内容,要么干脆不生成。
建议把这份检查做成固定动作:新增栏目时确认分页规则,改版时确认地址形式没有分叉,每季度按日志复核一次。分页这种细节平时不显眼,但一旦失控,代价就是蜘蛛的时间被大量消耗在翻页上。