Cloudflare Web Analytics:免费、无 Cookie 的网站分析与真实用户性能监控
来源:机器之心 · 2026年7月
网站上线后,有两个问题绕不开:谁在访问? 以及 访问体验怎么样?
Google Analytics 4 确实强大,但配置复杂、合规成本高。如果你只是想看访问趋势、热门页面、流量来源和真实用户性能,Cloudflare Web Analytics 提供了一条更轻的路径——免费、无需把域名迁入 Cloudflare、没有 Cookie,也不使用 localStorage 或跨站指纹来识别访客。
它是什么,适合谁
Cloudflare Web Analytics 的核心是基础流量分析 + 真实用户监控(RUM)。它通过浏览器 Performance API 采集页面加载与 Core Web Vitals 数据,再以聚合方式展示访问趋势。
| 场景 | 是否适合 | 原因 |
|------|---------|------|
| 个人博客、作品集、文档站 | 很适合 | 零成本、接入快 |
| Cloudflare Pages / Workers 静态站 | 很适合 | 一键开启,几乎无维护成本 |
| 关注 SEO 与真实用户性能 | 很适合 | 自带 LCP、INP、CLS 和问题元素定位 |
| 内容站日常趋势观察 | 适合 | 可按路径、来源、国家、设备过滤 |
| SaaS 产品增长分析 | 只能作为补充 | 没有自定义事件、漏斗、留存分析 |
| 电商转化与广告归因 | 不适合 | 不支持 UTM、购买事件、多触点归因 |
一句话总结:想知道"有人来吗、从哪来、页面快不快",先用 Cloudflare Web Analytics;想知道"用户做了什么、为什么转化",再配 GA4、Plausible 或 PostHog。
工作原理
Cloudflare Web Analytics 的核心是一个轻量 JavaScript beacon:
beacon.min.js/cdn-cgi/rum 或 cloudflareinsights.com/cdn-cgi/rum 发送数据采集脚本地址:
https://static.cloudflareinsights.com/beacon.min.js
对于传统多页应用(MPA),beacon 会在页面完成加载以及用户离开页面时上报;对于单页应用(SPA),每次路由变化还会额外上报。Core Web Vitals 通常在页面首次进入隐藏状态时发送,以便收集更完整的交互数据。
RUM 与边缘 Analytics 的区别
Cloudflare 控制台里有几种名字相近的 Analytics,最容易混淆的是下面两种:
| 对比项 | Web Analytics(本文) | HTTP Traffic / Edge Analytics |
|--------|----------------------|------------------------------|
| 数据来源 | 访客浏览器里的 JS beacon | Cloudflare 边缘服务器日志 |
| 能否看到真实渲染性能 | 能,包含 Web Vitals | 不能直接看到浏览器渲染体验 |
| 会不会被广告拦截器拦截 | 可能 | 不会 |
| 是否包含机器人和非 HTML 请求 | 主要是运行脚本的页面访问 | 会看到所有到达边缘的 HTTP 请求 |
| 域名是否必须经过 Cloudflare | 不必须 | 必须经过 Cloudflare 代理 |
两边数字不完全一致是正常现象,不要拿 beacon 的页面访问量与边缘 HTTP 请求数逐条对账。
隐私模型:不靠"认出一个人"来统计
Cloudflare 官方说明,RUM beacon:
这意味着 Web Analytics 没有持久访客 ID,不能像传统分析工具那样准确回答"独立用户、回访用户、跨天留存"。Cloudflare 对 Visits 的定义也不是"唯一访客":当一次页面访问来自外部网站或直接链接时,就开始一次 visit;一次 visit 可以包含多个 page views。
免费额度与数据保留
Cloudflare Web Analytics 在所有计划中可用,目前没有按 page view 收费。但有几个明确边界:
| 项目 | 限制 |
|------|------|
| 不经过 Cloudflare 代理的站点 | 每个账户 10 个(soft limit) |
| 经过 Cloudflare 代理的站点 | 不限数量 |
| 无采样原始 beacon 数据 | 保留 7 天 |
| 7 天后 | 聚合到原始数据量约 10% |
| 可查询历史 | 最近 6 个月 |
Dashboard 和 GraphQL 查询可能应用自适应采样(Adaptive Bit Rate),低流量站点通常会使用更高采样比例。所以 Web Analytics 很适合观察趋势和性能分布,但不应被当作财务审计或逐条事件仓库。
5 分钟快速开始
方式一:经过 Cloudflare 代理的域名自动安装
Cloudflare 会在 HTML 响应经过边缘网络时自动注入脚本,还会为脚本添加 Subresource Integrity(SRI)。如果源站返回
Cache-Control: public, no-transform,Cloudflare 不能修改 HTML,此时需要移除 no-transform 或切换到手动安装。
方式二:任何网站手动安装
不需要把 DNS 或流量迁到 Cloudflare。先在 Web Analytics 中添加 hostname,再从 Manage site 复制专属 token,将下面脚本放到
</body> 前:
html
<script
type="module"
defer
src="https://static.cloudflareinsights.com/beacon.min.js"
data-cf-beacon='{"token":"YOUR_SITE_TOKEN"}'
></script>注意:token 不是需要隐藏的服务端密钥;一个页面只能运行一个 Web Analytics snippet,不要重复自动注入和手动安装;DNS-only(灰云)域名不能自动注入,只能手动安装。
方式三:Cloudflare Pages 一键开启
进入 Workers & Pages → 打开 Pages 项目 → Metrics → 在 Web Analytics 下选择 Enable → 重新部署项目。
Dashboard 里能看什么
1. Visits
来自外部网站或直接链接的一次入口访问。通过 HTTP Referer 是否与当前 hostname 匹配来判断。它不是持久化的 unique visitor,也不能直接用于计算严格的 DAU / MAU。
2. Page views
一次
Content-Type: text/html 的成功 HTTP 响应。手动安装时,实际可见数据取决于页面是否渲染并成功运行 snippet。
3. Page load time
Dashboard 把浏览器 Navigation Timing 拆成多个阶段:DNS、TCP、Request、Response、Processing、Load Event、First Paint、First Contentful Paint。
4. Dimensions 与过滤器
支持按 Country、Host、Path、Referer host、Device type、Browser、OS 等维度过滤。Cloudflare 不记录 query string,因此不能按 utm_source、utm_campaign 等参数分析。
5. Weekly Summary
Cloudflare Notifications 可以发送每周汇总,包含账户下所有站点的聚合 visits、page views 和中位 page load time。
Core Web Vitals:从"页面慢"定位到具体元素
Cloudflare 当前展示三项核心指标:
| 指标 | 衡量什么 | Good | Needs Improvement | Poor |
|------|---------|------|-------------------|------|
| LCP | 最大内容元素出现的速度 | ≤ 2.5s | 2.5s~4.0s | > 4.0s |
| INP | 点击、输入等交互后的响应速度 | ≤ 200ms | 200ms~500ms | > 500ms |
| CLS | 页面布局的视觉稳定性 | ≤ 0.1 | 0.1~0.25 | > 0.25 |
评估时重点看 P75(第 75 百分位),而不是只看平均值。Cloudflare 的 Debug View 会列出影响最大的前五个元素,并显示 P50、P75、P90 和 P99:
截至官方说明,Core Web Vitals 完整能力主要支持 Chromium 浏览器,Safari 与 Firefox 的支持仍受限。
一套能落地的分析流程
第一步:确认流量是否健康
第二步:找到"值得优化"的页面
不要先优化访问量极低的长尾页。用 Path 和 Referer 找到高流量 × 差体验的页面,优先级最高。
第三步:按维度切开性能
全站 P75 看起来正常,不代表所有用户正常。继续按 Path、Device type、Browser/OS、Country、Navigation type 过滤。
第四步:把指标翻译成改动
| 现象 | 优先检查 |
|------|---------|
| LCP 差 | hero 图片尺寸与格式、字体、首屏 CSS、服务端响应 |
| INP 差 | 长任务、大型 hydration、事件处理器、第三方脚本 |
| CLS 差 | 图片未声明宽高、异步广告、字体替换 |
| DNS/TCP 高 | 域名数量、连接复用、第三方资源、TLS 与网络距离 |
| Request 高 | TTFB、源站性能、缓存命中、数据库与 Worker CPU |
| Response 高 | HTML/资源体积、压缩、图片、带宽 |
| Processing 高 | render-blocking CSS/JS、脚本执行、DOM 规模 |
每次只改一类问题,部署后比较相同 Path、Device 和时间窗口的 P75。
Web Analytics vs GA4:目标不同
| 能力 | Cloudflare Web Analytics | Google Analytics 4 |
|------|-------------------------|-------------------|
| 价格 | 免费,无公开 page view 计费 | 标准版免费 |
| Cookie/本地状态 | beacon 不使用 | 通常使用客户端标识 |
| 基础页面与来源 | 有 | 有,维度更丰富 |
| Core Web Vitals RUM | 内置,带元素 Debug View | 非核心内置,通常需额外接入 |
| 自定义事件 | 不支持 | 支持 |
| UTM campaign | 不支持 query string 采集 | 支持 |
| 转化/漏斗/用户旅程 | 不支持 | 支持 |
| 用户、会话与留存 | 非持久身份模型,能力有限 | 支持 |
| 广告归因 | 不支持 | 深度集成 |
| SPA history 路由 | 自动支持 | 支持,通常需要正确配置 |
| 上手与维护成本 | 很低 | 中等到高 |
实际项目完全可以同时使用:Cloudflare 负责轻量流量趋势和真实性能,GA4 或产品分析工具负责业务事件与转化。
它明确做不到什么
截至 2026 年 7 月,官方 FAQ 明确写着:
由此还意味着:没有原生转化目标和漏斗、没有用户级 session journey、没有 cohort retention、没有 session replay、没有 JavaScript exception 分析。
一个勉强可用的替代办法是把成功动作跳转到独立路径(例如
/signup/success),再按 page view 看趋势。但它不能等价于可靠的 conversion event。
最佳实践与避坑指南
beacon.min.js 和 rum,确认脚本加载和数据上报no-transformCloudflare Web Analytics 最有价值的地方,不只是"免费",而是把两个原本分开的任务放进了同一个低维护工具:用 Visits、Page views、Path、Referer 回答"流量发生了什么";用 Navigation Timing、LCP、INP、CLS 和 Debug View 回答"真实用户为什么觉得慢"。
它主动放弃持久身份、query string 和自定义事件,换来了更小的数据面与更清晰的隐私模型。这也是它的优势和限制。
对独立开发者,最务实的组合是:先免费开启 Cloudflare Web Analytics,建立流量与性能基线;只有当业务真的需要 campaign、conversion、funnel 或 retention 时,再增加更重的分析工具。
相关资源:Cloudflare Web Analytics 官方文档
💬 评论区 (0)
暂无评论,快来抢沙发吧!