跳到正文
Google Search Central Blog·· 1 天前精选AI 评分76

Google 详解网站迁移至 CDN 时避免源站过载与拦截 Googlebot 的实践指南

Moving to a CDN without overwhelming your origin (or blocking Googlebot)

AI 导读

Google Search Central 官方发文解释网站接入 CDN 后爬虫流量激增的机制并提供应对建议。边缘节点极低的响应延迟会让 Google 爬虫误判服务器性能大幅提升,而在冷缓存状态下爬虫对全站 URL 的首次抓取会全部穿透回源站。

推荐理由

官方解释了接入 CDN 后爬虫流量暴增的原因,并给出了避免源站过载与误封 Googlebot 的应对方法。

正文 · AI 翻译

2026年11月11日,星期三

对于业务不断增长的网站来说,部署内容分发网络(CDN)往往是一次重大升级。CDN 借助分布在全球、更靠近用户的快速边缘服务器来分发网站资源,既能降低访客延迟,又能保护源站服务器(存放原始内容的后端数据源)免受高并发流量冲击。

听起来很完美对吧?但在迁移过渡期,情况可能会变得有些微妙。

我们常听站长反映,刚给网站套上 CDN,源站收到的抓取流量就几乎立刻暴增——而这恰恰是他们一开始想要解决的问题。原因在于,在边缘服务器建好缓存之前,无论是用户访问还是爬虫请求,其实仍需直接回源获取数据。

迁移到 CDN 时,很有必要先了解一下抓取预算的运作机制,以及紧急情况下如何调低 Google 的抓取速率。本文将带大家了解迁移过程中的预期情况与潜在挑战。这也是我们在《The Non-Canonical Cabinet》第 5 集中全副武装(戴着安全帽、手提消防水带)讲解如何平稳过渡的原因。如果你刚切了 CDN 正为暴涨的流量发愁,或者想避免操作不当导致网站在搜索结果中掉线,这篇文章就是为你准备的!

为什么抓取量会突然全线飙升?

切换到 CDN 后,抓取流量之所以激增,根源在于 Google 抓取基础设施计算网站抓取容量上限(也称作主机负载)的方式:

  • 响应变慢会降低抓取速率。Google 的自动化抓取系统会持续监测主机服务器的运行状况和响应速度。当响应时间拉长时,爬虫会自动放慢抓取节奏,避免压垮源站或影响用户的实际访问体验。
  • 响应快速且稳定则会加快抓取。当服务器能够快速且持续稳定地响应时,我们的系统会认为该站点的基础设施健康充裕。只要网站存在相应的抓取需求,抓取容量上限就会逐步上调。

一旦 DNS 指向了高速的 CDN 边缘网络,连接与响应时间便会大幅缩短。在抓取系统看来,这就像你的服务器刚完成了一次硬件大升级,于是爬虫便会相应提高请求速率。

问题随之而来:边缘服务器未命中缓存。

如果这些请求全被 CDN 在边缘节点拦截吸收,抓取频率变高自然不是坏事。但问题在于,全新的 CDN 刚启动时缓存完全是空的(即冷缓存)。

当某个 URL 首次被边缘节点接收时,CDN 上根本没有这份资源(HTML、CSS、JavaScript、图片等)的副本,此时就会发生缓存未命中。为了响应该请求,边缘服务器不得不一路“跑回”源站拉取数据,自己存下一份可缓存的副本,然后再交付给客户端。只有后续再次请求这个已缓存的 URL 时,才会形成缓存命中,直接由边缘节点响应,无需打扰源站。(在我们的视频里,边缘服务器被具象化为一只在便签堆之间疲于奔命的尖叫鸡。网络拓扑图嘛,各有各的画法。)

说到底,接入 CDN 期间真正的瓶颈依然是源站服务器。

真实用户的访问通常集中在相对较小的一部分热门页面上(比如首页、热门文章或当前促销页面),这些内容能迅速在 CDN 缓存中完成预热。爬虫的行为模式则恰恰相反,它们的职责是系统性地遍历并探索你网站上的每一个 URL。

把这两种行为叠加在一起,就会出现以下情况:

  1. 边缘节点的快速响应会让 Google 爬虫误以为可以安全地加快抓取频率。
  2. 当爬虫初次遍历海量 URL 时,每一个未缓存的 URL 都会导致缓存未命中,这些请求将直接穿透并打到你的源站服务器上。

虽然爬虫不会瞬间把抓取速率拉满,许多 CDN 也自带连接限速功能来平抑流量峰值,但只要边缘缓存尚未填满(未完成预热),CDN 就还无法起到防护盾的作用,所有的重负依然压在源站服务器身上。

爬虫休想通过!一刀切的防机器人策略往往过犹不及

迁移刚结束就在源站日志里看到自动化请求激增,如果管理员不清楚背后的原因,难免会感到紧张。在缓存预热期间,面对陡增的请求走势图,很多人会忍不住登录 CDN 控制台,直接开启一刀切的防机器人防护。套用 Cherry 的话说,就是“机器人休想通过!”

A mock CAPTCHA challenge asking to select all squares with traffic lights from a grid of traffic lights and rubber chickens

这种一刀切的安全规则,问题就出在“一刀切”上:如果没有设置例外规则,系统就会对所有自动化流量一视同仁,连你最在意的正规爬虫也会被拒之门外。一旦 CDN 或 Web 应用防火墙(WAF)将自动化请求拦截下来并弹出 CAPTCHA 验证码,Google 爬虫就完全无能为力了。(Googlebot 虽然身怀绝技,但认红绿灯和辨认小鸡可不是它的强项;话说回来,有时连 Gary 自己都搞不定这些验证码。)

开启全面防机器人保护却不对已验证的爬虫放行,爬虫就只能被困在错误页面上,导致抓取到的数据对搜索或其他依赖爬虫的产品毫无价值。在我们看来,你的网站就像是故意设置了访问限制,或者是出了故障。如果这种情况持续下去,我们的爬虫就会降低抓取频率,你的网页、商品展示乃至那些小鸡图片,都会陆续从搜索结果中消失。

如何调教你的 CDN(同时不把源站“烤焦”)

部署 CDN 用不着请消防队员来灭火,你真正需要的是合理的心理预期,以及一套周密的应对方案,例如:

  1. 如果确需拦截机器人,请务必在 CDN 和防火墙设置中放行经过验证的正规机器人。主流 CDN 和 WAF 大多提供了内置开关或托管规则来放行已知/已验证的机器人,这样既能让你需要的爬虫免受 CAPTCHA 验证困扰,又能过滤掉不需要的恶意流量(你可以通过 Google 公布的 IP 地址段 来识别我们的爬虫)。更理想的做法是在 robots.txt 中明确规则,或者针对特定的恶意机器人单独设置拦截规则,而不是把所有自动化客户端全部一棒子打死。
  2. 全面放量前,先给缓存预热。在将所有流量切换到新 CDN 之前,先以可控的速度通过程序经由 CDN 预抓取流量最大、即将迎来访问高峰的页面(例如促销或应季上线活动),以及最常被抓取的 URL,让边缘缓存提前做好承接流量的准备。或者,如果你不像 Gary 那样没朋友,直接让朋友们每人访问两个不同的 URL 也同样有效。
  3. 如果需要临时刹车,可以使用 429 或 503。若在缓存预热期间,爬取量依然给源站带来巨大负载,可以在服务器或 CDN 上配置限流规则,在短时间窗口内(几个小时,最多 1-2 天)返回 429 (Too Many Requests) 或 503 (Service Unavailable) HTTP 状态码,具体操作参见我们关于紧急降低 Google 抓取频率的指南。

TL;DR 总结(到底谁会把“太长不看”放在文末啊?!)

在你用网线把服务器机柜随便一捆、拍拍屁股下班之前,迁移到 CDN 时请牢记这三件事:

  • 响应越快,抓取越快:CDN 边缘延迟低,相当于向 Google 爬虫发出信号,表明网站状态良好,可以承受更高的抓取频率。
  • 缓存只有在二次访问时才能发挥保护作用:在冷缓存状态下,每个独立 URL 的第一次请求都会发生缓存未命中,直接打到源站。因此只要条件允许,尽量提前预热缓存。
  • 如有必要,对已验证的爬虫豁免机器人挑战:不要用一刀切的 WAF 或验证码规则,以 403 拦截墙或人机挑战页面挡住 Google 爬虫;请配置“已验证漫游器”豁免名单。如果源站确实需要喘口气,可以临时返回 429 或 503 响应。

还没看过瘾?快来看本期节目!

观看 The Non-Canonical Cabinet 第一季完结篇(第 5 集)!我们用一顶塑料安全帽、一个冒烟的文件柜,外加一只充当边缘服务器的尖叫鸡来讲解网络架构——我们可以相当笃定地说,这些玩意儿当初绝对没写在岗位职责里。

想看完整的第一季?我们曾试图玩坏 URL 和 robots.txt,还大聊特聊 404 和重定向。完整观看全部 5 集,保证尖叫鸡戏份严重超标。

下个季度(前提是有预算)你想让我们从那个(微焦的)文件柜里翻出哪些离奇的极端案例?欢迎在视频下方留言讨论。

祝各位缓存常温、防火墙整洁,尖叫鸡也裹好了防震气泡膜!

发布人:Cherry、Gary、冷缓存鸡、气泡膜包裹鸡,以及背景中尖叫狂响的警报。

来源:Google Search Central Blog · developers.google.com