列表翻到第 2 页、第 3 页,或者用户不断下拉的无限滚动页面,都会牵扯出一批 URL。它们有的有独立检索价值,有的只是同一个列表的另一种呈现。判断标准不是“能不能收录”,而是“这个 URL 被搜到之后,对用户有没有意义”。
翻页 URL 的三个常见来源
- 传统分页:/list?page=2、/list/page/2/ 这类带页码的地址。
- 无限滚动:URL 保持不动,内容靠脚本往下追加。
- “加载更多”按钮:点击后请求接口,把结果拼接到当前页。
第一种是蜘蛛能直接顺着链接发现的独立 URL;后两种在默认状态下,新内容常常藏在脚本或接口里,蜘蛛看不到。
第 2 页之后的内容有没有独立价值
可以先问一个问题:这页上的条目,能不能在别的地方被搜到?
- 商品列表、文章列表:每个条目都有自己的详情页,第 2 页更多是导航作用,检索价值偏低。
- 论坛楼层、评论区:内容只存在于翻页里,没有独立地址,那它本身就是有价值的。
- 站内搜索结果页:由查询词动态生成,一般不适合放开收录。
如果条目都有独立的详情页,把第 2 页之后的 URL 全部放开,通常是让索引里多了一批薄内容;关掉之后,用户依然能通过详情页和内链找到东西。
而有一类站点绕不开分页:内容本身没有独立详情页,比如论坛楼层、长评论。这时翻页就是内容唯一的 URL,放开收录是合理的,但前提是翻页链接可抓取,并且不出现空页和重复页。
三种形态的处理顺序
传统分页
第 1 页保持可抓取,后面的页码按上面的价值判断决定去留。不论收还是不收,都要保证每个条目在站内有稳定入口,不要让它只能靠一页页翻才能到达。
无限滚动
无限滚动的主要问题不是收录多少,而是蜘蛛根本触发不了加载。常见的兜底办法是补一套分页 URL:让脚本追加的内容同时存在一份可访问的分页入口。入口可以放得低调,但必须是真实可点的链接,而不是靠滚动事件生成。
加载更多
先看按钮是不是真正的链接。用 a 标签指向一个带参数的 URL,比纯 JS 事件更容易被发现。接口返回的 JSON 本身一般不会被当成页面收录,但里面那些条目的 URL 能不能被蜘蛛拿到,取决于它们在别处还有没有入口。
可抓取性自查顺序
- 禁用 JavaScript 后打开页面,看还能显示几条内容。
- 查看网页源码,确认条目链接出现在 HTML 里,而不是渲染之后才有。
- 检查翻页链接是否指向真实 URL,而不是空 href 或 javascript 伪协议。
- 抽查第 2、3 页的状态,分清是没被抓到,还是抓到了但没进索引。
- 确认核心条目有独立 URL,并且从列表页、详情页、站点地图中至少两条路径可达。
容易被忽略的变体问题
翻页地址很容易被参数撑成很多形式:?page=2、?p=2,再加上排序参数就更多了。这些变体如果全部放开,同一批内容会出现多个入口。可以用规范标签指回不带排序参数的分页地址,或者干脆只保留一种翻页形式。
翻页处理的目标是让蜘蛛把有价值的条目发现出来,而不是让每一页都进索引。收录只是进入索引,能不能被搜到、排在哪里是另一回事,不必把翻页数量当成收录成绩。