搜索抓取

搜索蜘蛛抓取:新页面从发布到被发现的等待时间构成拆解

新页面发布后迟迟没被访问,问题往往不在蜘蛛本身。本文把“发布到被发现”拆成入口登记、入口页回访、解析排队、实际请求四段,逐段说明时间成本来源,并给出从内链路径、Sitemap 声明到服务器状态的可执行核对顺序。

搜索抓取

搜索蜘蛛抓取:新页面从发布到被发现的等待时间构成拆解

新页面发布后,站长最常问的一句话是:为什么还没被看到。抛开“一定多久收录”这类无法承诺的说法,能客观拆解的只有一件事——从内容上线到蜘蛛首次来访,中间到底经过了哪些环节,每个环节各自消耗了多少时间。把这几个环节分开看,才知道该改哪里。

等待时间大致由四段组成

把“发布到被发现”当作一条链路,可以粗略拆成四段,每段的时间成本来源完全不同:

  • 第一段:进入可抓取的入口列表。页面被写进内链、列表页、Sitemap 或站外链接中的任意一处,蜘蛛才有机会知道它存在。
  • 第二段:入口页被回访。入口页本身要被重新抓取,新链接才会暴露出来。这段取决于入口页自身的历史回访节奏。
  • 第三段:解析并排队。蜘蛛抓到入口页后解析出链接,链接进入待抓队列,等待调度。
  • 第四段:实际请求新页面。请求发出后,受服务器响应速度、状态码、重定向等因素影响,是否一次成功。

很多“迟迟不来”的情况,问题出在第一段和第二段,而不是蜘蛛本身。

入口位置直接决定第一段的长度

同样是新链接,放在首页、放在栏目列表页、放在某篇老文章的正文里,暴露速度差别很大。判断依据不是“首页权重高”这类笼统说法,而是入口页自己的回访节奏。一个每天都被抓取的列表页,新链接通常很快进入队列;一个几个月没被访问过的深层页面,即使挂了链接,也可能长期无人经过。

因此,把新页面优先挂到回访最勤的入口上,比同时在十个地方堆链接更实际。

路径越深,第二段的损耗越明显

从首页到目标页需要经过几次跳转,会影响蜘蛛能否顺利走到。可以做一个简单核对:从首页出发,沿正常的导航和列表链接点击,第几次点击能到达目标页。如果超过四五次,或者中间必须经过筛选参数、反复翻页才能到达,实际被发现的概率就会下降。

改善方式是把路径缩短:把目标页挂到更靠前的栏目,或者在同层页面之间增加横向链接。

Sitemap 是补充入口,不是加速开关

Sitemap 的作用是把 URL 集中声明出来,让蜘蛛不必完全依赖爬链接去发现。它适合承载那些路径很深、内链入口稀少、或者更新频繁的页面。但有两点需要注意:

  • 声明在 Sitemap 里,只代表“告知”,不代表会被立即抓取;
  • Sitemap 中的 URL 如果大量返回错误状态,或与站内实际链接长期不一致,会削弱这份文件的可信度。

把 Sitemap 和内链结构当成两条并行的入口通道,比指望其中一条单独解决所有发现问题的思路更稳妥。

服务器状态会挤压最后一段

即使入口没问题,请求发出后仍可能失败。常见情况包括响应超时、间歇性 5xx、重定向链过长、证书异常导致连接中断。这些不是“蜘蛛不来了”,而是来了没拿到完整内容,需要重试。当失败比例升高时,抓取频次往往会整体下调,等待时间随之被拉长。

核对方式很直接:看服务器访问日志中蜘蛛请求的状态码分布,如果非 200 的比例持续偏高,先解决稳定性,再谈发现速度。

一条可执行的核对顺序

  1. 确认新页面至少有一个可从首页点击到达的路径,记录点击次数。
  2. 找出这条路径上回访最频繁的入口页,把新链接放在它附近。
  3. 检查入口页的 HTML 中链接是否为可解析的 a 标签,而不是脚本执行后才出现。
  4. 核对 Sitemap 是否包含该 URL,且声明格式无误。
  5. 查看服务器日志中蜘蛛对该目录的请求状态码与响应耗时。
  6. 观察一段时间内的回访记录,判断延迟来自入口问题还是调度排队。
能被发现的前提是可到达、可解析、可返回。把这三件事做扎实,等待时间自然会回到它应有的水位。