搜索抓取

无限抓取空间:日历归档、筛选组合与自我引用链接的收敛方式

站内 URL 数量失控,往往不是内容多,而是参数组合和归档页太多。本文梳理日历归档、筛选排序、分页环路、会话参数四类容易形成无限抓取空间的来源,给出识别信号与收敛做法,并附上线新功能前的核对清单,帮助把抓取配额留给真正需要被发现的页面。

搜索抓取

无限抓取空间:日历归档、筛选组合与自我引用链接的收敛方式

站点规模做大之后,URL 总数常常不是被内容撑起来的,而是被参数组合和归档页撑起来的。搜索蜘蛛沿着链接一步步走,只要页面上有可达的链接,它就可能在那些页面上花时间。这类结构通常被称为无限抓取空间,它不一定是错误,但会让抓取配额被大量低价值页面占掉。

什么样的链接会让抓取空间无限扩张

判断标准不复杂:从一个入口出发,能不能沿着页面上的链接走到越来越多的 URL,而这些 URL 之间内容差别很小。如果能,就是抓取空间失控的信号。典型特征是页面上存在一个永远指向更多同类页面的链接,而且每一层都还能继续往下走。

四类常见来源

一、日历与归档页

日期归档是最常见的一类。日历组件可以向前翻、向后翻,归档页可以按年、按月、按天生成,多年内容就能拉出成百上千个列表页。这些页面本身不一定没价值,问题在于每一层都留着上一期、下一期的链接,蜘蛛可以一路翻下去,而其中大量页面并没有独立内容。

二、筛选与排序组合

筛选值越多,组合越爆炸。颜色、尺码、价格区间、排序方式,四个维度各五个取值,就能拼出几百条 URL。多数组合的结果页是空的,或者与主列表高度重复。如果服务端不区分处理,这些地址都会被当作独立页面记录下来。

三、分页与自我引用

有些模板会在列表页里放查看全部的入口,同时又保留分页链接,而查看全部页里再链回分页。两种路径互相指向,形成可以来回走的环路,蜘蛛每次访问都能发现一批旧地址。

四、会话与追踪参数

带 session id、utm、ref 这类参数的地址,如果服务端不做归一化,同一个页面会被当作多条 URL 记录。蜘蛛被这些地址引入后,还会顺着页面里的链接继续往下走,把参数带到更深的位置。

怎么确认是不是失控了

  • 抓取日志里,同一列表模板的 URL 占比是否明显高于内容页;
  • 服务端访问日志中,带参数请求占总请求的比例;
  • 站内 URL 总数与内容条数的比值是否长期偏高;
  • 蜘蛛新发现的 URL 中,有多少最终返回 200 且确有独立内容。

这几个指标只需要抽样统计,不必追求精确。重点看趋势:某类模板的抓取请求持续上升,而它带来的有效访问没有变化,基本可以判断需要收敛。

收敛的几个做法

  1. 筛选参数做白名单,未被允许的参数组合直接返回 404,或规范到主列表地址。
  2. 归档页限制翻页层数,旧月份做成静态页,只在归档入口曝光一次。
  3. 分页统一用一套路径,查看全部只在内容确有必要时保留,避免两套路径互链。
  4. 会话与追踪参数在服务端重写掉,不进入对外暴露的 URL 结构。
  5. 没有独立内容的参数组合,用 robots.txt 屏蔽抓取,同时保留 Sitemap 中的有效列表。
  6. 需要保留但不希望被反复抓取的页面,用 noindex 配合取消内链,减少入口数量。
无限抓取空间的问题通常不在蜘蛛太勤奋,而在于站点给了太多入口。收敛入口比事后屏蔽更省事,也更稳定。

上线前的核对清单

新增一个筛选功能、一个新的归档模板或一段日历组件之前,先问三个问题:它会不会生成新的 URL?这些 URL 能不能从其他页面链接到?链过去之后还有没有下一步链接?只要有一个答案是会,就应该提前决定收敛方式,而不是等日志里出现大量请求再回头处理。

日常维护上,定期抽查抓取日志里占比最高的 URL 模板,比一次性全站清理更有效。把有限的抓取配额留给真正需要被发现的内容页,URL 发现的效率才会稳定下来。