搜索抓取

同一批页面被反复抓取:内链里的重复路径是怎么形成的

蜘蛛的抓取时间有限,而同一个 URL 如果能在站内被多条路线走到,它就会被反复重走。重复路径不一定带来更多收录,却会挤占抓取资源。本文梳理重复路径的常见来源、用日志判断的方法,以及收敛路径时该保留什么、该去掉什么。

搜索抓取

同一批页面被反复抓取:内链里的重复路径是怎么形成的

重复路径不是“链接多”,而是“路线重复”

站内链接多,不等于路径多。判断标准是:从入口页出发,到达同一个 URL 需要经过多少条不同的中间页组合。如果同一批详情页既能从栏目列表进,又能从标签页进,还能从“猜你喜欢”进,而且这些模块在站内大面积重复出现,蜘蛛每次来都要把这些路线重走一遍。

常见的几种重复路径来源

  • 面包屑、列表页、标签页、归档页(按时间、按作者)同时指向同一批内容;
  • 全站页脚或侧栏的“热门文章 / 最新文章”模块,出现在每一页,形成一个指向同一批 URL 的固定通道;
  • 同一页面上多个模块指向同一个目标,比如标题、缩略图、按钮、“阅读全文”四个链接;
  • 分页序列被不同入口重复引用,第 2 页之后的 URL 既在分页链里,又在标签页里;
  • 站内搜索页、筛选页生成了可被抓取的 URL,且结果页被别的页面大量引用。

为什么这件事值得管

抓取资源是按站点分配的,蜘蛛在单位时间内能走的路有限。重复路径本身不直接导致问题,但它会挤占本可以用在新页面、深层页面上的时间,也会让日志看起来“抓取量很大”,实际上唯一 URL 很少。

判断抓取是否健康,看的不该是总请求数,而是“唯一 URL 数”与“重复抓取占比”这两个数放在一起看。

用日志大致判断

  1. 统计一段时间内被请求的 URL 与去重后的 URL 数量,算出重复率;
  2. 看高频被抓的 URL 名单,如果集中在少量页面上,多半是某个全站模块或分页链在反复把它们送出去;
  3. 观察蜘蛛进入深层页时带的来源页面信息(如果日志有记录),能看出它主要在走哪条路线。

收敛路径的几个做法

  • 一个目标 URL 在一个页面里只保留一条最自然的链接,其余位置用文本或图片替代;
  • 全站性的推荐模块控制数量,并优先指向真正需要被抓取的页面,不要每次都是同一批;
  • 标签页、归档页、筛选页这类聚合入口,保留少量有检索价值的,其余用 robots 或 noindex 处理;
  • 分页序列尽量保持单一来源,不要让同一页内容从三条分页链都能到达;
  • 内链结构调整后要观察几周再判断,蜘蛛的路径习惯不会当天改变。

不要为了收敛而断掉路径

收敛的前提是有替代路径。如果为了让某个模块“干净”而把通往深层页的唯一入口删掉,结果是那些页面变成孤岛,得不偿失。调整时先确认每一个需要被抓的 URL,至少还有一条从入口出发的稳定路径,再动手删减。

另外,收敛路径不等于关掉所有入口。新旧路径切换期间,旧入口建议保留一段时间,等日志里蜘蛛已经稳定走新路线,再逐步撤掉。