最可靠方式是直接嵌入GA4代码,需在插入gtag脚本并配置测量ID;国内建议同步部署百度统计或腾讯分析;自建统计须处理CORS、缓存、上报时机及重试;验证时需避开file://协议、内部IP过滤和插件干扰。

直接嵌入 Google Analytics 4(GA4)代码最可靠
HTML5 页面发布后无法自动统计访问量,必须手动添加第三方统计脚本。目前主流且免费可用的是 Google Analytics 4,它不依赖 Cookie,兼容现代隐私策略,比旧版 UA 更稳定。
操作要点:
- 在
Google Analytics后台创建 GA4 媒体资源,获取G-XXXXXXXXXX格式的测量 ID - 将以下代码插入 HTML 文件的
标签内(注意替换G-XXXXXXXXXX) - 确保每个页面只加载一次,避免重复埋点导致数据虚高
GA4 默认采集页面浏览、停留时长、跳出率等基础指标,无需额外配置即可使用。若页面是单页应用(SPA),需手动调用 gtag('event', 'page_view', ...) 触发路由变化统计。
国内环境优先考虑百度统计或腾讯分析
GA4 在中国大陆部分地区存在加载不稳定、延迟高甚至无法加载的问题,导致数据丢失。若目标用户主要在国内,建议同步部署百度统计(tongji.baidu.com)或腾讯分析(mta.qq.com)作为备用或主用方案。
立即学习“前端免费学习笔记(深入)”;
常见问题:
- 百度统计 JS 加载失败时,控制台会报错
Failed to load resource: net::ERR_BLOCKED_BY_CLIENT,多因广告拦截插件屏蔽了hm.js - 腾讯分析需在
mta.qq.com创建站点并获取APPID,其 SDK 更轻量,对首屏影响小 - 不要同时开启多个统计工具的默认页面事件,否则会重复计数
百度统计基础代码示例(放在 底部):
自建统计需绕过跨域与缓存干扰
如果出于数据主权或合规要求必须自建统计服务(如用 Node.js + SQLite 记录 PV/UV),关键难点不是写接口,而是前端如何可靠上报且不被浏览器拦截。
必须处理的细节:
- 前端用
fetch发送POST请求时,服务端响应头必须包含Access-Control-Allow-Origin,否则触发 CORS 错误 - 上报 URL 建议带时间戳参数(如
/log?_t=1712345678900)防止强缓存导致漏报 - 避免在
window.onload之后才上报,应尽早执行(例如在DOMContentLoaded阶段),否则用户快速关闭页面会导致丢失 - 上报失败需加入简单重试逻辑(最多 1 次),但不要无限重试阻塞主线程
简易前端上报示意(不依赖第三方库):
function reportPageView() {
const url = '/api/log?path=' + encodeURIComponent(window.location.pathname) + '&_t=' + Date.now();
fetch(url, { method: 'POST', keepalive: true })
.catch(() => {
// 失败时尝试 localStorage 缓存,下次页面加载再补发
const pending = JSON.parse(localStorage.getItem('pending_logs') || '[]');
pending.push({ url, ts: Date.now() });
localStorage.setItem('pending_logs', JSON.stringify(pending.slice(-10)));
});
}
document.addEventListener('DOMContentLoaded', reportPageView);
验证是否生效不能只看实时数据面板
刚部署统计代码后,常误以为“没数据=没生效”,其实多数情况是延迟或过滤规则导致。GA4 和百度统计的实时报告有 1–3 分钟延迟,且默认排除内部 IP(如公司办公网)、已安装广告拦截插件的用户、以及启用了“请勿跟踪”(DNT)请求头的浏览器。
快速验证步骤:
- 用手机热点切换网络,打开页面,观察实时报告中是否出现新会话
- 在 Chrome 开发者工具的
Network标签页过滤collect(GA4)或hm.gif(百度统计),确认请求发出且返回 200 - 检查 GA4 的
DebugView或百度统计的代码检查工具,它们能显示字段是否正确传递 - 禁用所有浏览器扩展后重试,排除插件干扰
最容易被忽略的是:本地开发时用 file:// 协议打开 HTML,所有统计脚本都会因协议限制失效——必须通过 http:// 或 https:// 提供服务才能正常上报。










