Hexo使用Vercount统计访问数据

前言

在我使用的 fluid 主题中,支持 Busuanzi、Leancloud 和 Umami 三种访问统计方式的配置,其中后两者需要额外的配置和部署,比较麻烦,因此我起初选用了 Busuanzi 用以统计访问数据。然而,Busuanzi 在访问量较大时会出现数据不准确的情况,加之前些天服务不稳定,于是我便决定更换为 Vercount 进行访问统计。

Vercount官网

Vercount 初始化自动同步所有不蒜子的数据,兼容不蒜子的 span 标签,理论上可以无痛切换;且使用 POST 请求进行统计,页面浏览量每访问一次加一,独立访客量通过用户的 UserAgent 和 IP 地址判断,因此数据更加准确。而在我更换到 Vercount 后,Vercount 又新增了自定义访客数据的功能,因此我决定写一篇文章来记录一下切换到 Vercount 的过程以及如何使用它来统计访问数据。

配置

替换脚本

如果只是希望简单的统计数据,那么只需要用 Vercount 的脚本替换掉 Busuanzi 的脚本即可。如果你没有对 fluid 主题进行过修改,那么只需要在主题的 _config.fluid.yml 文件底部找到 Busuanzi 相关的配置项并进行替换。

1
2
- busuanzi: https://busuanzi.ibruce.info/busuanzi/2.3/
+ busuanzi: https://events.vercount.one/js?i=

如果你像我一样自定义了页脚内容,那么只需要将页脚注入中 Busuanzi 的相关代码替换为 Vercount 的代码即可。

1
2
- <script defer src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
+ <script defer src="https://events.vercount.one/js"></script>

fluid页脚美化

由于 Vercount 兼容 vercount_value_busuanzi_value_ 的 span 标签,因此无需修改 HTML 模板中的相关标签。

自定义访客数据

如果你希望更进一步,自定义访客数据,或者和我一样由于在 Busuanzi 服务瘫痪时切换到 Vercount,未能成功同步原有的数据,那么你可以参考下面的步骤来进行配置。

首先,你需要在 Vercount仪表盘 中关联你的站点。如果你和我一样,使用 Github Pages 站点托管服务,那么可以选择第二种认证方式——“File Upload”,在站点根目录下创建一个验证文件。为了避免每次部署都需要手动上传验证文件,这里有两种方法可以实现:

  1. 你可以在 scripts/ 目录下创建一个脚本,自动上传验证文件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const fs = require('fs');
    const path = require('path');
    
    const content = '<your-vercount-verify-content>'; // 替换为你的 Vercount 验证码
    const filePath1 = path.join(__dirname, '../.deploy_git/.well-known/<your-vercount-verify-filename>'); // 替换为你的 Vercount 验证文件名
    const filePath2 = path.join(__dirname, '../.deploy_git/.nojekyll');
    
    fs.mkdirSync(path.dirname(filePath1), { recursive: true });
    fs.writeFileSync(filePath1, content);
    
    fs.writeFileSync(filePath2, '');

    其中

    • <your-vercount-verify-content> 形如 vercount-domain-verify=<your-domain>,<verify-code>
    • <your-vercount-verify-filename> 形如 vercount-verify-<something else>.txt

    你可以在 Vercount 仪表盘中找到相应的验证信息。

    由于 Github Pages 默认启用了 Jekyll,屏蔽了以 . 开头的目录和文件,因此需要在站点根目录下创建一个 .nojekyll 文件来禁用 Jekyll 的处理,脚本中也已经实现。

  2. 你也可以在 Hexo 的 _config.yml 文件中添加如下配置:

    1
    2
    3
    include:
      - ".well-known/**"
      - ".nojekyll"

    并在 source/ 目录下创建 .well-known/ 目录,并在其中添加验证文件,同时在 source/ 目录下添加 .nojekyll 文件。

Vercount 与 Busuanzi 的数据对比

  Service   Site PV     Site UV     Page PV   Update Time
Vercount loading loading loading loading
Busuanzi loading loading loading loading

前文提到,Vercount 每次调用都会自动同步 Busuanzi 的数据,但只会返回 Vercount 自身的数据,因此要想获取到 Busuanzi 的数据,还需要自行调用 Busuanzi 的 API。因此,每次访问一个页面,Busuanzi 的数据会自增二,从而造成一定误差。

总结

Vercount 提供了一个简单易用的访问统计服务,兼容 Busuanzi 的数据格式,支持自定义访客数据,并且使用 POST 请求进行统计,数据更加准确。通过简单的配置和脚本,你可以轻松地将 Hexo 博客的访问统计从 Busuanzi 切换到 Vercount。


Hexo使用Vercount统计访问数据
https://youyeyejie.github.io/_posts/Hexo使用Vercount统计访问数据/
作者
youyeyejie
发布于
2025年7月20日
更新于
2025年9月14日