大多数电商、资讯类站点,详情页的发现入口都压在列表页翻页上。首页和栏目页能带到的只是一小部分,真正大量的 URL 是靠第 2 页、第 3 页这样一页页展开的。所以翻页链接的形态,直接决定了蜘蛛能不能走到深层。
一、蜘蛛眼里的翻页链接长什么样
蜘蛛不会点按钮,它只认能解析出来的链接。翻页有三种常见实现,抓取结果差别很大:
- 静态链接:list?page=2 写在 a 标签的 href 里,蜘蛛顺着走,最稳定。
- 滚动加载:页面到底部由 JS 请求下一页并追加,地址栏不变。蜘蛛通常看不到后续内容,除非另有静态入口。
- 加载更多按钮:如果是 button 标签且没有 href,等于给蜘蛛关上门。
如果站点必须用后两种交互,至少给每页留一组普通 a 链接做兜底,比如在列表底部放下一页和页码。
二、翻页路径上常见的断点
- 页码只渲染前几页,后面靠 JS 展开,蜘蛛跟进不去。
- 下一页到达末页后直接消失,却没有明确的终止信号,蜘蛛会反复试探。
- 翻页链接把排序、筛选参数一起带出去,例如 page=2 加 sort 再加 color,蜘蛛跟着走出一堆参数变体,把抓取量耗在重复列表上。
- 页码超出范围时返回 200 的空列表页,形成软 404,既浪费抓取也容易混淆判定。
- 分页用井号或 history.pushState 改地址,页面没有真实可请求的 URL。
三、让翻页路径更好走
可以从链接和入口两个方向调整:
- 每一页都保留下一页和可点击的页码,不依赖 JavaScript 生成。
- 分页参数尽量单一,排序、筛选变体不要出现在翻页链接里,需要的筛选页单独给入口。
- 到最后一页时给出明确的结束信号,避免蜘蛛无限试探。
- 对特别深的内容,用分类、标签、专题等第二入口缩短路径,不要只靠一路翻页。
- 如果使用 rel=next 与 rel=prev,要知道主流搜索引擎已不再把它当作索引信号,写了无害,但别指望它替代可见链接。
四、怎么确认蜘蛛翻到了后面
光看页面上的链接不够,得回到日志验证:
- 在服务器日志里筛分页参数,看访问是否形成连续序列,比如 page=1 到 page=2 再到 page=3。
- 看深层 URL 的首次被抓时间,以及抓取它的 referer 来自哪一页。
- 结合 Sitemap,把重要但不常被抓的 URL 单独列出,作为兜底发现渠道。
- 如果日志里长期只有前两页被抓,问题多半在翻页链接本身,而不是内容质量。
分页看起来是最基础的导航,但它同时承担着 URL 发现和路径收敛两件事。把翻页链接做成蜘蛛能走的普通链接,往往比反复调整抓取设置更有效。
抓取路径的宽度由入口决定,深度由翻页决定,两者缺一,深层内容就很难被稳定发现。