返回博客
2025年11月14日Sergei Solod6 分钟阅读

Yandex 已收录 12,500 个页面,但俄罗斯流量几乎为零:我忽略的 Cloudflare 问题

Yandex 已收录 12,500 个页面,但俄罗斯流量几乎为零。我把问题定位到网络路径,关闭 Cloudflare 代理,把缓存、压缩和基础防护迁到自己 VDS 上的 Nginx,并恢复了可访问性。最重要的教训是:索引、可访问性和流量必须分开看。

DevOpsSEONginxCloudflare网络基础设施

我的一个 SEO 项目在 Yandex 中已经有 12,500 个页面被收录。只看这个数字,网站似乎很健康。但来自俄罗斯的真实流量几乎为零。

我做这个大型 SEO 项目的目的之一,也是继续提升自己作为前端开发者的能力。

我最先想到的是 SEO。继续排查后,我发现问题其实更基础:网络路径。网站位于 Cloudflare 之后,而俄罗斯用户无法稳定访问。我当时住在俄罗斯境外,所以从自己的工作环境几乎看不到这个故障。

这次经历迫使我把三个很容易混为一谈的信号分开:索引、可访问性和流量。它们不是一回事。页面可以继续存在于搜索引擎索引中,同时某些网络中的真实用户却无法完整加载它。

我真正能确认的事实

我的第一手事实很简单。我在 Cloudflare 后面运行一个大型 SEO 项目。Yandex 已收录 12,500 个页面,但俄罗斯流量几乎不存在。我进行排查,把问题缩小到网络层。随后我完全关闭 Cloudflare 代理,并在自己的 VDS 上用 Nginx重新配置我仍然需要的功能:缓存、压缩和基础安全。

完成这次改动后,俄罗斯侧的访问立即恢复。这是这个案例里我能够最有把握地说出的结果:改变内容交付路径恢复了可访问性。

同样重要的是,这个案例不能证明什么。它不能告诉我究竟损失了多少次访问、俄罗斯哪些网络全部受到了影响,也不能给出迁移后自然搜索流量具体恢复了多少。我的观察是可访问性异常和几乎为零的流量,而不是一次受控的 SEO 实验。

公开证据比我最初的解释更精确

我最初把这件事描述成 Roskomnadzor 封锁了 Cloudflare 的某些特定 IP 段。以我现在能够支持的证据来看,这个说法过于具体。

Cloudflare 在 2025 年 6 月 26 日发布了自己的说明,称从2025 年 6 月 9 日开始,俄罗斯境内访问 Cloudflare 保护服务的用户受到俄罗斯 ISP 的 throttling。Cloudflare 的内部分析还指出,在受影响的连接中,有时只能加载一个 Web 资源最前面的 16 KB,这足以让许多页面无法正常浏览。详情可见 Cloudflare 关于俄罗斯连接限制的报告

这个公开描述与我观察到的故障类型相符,但它并不能证明每一家 ISP 的具体执行机制,也不足以让我把自己全部的流量下跌直接归因于 Roskomnadzor。更严谨的表述是:我的网站通过 Cloudflare 代理的交付路径从俄罗斯访问时并不可靠,而绕过这个代理后,我的站点恢复了访问。

为什么 12,500 个已收录页面不等于网站健康

这是我低估的一个概念差异。我看到 12,500 个页面在索引中,就把它当成网站整体可访问性的信号。但搜索引擎抓取和最终用户的网络连接是两套不同的系统。

搜索引擎可能更早就抓取过 URL,可能从不同的网络路径访问,也可能在部分用户已经拿不到完整响应时仍把页面保留在索引中。因此,“已经收录”并不能证明某个俄罗斯 ISP 的用户今天就能正常打开页面。我的案例中两个事实同时成立:Yandex 中有 12,500 个页面,而俄罗斯真实用户流量仍然接近零。

索引不等于可访问性。可访问性不等于流量。

我做了什么修改

  1. 完全关闭 Cloudflare 代理。 HTTP/HTTPS 流量不再先经过 Cloudflare 再到达我的基础设施。
  2. 把仍然需要的功能迁到 Nginx。 我在自己的 VDS 上配置了缓存、压缩和基础安全控制。

关键并不是 Nginx 比 Cloudflare “更好”。我只是移除了一个已经在重要市场中变成故障点的网络依赖。

访问恢复了,但责任也回到了我这里

绕过 reverse proxy 并不是没有代价的升级。Cloudflare 当前文档说明,DNS-only 会让用户直接访问 origin,HTTP/HTTPS 不再通过 Cloudflare 代理。这样一来,依赖代理提供的缓存和多种安全能力就不再位于 origin 前面,同时 origin IP 也可能暴露。可参考 Cloudflare 官方 Proxy status 文档

Nginx 可以覆盖我需要的一部分能力,例如本地缓存、压缩、请求处理和基础过滤,但它不会自动复制 Cloudflare 的全球网络、托管式 DDoS 防护能力以及全部安全功能。所以这次迁移本质上是一种交换:我获得了对交付路径更直接的控制,同时承担了更多运维责任。

对这个项目来说,这个取舍值得做,因为俄罗斯可访问性是眼前的问题。但这并不意味着 VDS + Nginx 对所有场景都是最安全的架构。

如果今天再遇到类似问题,我会怎样诊断

如果流量只在某个国家或网络区域突然下降,我不会先去重写标题或内容。我会先把问题分层:

  1. 目标国家能否访问页面?最好从不止一家 ISP 测试。
  2. 客户端是否拿到了完整响应正文,而不只是一个 HTTP 200?
  3. 在受控测试里绕过 CDN 或 reverse proxy 后,行为是否改变?
  4. URL 是否仍被抓取和收录?
  5. 只有在确认可访问性后,再看曝光、点击和会话是否发生变化。

实际教训很简单:哪个市场重要,就从哪个市场监控。你在另一个国家测到 origin 还活着,并不代表你能发现区域性的连接故障。

这次经历真正让我学到什么

一开始它看起来像一个 SEO 谜题:12,500 个页面被收录,却几乎没有俄罗斯流量。真正有用的答案在更底层的技术栈里。

关闭 Cloudflare 代理,并在自己的 VDS 上用 Nginx 重建必要功能后,俄罗斯侧访问立即恢复。这是我可以用事实支持的结论。我不能把它扩大成 Google 或 Yandex 排名影响的证据、监管层面具体封锁机制的证明,也不能得出“所有人都应该离开 Cloudflare”的普遍规则。

这次之后,我的规则更简单了:如果某个市场重要,就从那个市场测量可访问性。索引里的页面数量并不能回答真实用户是否能够完整拿到页面。