You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloudflare Worker获取Googlebot IP列表时触发429限流问题求解

解决Cloudflare Worker请求Googlebot IP列表被429限流的方案

以下是无需迁移到外部环境的可行解决办法:

  • 缓存请求结果,减少重复调用
    Googlebot的IP列表更新频率极低(通常几天甚至更久才会变动),可以将获取到的JSON结果缓存到Cloudflare KV或Cache API中:

    • 使用KV存储:在Worker中先检查KV是否存在缓存的IP列表,若有直接返回;若没有再发起请求,将响应内容存入KV并设置较长的过期时间(比如24小时)。
    • 使用Cache API:发起请求前先通过caches.default.match()检查缓存,命中则直接返回缓存响应;未命中则请求Google接口,再通过caches.default.put()将响应存入缓存。
  • 调整请求头,模拟合法客户端
    Cloudflare Worker默认的请求头可能被Google识别为批量自动化请求,可自定义User-Agent等字段模拟常规浏览器或合规爬虫:

    const response = await fetch('https://developers.google.com/search/apis/ipranges/googlebot.json', {
      headers: {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
        'Accept': 'application/json'
      }
    });
    
  • 分散请求触发时机
    如果多个Worker实例或脚本都在请求该接口,避免集中在同一时间发起请求:

    • 给请求添加随机延迟(比如0-5秒),分散请求时间点;
    • 根据Worker的唯一标识(如命名空间ID)分配不同的缓存过期时间,让不同Worker的更新请求错开。
  • 优化其他Worker的Google请求
    排查同一Cloudflare账户下其他访问Google的脚本,统一优化它们的请求策略:

    • 给这些脚本也加上缓存逻辑,减少重复请求;
    • 合并相同目的的请求,避免多个脚本独立发起重复调用。

内容的提问来源于stack exchange,提问作者k3it

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 15:17:08