跳到主要内容
版本:latest

宝塔网站统计

产品概述

宝塔网站统计(bt-stats)是一款轻量级、自托管的网站访问分析系统,以宝塔面板插件的形式运行,具有以下特点:

  • 自托管:数据存储在自有服务器,不经过第三方。
  • 高性能:采用 Go 采集后端和 DuckDB 列存引擎,单机可承载日均百万 PV。
  • 低资源:无需 MySQL 或 PostgreSQL,嵌入式数据库开箱即用。
  • 准确可靠:通过 Cookie 标识用户身份,准确识别新访客和回访客。

功能矩阵

功能模块说明
概览看板PV、UV、IP、跳出率、平均访问时长和活跃用户趋势
访问分析入口页面和出口页面排名
来源分析来源域名和渠道分布(直接访问、搜索引擎、社交、外链、付费和 UTM)
访客分析地域、浏览器、操作系统、设备、屏幕和语言 6 个维度的分布
会话列表Session 分页浏览和单会话行为日志
实时访客实时访问列表和访问轨迹追踪
用户旅程页面路径排名和事件流分析
广告追踪UTM 五参数(source、medium、campaign、content、term)和广告平台 Click ID
页面性能Web Vitals(LCP、INP、CLS、FCP、TTFB)均值、评分、趋势和维度分解
热力图页面点击坐标热度分布,支持按页面配置与查询
IP 地理分布国家和省份 IP 分布可视化

宝塔网站统计概览页

快速开始

环境要求

项目要求
服务器Linux x86_64(支持 Debian、Ubuntu 和 CentOS)
内存最低 1 GB,推荐 2 GB 及以上
磁盘200 MB 基础空间;日均 1 万 PV 时,每月约增加 100 MB
面板宝塔 Linux 面板
Web 服务Nginx 或 Apache(Apache 仅支持手动配置)

安装插件

在宝塔面板的【软件商店】中搜索并安装【宝塔网站统计】。安装完成后,进入插件设置页面进行配置。

开启网站统计

在插件的【网站列表】中添加需要统计的站点,或找到已有站点,然后根据实际情况选择自动开启或手动开启。

设置项说明
CDN 类型如果站点使用了 CDN,请选择对应的 CDN 厂商(Cloudflare、阿里云或腾讯云),以确保获取真实访客 IP
说明

如果已在面板中开启全局 CDN,则可以忽略此处设置。

宝塔网站统计的网站列表

部署跟踪脚本

自动部署

插件会自动在站点的 Nginx 配置中注入跟踪脚本,无需手动修改代码。部署后,访问者加载页面时,跟踪脚本会自动采集并上报数据。

手动部署

如果自动部署失效、网站使用了反向代理,或网站使用 Apache 服务,请选择手动部署。

  1. 选择以下任一方式部署跟踪脚本:

    • 方式一(Nginx):修改网站配置文件,使用 sub_filter</head> 标签前插入插件提供的手动配置信息。

      sub_filter '</head>' '【在此处粘贴手动配置信息】</head>';
    • 方式二(推荐):将插件提供的手动配置信息复制并粘贴到网站所有页面的 </head> 标签前。建议将其放入 header.htm 等公共页头模板中,实现“一处安装,全站生效”。

      如果需要在独立 JavaScript 文件中调用,请移除首尾的 <script></script> 标签,并将其中的核心代码放入 JavaScript 文件。

  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 数
跳出率单页 Session 数 / Session 总数仅访问 1 个页面就离开的会话比例
停留时长总停留时长 / Session 数单次访问的平均停留时长,上限为 60 分钟,以避免脏数据影响

网页性能标准

统计指标

指标说明侧重点业务用途
P50中位数中间水平整体平均常态
P7575 分位75% 数据上限多数流量的较差值
P9595 分位95% 数据上限长尾异常和慢请求

性能指标

指标说明优秀良好一般较差
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

热力图

热力图展示访客在页面上的点击分布,直观呈现用户最关注、点击最密集的区域,可用于优化页面布局、按钮和广告位。

注意

如果网站禁止在 iframe 中加载,请在网站配置中移除 X-Frame-Options 或 CSP frame-ancestors 限制。例如,需要移除以下 Nginx 配置:

add_header X-Frame-Options SAMEORIGIN;

页面点击热力图

常见问题

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

可能原因如下:

  1. 跟踪脚本未覆盖网站的所有页面。
  2. 部分浏览器插件或广告拦截器拦截了跟踪脚本。
  3. 后端校验过滤了不合法的上报数据。
  4. CDN IP 识别配置不准确,导致独立 IP 数偏低。

支持哪些浏览器?

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

数据能保存多久?

磁盘空间充足时,数据可以永久保存。DuckDB 列式存储压缩率较高,日均 1 万 PV 的站点每月约增加 100 MB 数据量,请注意预留足够的磁盘空间。

能否统计多个站点?

支持。在插件的【网站管理】中添加多个站点,并分别部署跟踪脚本即可。各站点的数据相互独立。

如何处理用户隐私?

  1. 使用匿名化 Cookie 标识访客,不包含个人身份信息。
  2. 所有数据只存放在用户自己的服务器上,不会上传到第三方服务。