层差异导致分析分歧 | AI生成和翻译

Home 2026.06

问题: 为什么 GoatCounter 和 Cloudflare Web Analytics 对同一个网站显示的结果差异如此之大?

答案:

它们在堆栈的不同层面衡量截然不同的东西。以下是对比分析:

层差异——这是核心原因

  GoatCounter Cloudflare 分析
应用层(JavaScript) 网络层(CDN 边缘)
统计内容 通过 JS 执行获取的页面浏览量 到达 Cloudflare 的 HTTP 请求
运行位置 浏览器 Cloudflare 的边缘节点

Cloudflare 能看到每一个 HTTP 请求——机器人、爬虫、健康检查、预取、资源获取、API 调用。而 GoatCounter 只在用户浏览器执行 JavaScript 并且页面实际加载时才会触发。

差异的具体原因

Cloudflare 计数高于 GoatCounter:

GoatCounter 计数高于 Cloudflare(罕见但可能):

你会看到的典型差距

对于一个典型的静态站点 / GitHub Pages / Jekyll 博客:

各自的实际用途

GoatCounter → 真实的用户页面浏览量、跳出率、真实用户的来源。更准确地反映“有多少人阅读了这篇文章”。

Cloudflare → 带宽、攻击检测、缓存命中率、机器人流量规模、CDN 性能。适合回答基础设施层面的问题。

如何让它们更具可比性

在 Cloudflare 中,过滤条件设置为:

即便如此,Cloudflare 仍然会更高,因为它还会统计:

快速理解模型

Cloudflare 计数
= 人类页面浏览量
+ 机器人请求
+ 资源请求(CSS/JS/图片)
+ 健康检查
+ 预取请求
+ JS 被屏蔽的用户

GoatCounter 计数
= 人类页面浏览量(JS 成功执行)
- 屏蔽了跟踪器的用户
- 禁用 JS 的用户

对于你的博客 lzwjava.github.io,差距很可能主要来自 Googlebot 和其他爬虫(技术博客通常会被大量索引)以及资源请求(如果 Cloudflare 代理了所有内容,包括静态文件)。


Back Donate