站点运营

站点运营:分页与翻页自查,把列表页的深层地址收好

列表页翻页地址一多,蜘蛛的抓取就容易分散。这篇讲清分页地址的常见形式、翻页链接怎么写、深翻页是否要保留、分页页的 canonical 该指向哪里,并附一份可以直接照着核对的自查清单,帮栏目列表页把地址做直、把链接做实。

站点运营

站点运营:分页与翻页自查,把列表页的深层地址收好

列表页、归档页、标签页往往数量庞大,翻页地址一多,蜘蛛在路上花的时间就多。分页本身不是问题,问题在于分页的写法是否让蜘蛛容易判断主次,是否把真正有价值的详情页挡在了后面。

先看清分页地址的样子

常见的分页形式有几种:路径式 /list/page/2/、参数式 /list?p=2,以及靠按钮触发的加载更多。前两种对蜘蛛友好,能直接请求;按钮触发但实际仍发出可抓取请求的,也不算差;纯前端切换、地址始终不变的那种,蜘蛛通常只能看到第一页。

把栏目下所有分页形式列一遍,标出哪些能独立打开、哪些不能。不能独立打开的,考虑给它一个可访问的地址,或者至少让第一页承担被发现的责任。

翻页链接要能被点开

用真实的链接

下一页、上一页、页码数字最好都是 a 标签,href 指向真实地址。用 JavaScript 监听点击再跳转,蜘蛛不一定跟得下去。把翻页按钮做成 span 或 div 的情况也不少,改起来成本不高,收益却很直接。

加载更多与无限滚动

无限滚动适合浏览,不适合抓取。比较稳妥的做法是:首屏之后仍保留分页地址,滚动到底部时把下一页的链接以可点击形式补上;或者为被滚动加载的内容准备一份分页视图。不要求两套完全一样,但至少让后续内容有一个稳定入口。

深翻页要不要留

一个栏目如果有一百页,第十页之后的内容往往流量很小、重复度却高。可以设一个阈值:超过一定页数后,把旧内容收进归档汇总页,或者按时间、分类拆分栏目,让每个列表的深度可控。

另一些站点选择对深翻页加 noindex,页面仍可访问但不去争排名。这样做要小心:noindex 不等于不抓取,蜘蛛依然会请求;如果不想浪费额度,可以在 robots.txt 里屏蔽带特定页码参数的地址,但被屏蔽的页面上的链接也不会被跟随,需要权衡。

分页页的规范化

分页页的 canonical 一般指向自身,不要全部指向第一页。把第 2 页 canonical 到第 1 页,等于告诉搜索引擎后面几页是重复内容,页面上指向详情页的链接价值会被削弱。rel=“prev”和 rel=“next”现在已经不是必须项,不必再为它纠结,把链接结构做清楚更重要。

另外,同一列表通过筛选参数可能生成大量地址,这些组合地址如果再叠上翻页,数量会成倍增加。参数页该收敛的收敛,分页地址尽量只保留主干那一条。

一份简要自查清单

  1. 栏目下的分页地址能否直接打开,返回 200 而不是被重定向到首页。
  2. 翻页链接是否为可点击的 a 标签,href 是否完整。
  3. 页码数量是否与内容量匹配,有没有空页、跳页或重复页。
  4. 第 2 页之后的内容,能否通过站内链接到达。
  5. 分页页的 canonical 是否指向自身,没有统一指向第一页。
  6. 无限滚动的页面是否留有可抓取的后续入口。
  7. Sitemap 里是否混入了大量分页地址,占用了清单名额。
分页的目标不是让蜘蛛翻完每一页,而是让它知道内容在哪、值不值得继续。把地址做直、把链接做实,比追求页数完整更有用。

调整之后,隔一段时间看看日志里分页地址的抓取比例是否变化,详情页的抓取次数有没有上升。数据不必期待立刻见效,方向对了,慢慢会稳。