跳到主要内容
版本:latest

宝塔网站统计

宝塔网站统计(bt-stats)是一款以宝塔面板插件形式运行的轻量级、自托管网站访问分析系统。本教程适用于 2.0 版本。

产品特点

  • 自托管:统计数据保存在自己的服务器中,不经过第三方平台。
  • 高性能:采用 Go 采集后端和 DuckDB 列存引擎,单机可承载日均百万 PV。
  • 低资源占用:无需安装 MySQL 或 PostgreSQL,嵌入式数据库开箱即用。
  • 准确可靠:通过 Cookie 标识访客,区分新访客与回访客。

竞品对比

对比指标宝塔网站统计(bt-stats)宝塔监控报表百度统计51LA V5Umami
采集方式前端 JS 采集服务器日志解析前端 JS 采集前端 JS 采集前端 JS 采集(无 Cookie)
数据准确度高:JS + Cookie完整日志解析,包含蜘蛛与爬虫高:JS + Cookie高:JS + CookieJS + IP 分析,数据可能存在较大差异
部署模式私有化部署私有化部署SaaS 云端SaaS 云端开源自托管或官方云
数据库依赖DuckDB 嵌入式列式存储SQLite 嵌入式数据库云端云端PostgreSQL 或 MySQL
Web Vitals 性能指标支持不支持前端性能指标支持需使用额外产品支持
会话回放2.0 支持不支持不支持付费版支持支持
转化漏斗支持不支持支持支持支持
热力图支持不支持支持支持不支持
蜘蛛 / 爬虫统计不采集支持,可区分真假蜘蛛不采集不采集不采集
UTM / 广告追踪支持不支持支持百度推广支持支持
隐私合规本地存储,使用 Cookie 标识访客日志保留 IP数据上传百度数据上传 51LA默认无 Cookie,适合 GDPR 场景
多站点管理支持支持支持支持支持
价格宝塔专业版、企业版包含,或单独购买插件宝塔专业版、企业版包含,或单独购买插件基础功能免费,高级能力收费基础功能免费,高级功能付费自托管免费,云版按量付费
适用场景私有化部署、网站运营私有化部署、网站运维网站运营网站运营私有化部署、网站运营
插件权益说明

单独购买宝塔网站统计插件会附送宝塔监控报表。已购买宝塔监控报表的用户,将同步获得剩余有效期对应的宝塔网站统计使用权限。

功能矩阵

功能模块说明
概览看板查看 PV、UV、IP、跳出率、平均访问时长和活跃用户趋势
访问分析查看入口页面和出口页面排名
来源分析分析直接访问、搜索引擎、社交平台、外链、付费推广和 UTM 参数等来源
访客分析按地域、浏览器、操作系统、设备、屏幕和语言分析访客分布
会话列表分页查看 Session 和单个会话的完整行为日志
实时访客查看在线访客及其实时访问轨迹
用户旅程分析页面访问路径排名和页面跳转事件流
广告追踪统计 UTM 五参数(source、medium、campaign、content、term)及广告平台 Click ID
页面性能查看 LCP、INP、CLS、FCP、TTFB 等 Web Vitals 指标及趋势
会话回放还原访客的鼠标移动、点击、滚动和页面跳转等操作
热力图查看指定页面的点击热度分布,并按设备类型筛选
转化漏斗自定义转化节点,查看各环节的访客数、转化率和流失率
IP 地理分布查看访客 IP 的国家和省份分布
数据大屏通过独立 URL 展示核心指标和 IP 地域分布,并支持用户权限划分

宝塔网站统计 2.0 概览看板

快速开始

环境要求

项目要求
服务器AMD 或 ARM 架构的 Linux 服务器
内存最低 1 GB,推荐 2 GB 及以上
磁盘基础占用约 200 MB;日均 1 万 PV 时,每月约增加 100 MB
面板宝塔 Linux 面板
Web 服务Nginx 或 Apache(Apache 仅支持手动配置)

安装插件

登录宝塔 Linux 面板,进入【软件商店】,搜索并安装【宝塔网站统计】。安装完成后,打开插件配置页面。

开启网站统计

在插件的【网站列表】中添加或找到需要统计的站点,然后选择自动或手动模式开启统计。

如果站点使用了 CDN,请选择对应的 CDN 厂商(Cloudflare、阿里云或腾讯云),以便获取真实访客 IP。已经在面板中开启全局 CDN 的站点可以忽略此项。

宝塔网站统计的网站列表

使用 CDN 的站点

开启统计后,请清除 CDN 缓存,或将以下路径加入 CDN 缓存白名单,避免统计及回放脚本无法下发:

/bt-stats.js
/bt-stats.gif
/bt-replay.js
/bt-replay-config
/bt-stats-replay

以 Cloudflare 为例,可以在【缓存】>【配置】中清除缓存。

Cloudflare 清除缓存页面

部署跟踪脚本

自动部署

插件会自动修改站点的 Nginx 配置并注入跟踪脚本,无需修改网站代码。部署后,访问者打开页面时会自动上报统计数据。

手动部署

自动部署失效、站点使用反向代理或 Web 服务为 Apache 时,请使用手动部署。

  1. 选择以下任一方式部署插件生成的统计代码:

    • 方式一(Nginx):在网站 Nginx 配置中使用 sub_filter,将统计代码插入 </head> 标签前。

      sub_filter '</head>' '【在此处粘贴插件生成的统计代码】</head>';
    • 方式二(推荐):将统计代码粘贴到网站所有页面的 </head> 标签前。建议放入 header.htm 等公共页头模板,实现一次部署、全站生效。

      如果需要在独立 JavaScript 文件中调用,请去掉统计代码首尾的 <script></script> 标签,只保留核心代码。使用 CDN 的站点还需要刷新 CDN 缓存。

  2. 如果网站使用反向代理,请在 proxy_pass 配置下添加:

    proxy_set_header Accept-Encoding "";
  3. 按照插件界面提示检测配置并开启统计。

手动开启网站统计

核心运行路径

路径用途
/bt-stats.js加载网站统计跟踪脚本
/bt-stats.gif上报访客统计数据

验证部署

  1. 访问目标网站的任意页面。
  2. 打开浏览器开发者工具,进入【网络】面板。
  3. 搜索 bt-stats.gif 请求。状态码为 200,且返回 1 × 1 像素的透明 GIF,表示上报正常。
  4. 等待几秒后,返回插件概览页面,确认已经生成统计数据。

数据指标说明

核心访问指标

指标计算方式说明
PV页面访问事件总数网站页面的总访问次数
UV独立访客数访问网站的独立用户数量
IP独立 IP 数访问网站的独立 IP 地址数量
跳出率单页会话数 / 总会话数仅访问一个页面就离开的会话占比
平均停留时长总停留时长 / 总会话数单次访问的平均停留时长,最大统计上限为 60 分钟

数据统计分位

分位指标说明用途
P5050% 的数据不高于该值,即中位数观察网站的常态访问或性能水平
P7575% 的数据不高于该值分析多数流量中的较差体验
P9595% 的数据不高于该值排查长尾异常和慢请求

Web Vitals 性能评分

指标说明优秀良好一般较差
LCP最大内容绘制≤ 1.5 s≤ 2.5 s≤ 4 s> 4 s
INP交互响应≤ 100 ms≤ 200 ms≤ 500 ms> 500 ms
CLS布局偏移≤ 0.05≤ 0.1≤ 0.25> 0.25
FCP首次内容绘制≤ 1 s≤ 1.8 s≤ 3 s> 3 s
TTFB首字节时间≤ 400 ms≤ 800 ms≤ 1.8 s> 1.8 s

2.0 功能配置

热力图

热力图展示访客在页面上的点击分布,可用于评估页面布局、按钮和广告位的效果。

  1. 进入插件的【热力图】页面,添加需要监控的页面地址并保存。
  2. 产生访问数据后,打开对应页面的热力图。
  3. 按需切换 PC、平板或移动端,查看不同视口下的点击热度。

页面点击热力图

热力图预览通过 iframe 加载目标页面。如果站点设置了 X-Frame-Options: SAMEORIGIN 或 CSP frame-ancestors 限制,需要移除限制或放行面板的域名或 IP。插件一键写入失败时,请在站点的 Nginx 或 Apache 配置中手动添加 CSP 放行规则,并将 frame-ancestors 的值替换为面板的真实域名或 IP。

热力图白名单配置

转化漏斗

漏斗可以自定义转化流程节点,统计每个环节的访客数量、转化率和流失率,帮助定位流失较多的步骤。

例如,可以配置“访问首页(index.html)→ 进入下载页(download.html)→ 完成登录(/login.html)”三步转化流程。产生数据后,漏斗图会分别展示进入人数、流失人数和每一步的转化率。

转化漏斗

会话回放

会话回放可以还原访客的鼠标移动、点击、滚动和页面跳转等操作,用于定位页面卡顿、按钮无响应、流程中断等体验问题。

站点开启统计后,进入【网站】>【网站设置】,开启回放并设置采样率和路径过滤规则。

设置项说明
回放开关开启或关闭该站点的回放采集
采样率01 之间的小数,表示录制访客的比例;默认 0.1(10%),0.5 表示录制 50% 的访客
路径过滤不录制的页面路径,支持 /login/admin/* 等规则

回放功能使用以下请求:

请求说明
/bt-replay.js下发回放录制脚本
/bt-replay-config下发回放配置;sample=1 表示开始录制,sample=0 表示未开始或未被采样
/bt-stats-replay上报回放数据块;正常响应状态码为 204,返回 200 表示请求被拦截,数据不会入库

回放配置响应示例:

{
"sample": 0,
"blockUrls": null,
"recordingId": "80c8e723-888b-4c56-b5e2-34fed4460430"
}

回放数据默认启用严格文本脱敏,输入框和敏感文本等内容不会被录制。

手动开启统计的站点

自动开启统计的站点会自动注入回放配置。手动开启统计的站点在启用回放后,还需要更新所有页面 </head> 标签前的统计代码,加入回放脚本。

数据大屏

数据大屏将核心访问指标与 IP 地域分布集中展示,适合运营会议和监控室投屏。

在插件【大屏设置】中开启大屏,配置访问端口、安全路由或域名,然后添加大屏登录用户并为其授权站点。配置完成后,通过生成的独立 URL 访问大屏。

数据大屏设置

数据大屏预览

常见问题

为什么统计数据比实际访问量少?

可能原因如下:

  1. 跟踪脚本没有覆盖网站的所有页面。
  2. 浏览器插件或广告拦截工具拦截了统计脚本。
  3. 后端过滤了不合法或无效的上报数据。
  4. CDN IP 识别配置不正确,导致独立 IP 或访客统计出现偏差。

支持哪些浏览器?

支持 Chrome、Firefox、Safari 和 Edge 等现代浏览器。Web Vitals 性能指标仅在支持 PerformanceObserver API 的浏览器中采集。

数据能保存多久?

磁盘空间充足时,数据可以永久保存。日均 1 万 PV 的站点每月约增加 100 MB 数据,请预留足够的磁盘空间。

能否统计多个站点?

支持。可以添加多个站点并分别部署跟踪脚本,各站点的数据相互独立。

如何保护访客隐私?

  • 插件使用匿名 Cookie 标识访客,不收集或保存个人身份信息。
  • 统计数据仅保存在自己的服务器中,不会上传到第三方平台。
  • 会话回放默认启用严格文本脱敏,不录制输入框和敏感文本。