站点运营

站点运营:分页与列表页自查,别让翻页地址堆出一批重复内容

分页和列表页是栏目运营里最容易被忽略的一环。翻页地址能否独立打开、canonical 是否全指回第一页、加载更多有没有真实链接、空页和超页码如何处理,都会影响蜘蛛能否继续往下发现内容。这篇给出一份可以直接照着做的分页自查清单。

站点运营

站点运营:分页与列表页自查,别让翻页地址堆出一批重复内容

栏目一多、内容一多,列表页就会自然出现翻页。分页本身不是问题,问题是很多站点的分页只考虑了“人点着方便”,没有考虑“蜘蛛怎么爬、怎么判断这些页面”。结果就是:翻页地址要么被当成一批高度相似的内容,要么干脆断在某一页,后面的内容蜘蛛再也够不到。

先搞清楚你的分页长什么样

不同建站程序的分页形式差别很大,常见的有几种:

  • 查询参数型:/category/news?page=2,有时还叠加排序或筛选参数。
  • 路径型:/category/news/page/2/,URL 看起来像独立目录。
  • 按钮加载型:页面上是“加载更多”按钮,实际用 JavaScript 拼接内容。
  • 无限滚动:一直往下滑,地址栏可能只变化一小段,甚至不变。

这些形式各有优缺点,但自查时都要回答同一个问题:翻到第二页之后,页面地址是否真实存在、能否被独立打开、能否被正常链接到。

状态码与可达性抽查

随机挑几个栏目,手动翻到第二页、中间某一页和最后一页,逐项确认:

  • 页面返回的是正常的 200,而不是跳回首页或直接报 404。
  • 超出实际页码的地址,比如只有 8 页却访问 page=99,有明确处理:要么返回 404,要么跳回第一页,尽量不要给一个空白列表还返回 200。
  • 分页区的“上一页/下一页/页码”是真实可点的链接,而不是只能靠 JavaScript 事件触发的 span。
  • 用鼠标中键或复制链接新开窗口,能打开对应分页,而不是打开空白页或首页。
如果分页链接必须经过点击脚本才能生成,蜘蛛很可能只看到第一页。可以考虑在服务端输出一份基础分页链接,脚本再在此基础上做体验优化。

canonical 别全指回第一页

这是分页里最常见、也最容易踩的一个坑:有些模板为了“避免重复内容”,把第二页之后的 canonical 全部指向列表第一页。这样做等于告诉搜索引擎“这些页面的正式版本只有第一页”,后面的内容虽然还在,但被发现和被当作独立入口的机会就被压低了。

更稳妥的做法通常是让每个分页地址自引用 canonical,即第二页指向第二页自己。同时确保第一页、第二页的标题、描述和列表内容确实有区别,而不是只有页码数字不同。

标题、描述与内容重复度

  • 分页标题可以带页码,但不要所有页都完全一样。
  • 描述如果由程序自动截取,注意别把第一页的摘要原样复制到每一页。
  • 列表项本身不同,但页面框架、侧栏、推荐位如果高度一致,属于正常现象,不必过度处理,重点还是让每一页有可区分的列表内容。
  • 如果某一页列表为空,考虑不要让它进入索引。

抓取深度与入口

分页越深,蜘蛛到达的成本越高。可以自查几点:

  • 每页展示条数是否合理。条数太少会把内容摊到很多页,条数太多又会让单页体积变大。
  • 深层分页有没有其他入口,比如分类的年份归档、标签聚合、相关推荐。入口多了,不一定要靠一页页翻到底。
  • 如果重要内容只出现在很深的页码里,考虑调整栏目结构或增加直接入口。

加载更多与无限滚动的兜底

对访客来说,按钮加载和无限滚动很顺;对蜘蛛来说,如果 URL 不变化、链接不存在,这些内容可能等于不存在。建议至少保留一套可访问的分页 URL 作为兜底,让加载更多只作为前端的增强体验。

一次十分钟的自查清单

  1. 选三个有代表性的栏目,各翻到第 2 页、中间页、最后一页。
  2. 看状态码、canonical、标题是否正常。
  3. 复制分页链接新开窗口,确认能独立打开。
  4. 查看页面源代码,确认分页链接是 a 标签而不是纯脚本。
  5. 检查超出页码的地址如何处理。
  6. 如果站点有日志,看看分页地址是否被蜘蛛访问过,访问到第几页。

分页不需要做得多花哨,关键是把翻页地址做到可访问、可区分、可继续往下走。把这几件事确认清楚,列表页就不会变成一批被忽略的重复地址。