列表页翻到第三页之后,往往是运营最不关心的区域。但从抓取的角度看,分页恰好是蜘蛛把栏目内容走完的主要通道。分页规则一旦含混,蜘蛛要么在页码里绕圈,要么在第二页之后掉头就走。这份自查不复杂,重点是先把“你的分页到底是哪一种”搞清楚。
先分清站点里的几种分页
同样是“下一页”,背后的实现差别很大,处理方式也不一样。
- 顺序分页:页码明确、有终点,比如文章列表第 1、2、3 页。这类最好处理,规则也最容易统一。
- 无限加载:滚动到底自动追加内容,地址栏往往不变。蜘蛛看不到新增部分,等于后面几屏内容从未存在。
- 筛选后的分页:带参数的列表,参数组合会成倍膨胀。这块和筛选页自查是同一件事,建议分开做,别混在一次改动里。
- 时间归档:按年月归档,数量固定,通常不需要频繁调整,但别让它变成只剩入口、没有内容的空壳。
几个高频出问题的地方
页码链接是按钮而不是链接
“下一页”如果是个 onclick 按钮,蜘蛛拿不到可抓的地址。改成正常的 a 标签是最省事的做法,也是最容易被忽略的一步。
分页 URL 规则前后不一
有的栏目用 /list/2/,有的用 ?page=2,还有的混着来。同一套结构里最好只留一种写法,否则日志里同一批内容会出现好几种地址形态,统计和判断都会变麻烦。
canonical 一律指向第一页
把分页地址的 canonical 全部指向第一页,是常见的“防重复”做法,但代价是第二页之后的地址和其中的内容很难被单独对待。更稳妥的方式是让每个分页地址自指,同时保证第一页能直接链到后续页码。
深页码没有近路
如果第一页只给出一个“下一页”,第 8 页之后的内容需要爬很多次才能到达。可以在列表底部放一组固定的页码区间,或者提供一个“查看全部”的入口页,让深页码有一两条近路。
空列表页仍然返回 200
分类内容被清空后,第 5 页可能已经是空列表,但页面照样返回 200 和一句“暂无内容”。这类页面留几个无妨,数量一多就会占用抓取额度,建议做合并或者连向上一级栏目。
一份可以照着走的分页自查
- 抽查 3 个主力栏目,从第一页点到末页,看地址是否规律、是否都能直接用浏览器打开。
- 确认翻页入口是可抓取的链接,不是按钮或纯前端事件。
- 检查分页地址的 canonical、robots 规则是否与当前策略一致,别一边放行一边屏蔽。
- 看第一页到第 N 页的跳转层级,重要栏目尽量控制在两三次点击之内。
- 翻一遍日志里该栏目的抓取记录,确认蜘蛛确实走到了第二、第三页,而不是停在第一页反复抓取。
- 对无限加载列表,补一个可抓取的静态分页作为兜底。
- 把空列表、尾页的处理方式写进栏目规范,后面新增板块照着套。
调整之后的观察节奏
改完不要当天就下结论。第二天先看抓取日志里该栏目的请求数和状态码分布;一周后再看深页码有没有被访问、栏目内页面的抓取是否变均匀。如果两周过去深页码依然没有动静,多半不是分页本身的问题,而是栏目权重或入口位置需要再往前放一放。
分页不需要做得花哨,只需要让蜘蛛清楚地知道:下一页在哪、一共有多少页、哪些页值得来。
把这件小事固定成栏目上线的检查项,比每次出问题再临时排查更省力气。