搜索抓取

从发布到入队:缩短新页面 URL 发现延迟的站内动作

新页面发布后迟迟不进抓取队列,通常不是提交次数不够,而是发现路径有问题。本文从内链入口、链接可解析性、Sitemap 的定位、服务器响应四个方面拆解 URL 发现延迟的成因,并给出一条可以照着走的发布检查顺序,帮助你把排查精力放在真正影响发现的环节上。

搜索抓取

从发布到入队:缩短新页面 URL 发现延迟的站内动作

发布一个新页面之后,很多人的第一反应是刷新抓取日志,看蜘蛛有没有来。实际上,从页面可公开访问,到它进入待抓取队列,中间隔着几个环节:入口有没有被走到、链接能不能被解析、服务器有没有稳定回应。把这几步拆开核对,通常比反复提交更有效。

一、发现的前提是有一条蜘蛛能走的链接

蜘蛛不会凭空知道一个新 URL。它需要从某个已经抓取过的页面出发,沿着 HTML 里可解析的链接走到新地址。所以新页面发布后,第一件该做的事是确认它至少出现在一个抓取频率较高的页面上。

  • 首页或栏目首页的最新列表,通常是抓取频率最高的位置;
  • 相关老页面正文里的自然内链,能提供语境、也提供入口;
  • 分类列表页、专题聚合页,适合承载一批同时上线的新 URL。

如果新页面只挂在很深的层级,或者只能从站内搜索、筛选结果里进入,发现时间往往会明显拉长。链接层级越浅、入口越靠近高频抓取页面,被走到的机会越大。

二、Sitemap 与提交入口是补充,不是替代

Sitemap 声明和手动提交当然有用,但它们的作用是告诉蜘蛛「这里有个地址」,前提仍是这个地址可访问、可解析。常见的误判是把 Sitemap 当成唯一入口:页面在线,却没有任何站内链接指向它,Sitemap 里写了,日志里依旧长期没有抓取记录。这种情况下更应该补的是内链,而不是继续增加提交次数。

提示:提交行为不等于收录承诺,它只是把 URL 放进待处理列表。是否抓取、何时抓取,取决于蜘蛛自身的调度。

三、让链接可解析,比让链接更多更重要

可发现性的几个细节

  • 用标准 a 标签加 href,不要用纯脚本跳转代替链接;
  • URL 不要依赖点击之后才写入,静态写在 HTML 里最稳;
  • 避免把入口藏在需要交互之后,比如点击展开、滚动加载。

需要说明的是,蜘蛛优先解析的是 HTML 中已经存在的链接。依赖用户操作才出现的地址,发现时间可能被推迟到渲染阶段甚至更晚,而渲染又受抓取配额影响,不确定性更大。

四、服务器响应决定发现之后能不能立刻抓

即便链接被走到,如果服务器响应慢、频繁返回 5xx、或者经常超时,蜘蛛会倾向于降低该站点的抓取频率,新 URL 的排队时间随之变长。集中上线大量页面时,尤其要注意响应时间是否稳定,别让一次发布把整体抓取节奏拖慢。

五、发布流程里的检查顺序

  1. 确认页面可公开访问,状态码正常,没有登录墙与拦截规则;
  2. 确认至少有一条来自高频抓取页面的内链;
  3. 确认链接是可解析的 a href,而不是靠脚本生成;
  4. 更新 Sitemap,并核对里面的 URL 与实际地址一致;
  5. 观察几天抓取日志,确认是否出现该路径的请求记录。

如果日志里长期没有该 URL 的请求,优先回头检查第二步和第三步,而不是重复第四步。发现延迟这件事,多数时候卡在入口,而不是卡在提交。