百度统计代码应放在标记前,即内靠后位置,或开头处;不可置于结尾,以防快速跳出用户未触发统计。

百度统计代码应该放在 index.html 的哪个位置?
百度统计的 JS 脚本必须在页面 DOM 加载完成前执行,但又不能阻塞渲染。最佳实践是放在 之前(即 内靠后位置),或 开始处——但不能放在 结尾,否则部分快速跳出的用户可能未触发统计。
- 放在
里:能尽早加载,但需加async防止阻塞 - 放在
开头(<script>...</script>):更稳妥,兼容老浏览器,且确保window可用
不推荐使用 document.addEventListener('DOMContentLoaded', ...) 包裹百度统计代码——它本身已做防重复和异步加载处理,手动包装反而可能延迟上报。
如何获取并嵌入正确的百度统计代码?
登录百度统计后台 →「管理」→「代码获取」→ 复制那段以 _hmt.push(['_setAccount', '...']) 开头的完整 <script></script> 块。
注意核对两个关键点:
立即学习“前端免费学习笔记(深入)”;
-
hm.js?...后面的参数是否含你的站点 ID(形如2e85a1c0f9d7b6a8c3e1d2f3a4b5c6) -
_hmt.push(['_setAutoPageview', true])是否存在;若没有,建议手动加上,否则单页应用(SPA)或静态页跳转可能漏统计
示例片段(请替换其中的 YOUR_SITE_ID):
<script>
var _hmt = _hmt || [];
_hmt.push(['_setAccount', 'YOUR_SITE_ID']);
_hmt.push(['_setAutoPageview', true]);
(function() {
var hm = document.createElement("script");
hm.src = "https://bdimg.share.baidu.com/hm.js?YOUR_SITE_ID";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>为什么添加后后台看不到访问数据?
常见原因不是代码没放对,而是:
- 百度统计代码中的
YOUR_SITE_ID错了(比如复制了测试站的 ID,或带了空格/换行) - 页面通过
file://协议直接双击打开(本地文件),百度统计不支持该协议,必须部署到 HTTP/HTTPS 服务(如<a href="https://www.php.cn/link/cbb686245ece57c9827c4bc0d0654a8e">https://www.php.cn/link/cbb686245ece57c9827c4bc0d0654a8e</a>或正式域名) - 浏览器启用了严格隐私模式(如 Safari 的 ITP、Firefox 的 ETP),会拦截第三方统计脚本;可临时关掉隐私防护验证
- 百度统计后台设置了「IP 过滤」或「排除流量」,误把你的开发 IP 加进去了
验证是否生效:打开浏览器开发者工具 → Network 标签页 → 刷新页面 → 搜索 hm.gif? 或 bdimg.share.baidu.com,看到 200 响应即说明请求已发出。
静态页面(如纯 index.html)需要额外配置吗?
不需要后端配合,但要注意:
- 百度统计默认按 URL 路径区分页面,
index.html和/在某些服务器配置下会被视为不同页面(比如 Nginx 默认不重写,访问/实际返回index.html,但百度看到的是/) - 若希望统一归为首页,可在代码中手动设置页面标题和路径:
_hmt.push(['_trackPageview', '/']);
放在_setAutoPageview之后、(function(){...})()之前即可
另外,如果页面有多个入口(如带 UTM 参数的链接),百度统计会自动记录来源,无需额外操作;但参数过长或含敏感内容时,建议在后台「来源分析」里确认是否被截断。
实际部署时最容易被忽略的,是本地测试阶段误以为“代码粘贴完就立刻出数据”——从首次访问到后台显示,通常有 30–120 秒延迟,且首日数据可能要等 2 小时才聚合完成。


















