少女祈祷中...

文章背景图

Vercel 零成本部署 Umami 网站统计系统

2026-08-31
35
-
- 分钟
  • 适合谁读:个人博客、独立站、作品集、知识库站点,以及第一次接触网站统计和 Vercel 的新手。

  • 本文目标:从注册账号开始,在 Vercel 上部署自己的 Umami 统计后台;随后绑定自定义域名,将统计代码放进网站,并使用 Halo 的 plugin-article-analysis 插件展示文章访问数据。

  • “零成本”:本文说的零成本,是指在免费额度、个人非商业使用、访问量不超过平台限制的前提下,不购买服务器和数据库套餐。Vercel、Neon、域名注册商的免费/付费规则都会变化;截至 2026 年 8 月 26 日,请以你实际账号页面显示的额度和条款为准。自定义域名本身通常需要付费购买,不能把域名费用算作零成本。


一、Umami + Vercel 适合什么场景?

Umami开源地址:https://github.com/umami-software/umami
Umami官方文档地址:
https://umami.is/docs/about

整个网站统计系统可以把它理解成三部分:

  1. Umami:网站统计程序,负责采集和展示访问数据。

  2. Vercel:运行 Umami 网页应用,并自动完成构建、部署和 HTTPS。

  3. PostgreSQL 数据库:保存网站、访客、页面浏览和事件等统计数据。本文使用 Neon 的免费 PostgreSQL,并通过 Vercel 集成到项目中。

部署完成后的访问链路大致如下:

访客打开你的网站
        ↓
Umami 追踪脚本记录匿名访问事件
        ↓
Vercel 上运行的 Umami 接收数据
        ↓
Neon PostgreSQL 保存数据
        ↓
你在 Umami 后台查看报表

1.1 Umami 的主要优点

  • 隐私优先:默认不依赖 Cookie,不以跨站追踪为目的,也不要求把数据交给广告平台。

  • 数据自己掌控:自托管后,统计数据保存在你选择的数据库中。

  • 轻量:追踪脚本体积小,对页面加载的影响较低。

  • 界面简单:比很多大型分析平台更容易看懂,适合个人站长。

  • 支持多站点:一个后台可以管理多个网站。

  • 支持事件统计:可以统计按钮点击、下载、表单提交等行为。

  • 支持 API 和分享:方便二次开发,或给别人一个只读的数据分享链接。

  • 开源可审计:源代码公开,可以自行部署和检查实现方式。

隐私提醒:不使用 Cookie 不等于在所有国家和地区自动完成合规。你仍然需要根据所在地区、网站业务、收集的字段和隐私政策要求,决定是否需要告知用户、取得同意或限制某些数据采集。


二、Umami 能统计哪些数据?

2.1 网站常见指标

指标

通俗解释

Pageviews 页面浏览量

页面被打开了多少次。一个人连续打开 5 个页面,通常会产生 5 次页面浏览。

Visits 访问次数

一段时间内的访问会话数量。

Visitors 访客数

在统计规则下识别到的匿名访客数量,不等于真实姓名或账号数。

Bounce Rate 跳出率

只访问一个页面、没有继续产生互动的访问占比。不同版本的计算口径可能不同。

Average Visit Time 平均访问时长

访问会话的平均停留时间。后台无活动心跳时,长时间停留未必能精确反映真实阅读时间。

Realtime 实时数据

最近一段时间内正在或刚刚发生的访问、页面和来源。

2.2 页面与内容分析

你可以查看:

  • 哪些页面最受欢迎;

  • 哪些文章带来了更多访问;

  • 访客从哪一个页面进入;

  • 访客最后离开了哪一个页面;

  • 页面 URL、标题、语言等维度;

  • 某一天、某一周或自定义时间范围的趋势。

对博客来说,最实用的做法是:每周打开 Pages/页面 报表,按页面浏览量和访客数排序,看看哪些文章值得继续更新。

2.3 来源、设备与地域

Umami 通常可以按以下维度拆分数据:

  • Referrers 来源网站:访客从哪个外部链接进入;

  • 搜索和社交来源:哪些搜索引擎或社交平台带来访问;

  • 浏览器:Chrome、Safari、Firefox 等;

  • 操作系统:Windows、macOS、Android、iOS 等;

  • 设备类型:桌面端、手机、平板;

  • 国家/地区:根据请求信息推断的粗粒度地域,不应当当作精确定位。

2.4 自定义事件

页面浏览只能告诉你“页面被打开了”,事件则可以告诉你“访客做了什么”。例如:

  • 点击“下载 PDF”;

  • 点击微信、GitHub 或邮件链接;

  • 播放视频;

  • 提交搜索;

  • 复制文章代码;

  • 点击“购买”“注册”“开始使用”。

一个事件一般包含一个事件名称,必要时还可以带事件数据。例如事件名称可以是 download,事件数据可以是 { file: 'guide.pdf' }

2.5 UTM 活动参数

如果你要比较不同推广链接,可以给 URL 加上 UTM 参数:

https://example.com/article?utm_source=wechat&utm_medium=social&utm_campaign=summer

常见字段:

  • utm_source:来源,例如 wechatgoogle

  • utm_medium:媒介,例如 socialemail

  • utm_campaign:活动名称,例如 summer

不要把姓名、手机号、邮箱等个人身份信息直接塞进 URL 参数或事件数据里。

2.6 目标、漏斗、旅程和留存

当你不只想看“有多少人访问”,而是想看“有多少人完成目标”时,可以使用更高级的分析能力:

  • Goals/目标:例如把“点击注册”定义为目标;

  • Funnels/漏斗:例如“打开落地页 → 点击价格 → 提交注册”;

  • Journeys/用户旅程:查看匿名访问在页面之间的大致流转;

  • Retention/留存:观察用户在首次访问后是否再次回来。

这些功能的菜单和可用范围可能随 Umami 版本变化。建议先把最重要的一个行为定义成目标,不要一开始就创建几十个指标。


三、部署前需要准备什么?

3.1 必需账号

项目

用途

是否需要付费

GitHub

Fork Umami 源码,保存你的部署代码

注册免费

Vercel

部署 Umami 应用

可使用 Hobby 免费计划,但需遵守当前计划条款

Neon

提供 PostgreSQL 数据库

可使用免费额度,具体以当前控制台为准

一个网站

放置 Umami 追踪脚本

你已有的网站即可

可选项目:自定义域名

你可以先使用 Vercel 分配的 *.vercel.app 域名测试,后续再绑定自定义域名。

如果你的访客主要来自中国大陆,vercel.app 默认域名可能存在访问不稳定的情况。自定义域名能改善品牌展示和链接可读性,但是否能稳定访问,还取决于域名解析、网络环境和站点备案等因素。


四、详细部署步骤:零基础照着做

第 1 步:Fork Umami 官方仓库

  1. 打开 Umami 官方 GitHub 仓库:

    https://github.com/umami-software/umami
  2. 登录 GitHub。

  3. 点击右上角 Fork

  4. 在弹窗里确认仓库归属为你的账号。

  5. 保持默认仓库名称或改成自己容易识别的名字。

  6. 点击 Create fork

Fork 的意思是:在你自己的 GitHub 账号下复制一份代码。后面 Vercel 部署的是你的副本,这样你可以通过同步上游代码来更新 Umami。

安全建议:不要把数据库连接字符串、密码、HASH_SALT 或 API 密钥写入 GitHub 文件。所有敏感配置都放在 Vercel 的 Environment Variables 中。

第 2 步:用 Vercel 导入 GitHub 仓库

  1. 打开 https://vercel.com,使用 GitHub 登录。

  2. 进入控制台,点击 Add New → Project

  3. 找到你刚刚 Fork 的 Umami 仓库,点击 Import

  4. 项目名称自己设置,其他全部先使用仓库默认值,点击Deploy

  5. 构建失败是正常的,因为我们还没有配置数据库,出现如图所示,可以直接返回主页。

第 3 步:在 Vercel 创建 Neon 数据库

  1. 打开 Vercel 主页面,点击Storage ,再点击Create Database

  2. 选择Neon,点击Continue

  3. 注意地区选择新加坡,点击Continue

  4. 名字自己设置,点击Create

  5. 创建完成,左上角点击关闭。

  6. 点击进入刚才创建的数据库,点击Conenect to Project

  7. 选择自己的umami项目,点击连接Connect Project,等待右下角提示连接成功。

第 4 步:重新部署 umami

  1. 回到 Vercel 项目的 Deployments 页面,找到最近一次部署。

  2. 点击右侧菜单中的Redeploy,等待部署。

  3. 如图,如果状态显示 Ready,则部署成功,点击域名即可访问umami页面。

如果仍然失败,请先看构建日志中最后几十行,重点寻找:

  • 数据库连接失败;

  • 环境变量缺失;

  • Prisma migration 失败;

  • Node.js/构建版本不兼容;

  • Neon 数据库授权未完成。

不要一上来反复点击 Redeploy。先解决日志明确指出的问题,再重新部署。

第 5 步:首次登录并立即修改密码

首次打开 Umami 后,使用当前版本官方文档提供的初始管理员账号登录。历史版本常见默认账号是:

用户名:admin
密码:umami

但默认凭据属于高风险信息,版本或部署方式可能发生变化。如果该账号无法登录,请以当前 Umami 官方文档或首次启动提示为准,不要把默认密码当成固定不变的规则。

登录后立即:

  1. 语言修改为简体中文;

  2. 进入管理员设置;

  3. 修改管理员密码;

  4. 设置强密码,并保存到密码管理器;

  5. 如果版本支持,开启双因素认证;

  6. 不要把后台地址和密码写进公开文章或截图。

第 6 步:添加要统计的网站

  1. 在 Umami 后台点击添加网站

  2. 填写网站名称,例如“我的博客”,填写网站地址,例如 www.example.com,点击保存

  3. 进入后台复制 Tracking code/追踪代码

代码通常类似于:

<script
  defer
  src="https://stats.example.com/script.js"
  data-website-id="替换成你的 Website ID">
</script>

第 7 步:把追踪代码放进网站(以Halo博客为例)

把代码放在网站公共布局的 <head> 区域,或者放在所有页面都会加载的页脚模板中。

静态 HTML

<head>
  <!-- 其他 head 内容 -->
  <script
    defer
    src="https://stats.example.com/script.js"
    data-website-id="你的 Website ID">
  </script>
</head>

WordPress、Halo 或其他 CMS

在主题的公共模板、页脚代码、站点自定义脚本设置中粘贴。具体入口取决于主题和系统版本。

单页应用(SPA)

大多数情况下,Umami 脚本可以自动识别页面变化;如果你使用了特殊路由或自定义导航逻辑,建议在真实访问后检查每个路由是否产生页面浏览。

第 8 步:验证是否统计成功

不要只看首页代码是否出现,还要完成一次真实验证:

  1. 用浏览器打开你的站点;

  2. 关闭会阻止统计脚本的浏览器插件,或使用无痕窗口测试;

  3. 访问两三个页面;

  4. 在 Umami 后台打开 Realtime

  5. 等待几十秒到几分钟,观察是否出现访问记录;

  6. 点击一个页面,再回到 Pages 检查页面浏览量。

如果没有数据,按下面顺序排查:

  • src 是否指向可以打开的 Umami 域名;

  • data-website-id 是否复制完整;

  • 追踪代码是否真的出现在最终网页源代码中;

  • 浏览器控制台是否报 404、CORS 或网络错误;

  • 广告拦截器是否拦截了 script.js 或上报接口;

  • Vercel 部署是否仍为 Ready;

  • Neon 数据库是否暂停、配额耗尽或授权失效。


六、基础配置:部署成功后建议做什么?

6.1 排除自己的访问

你每天反复打开自己的博客,会把自己的浏览量也算进去。Umami 通常提供排除 IP 的配置项,例如 IGNORE_IP 环境变量或后台过滤能力,具体以当前版本文档为准。

如果使用环境变量:

IGNORE_IP=你的公网IP,另一个IP

注意:家庭宽带、手机网络的公网 IP 可能变化;IPv6、代理和公司网络也可能让这个方法不稳定。它适合减少干扰,不应当被理解为绝对精准的“自己人过滤”。

6.2 关闭匿名遥测或更新检查

如果你希望减少 Umami 自身的匿名使用统计,可以查看当前版本是否支持:

DISABLE_TELEMETRY=1

如果不希望后台检查更新,可以查看是否支持:

DISABLE_UPDATES=1

这些变量名称可能随版本变化。添加后需要重新部署,并确认构建日志没有错误。

6.3 设置数据保留期

长期保存数据会让数据库逐渐变大。建议根据用途设置保留期:

  • 个人博客:保留 12~24 个月;

  • 活动页:活动结束后保留几个月;

  • 需要长期趋势:先导出重要数据,再清理明细。

保留期设置的入口和可选范围取决于 Umami 版本。第一次部署建议先使用默认值,运行一段时间后再调整。

6.4 多个网站放在一个 Umami 中

在后台添加多个 Website 即可统一管理:

  • 个人博客;

  • 文档站;

  • 作品集;

  • 活动落地页。

每个网站都有独立的 Website ID,因此不要把 A 网站的追踪代码复制到 B 网站后忘记更换 ID。

6.5 分享只读报表

如果你要把统计结果发给客户、合作者或编辑,可以使用网站设置中的分享功能(Share URL/共享链接)。分享前请确认:

  • 报表中没有你不想公开的内部信息;

  • 分享链接没有被公开索引;

  • 不再需要时及时关闭或重置分享链接。

6.6 降低广告拦截误伤

部分广告拦截器会拦截名字明显的统计脚本。可以根据当前 Umami 版本支持情况考虑:

  • 设置自定义追踪脚本名称;

  • 设置自定义数据收集接口;

  • 使用自定义域名;

  • 从自己网站域名下通过 Vercel rewrite 代理统计脚本。

不要为了“绕过拦截”而偷偷收集额外个人信息。目标只是让你已经明确启用的站点统计更稳定。

如果要使用 Vercel rewrite,可以在项目根目录添加类似配置:

{
  "rewrites": [
    {
      "source": "/stats/:match*",
      "destination": "https://你的-umami-域名/:match*"
    }
  ]
}

具体路径必须根据当前 Umami 追踪脚本和 Vercel rewrite 规则验证。改完后重新部署,再检查 script.js 和数据上报请求是否返回成功。


七、如何绑定自定义域名?

自定义域名的用途有两个:

  1. 让 Umami 后台地址更容易记,例如 stats.example.com

  2. 让网站追踪脚本不再使用明显的 vercel.app 地址。

7.1 在 Vercel 添加域名

  1. 打开 Umami 对应的 Vercel 项目;

  2. 进入 Settings → Domains

  3. 点击 Add Domain

  4. 输入准备好的域名或子域名,例如:

stats.example.com
  1. Vercel 会告诉你需要添加哪条 DNS 记录。

常见情况是:

  • 子域名:在 DNS 服务商处添加一条 CNAME,主机记录填写 stats,记录值填写 Vercel 页面给出的目标值;

  • 根域名:可能需要添加 A 记录,或按照 Vercel 当前提示配置;

  • 使用 Vercel Nameservers:也可以把域名 DNS 托管交给 Vercel,按页面提示修改名称服务器。

不要直接照抄网上旧教程中的固定 IP 或固定 CNAME。Vercel 可能针对不同域名、账户和接入方式显示不同的 DNS 配置,以你的 Domains 页面为准

7.2 在域名服务商添加 DNS 记录

以子域名 stats.example.com 为例:

类型

主机记录

记录值

CNAME

stats

Vercel Domains 页面显示的目标

保存后回到 Vercel,等待它自动检测。DNS 生效时间可能从几分钟到更久不等,取决于 DNS 服务商缓存。

当 Vercel 显示域名已生效并自动签发 HTTPS 后,用浏览器打开:

https://stats.example.com

如果打不开:

  • 检查主机记录是否把 stats 错写成完整域名;

  • 检查是否同时存在冲突的 A、AAAA、CNAME 记录;

  • 确认 DNS 服务商没有开启错误的代理模式;

  • 等待 DNS 缓存刷新;

  • 查看 Vercel 域名页面的具体错误提示。

7.3 更新网站追踪代码

绑定成功后,打开 Umami 后台的追踪代码页面,确认 src 已使用新的域名:

<script
  defer
  src="https://stats.example.com/script.js"
  data-website-id="你的 Website ID">
</script>

如果后台仍显示旧域名,也可以手动替换 src,但必须先确认新域名能够正常访问 script.js


八、Halo 文章分析插件是什么?

该项目是一个 Halo 插件,仓库说明将它定位为“文章访问量统计”类插件,并提供 Umami 等统计服务的配置方式。它的价值不是替代 Umami,而是把 Umami 的数据接入 Halo 的文章页面或管理界面,让你更方便地查看文章级别的访问数据。

需要注意:GitHub 仓库的 README、Release 和配置项可能更新。安装前请以仓库当前页面的 README、Releases、兼容版本说明和权限声明 为准;本文按照仓库公开说明总结使用思路,不把某个时间点的界面截图当作永久不变的操作路径。

8.1 插件与 Umami 的关系

可以这样理解:

  • Umami 负责采集和保存网站统计数据;

  • Halo 负责管理文章和页面;

  • plugin-article-analysis 负责把文章分析数据接到 Halo 的使用场景中。

它们不是“装了 Halo 插件就自动出现数据”。要想让文章分析正确工作,至少要满足:

  1. Umami 已部署并能访问;

  2. 要统计的 Halo 站点已经添加到 Umami;

  3. Halo 文章页面加载了 Umami 追踪代码;

  4. 插件能访问 Umami 的 API;

  5. API 认证信息和网站/文章标识配置正确;

  6. Umami 中已经产生可查询的数据。

8.2 安装插件

以 Halo 常见的插件安装方式为例:

  1. 打开指定 GitHub 仓库的 Releases 页面;

  2. 下载与当前 Halo 版本匹配的插件安装包;

  3. 进入 Halo 管理后台;

  4. 打开 插件/扩展管理

  5. 选择本地安装,上传插件包;

  6. 安装完成后启用插件;

  7. 在插件设置页面查看 Umami 配置项。

如果仓库没有提供适合你 Halo 版本的 Release 包,或者插件要求从源码构建,请遵循仓库当前 README,不要随意下载陌生的第三方构建文件。

8.3 在 Umami 中准备 API 访问

插件需要从 Umami 查询统计数据。常见做法是使用 Umami 的 API Token 或个人访问令牌,具体名称以插件当前版本和 Umami 当前版本为准。

建议创建一个专门给 Halo 插件使用的令牌,而不是把管理员密码写入插件:

  1. 登录 Umami;

  2. 打开账户、个人设置或 API Token 页面;

  3. 创建新令牌;

  4. 给令牌写清楚用途,例如 halo-article-analysis

  5. 只赋予满足查询所需的权限;

  6. 复制令牌并安全保存。

如果 Umami 当前版本要求先登录获取会话或使用特定 API 认证方式,则按官方 API 文档和插件 README 配置。令牌只在 Halo 后台保存,不要提交到公开 GitHub 仓库。

8.4 在 Halo 插件中填写 Umami 配置

打开 Halo 的文章分析插件设置页,通常需要关注以下几类配置:

配置项

填什么

示例

Umami 地址

Umami 对外访问的完整地址,不要只填域名名称

https://stats.example.com

API Token/令牌

在 Umami 创建的查询令牌

仅填写实际令牌

Website ID

Umami 中对应 Halo 网站的 ID

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

文章匹配字段

插件用来把 Halo 文章和 Umami 页面对应起来的字段

通常是文章 URL 或路径

统计时间范围

查询最近 7 天、30 天或自定义时间范围

最近 30 天

不同版本插件的字段名称可能不同。填写时有三个原则:

  • Umami 地址要用部署成功的地址,例如自定义域名;

  • Website ID 要来自正确的网站,不能把 Umami 登录账号或项目名当成 ID;

  • 文章匹配规则要和 Umami 实际记录的 URL 保持一致。

保存后,先打开一篇 Halo 文章,再回到 Umami 的 Pages 报表确认页面路径;如果 Umami 记录的路径和插件查询的路径不一致,插件可能显示为 0。

8.5 文章 URL 匹配是最容易出错的地方

举例:Halo 文章最终访问地址是:

https://www.example.com/archives/umami-deploy

Umami 可能记录的页面路径是:

/archives/umami-deploy

有些插件则可能根据完整 URL、文章别名、文章 ID 或页面标题来查询。常见不匹配原因包括:

  • 一个使用 http,另一个使用 https

  • 一个使用 www.example.com,另一个使用根域名;

  • URL 末尾一个有 /,另一个没有;

  • 站点部署在反向代理后,Umami 记录了代理路径;

  • Halo 文章改过别名,但插件仍查询旧路径;

  • 页面使用了语言前缀,例如 /zh/archives/...

  • SPA 路由变化没有正确触发页面浏览。

排查时请在浏览器地址栏复制真实文章地址,再对照 Umami 报表中实际显示的路径,最后按照插件 README 规定的匹配方式配置。

8.6 如何判断 Halo 插件已经接入成功?

可以做一次最小闭环测试:

  1. 在 Umami 中确认 Website ID;

  2. 在 Halo 插件中填入 Umami 地址、令牌和 Website ID;

  3. 打开一篇公开文章;

  4. 等待 Umami 出现这次访问;

  5. 在插件页面刷新;

  6. 查看文章浏览量或趋势数据是否出现;

  7. 换另一篇文章验证路径匹配不是偶然正确。

如果 Umami 有数据但插件没有数据,问题通常在 API 权限、Website ID、时间范围或 URL 匹配;如果 Umami 本身没有数据,应先修复追踪脚本,而不是先修改插件。


九、日常使用:一套适合新手的统计习惯

9.1 每周看 4 个问题

不用每天沉迷报表,每周固定看下面四项就够了:

  1. 哪些文章访问最多?:决定下一批内容选题;

  2. 访客从哪里来?:判断搜索、社交或外链哪个渠道有效;

  3. 哪些页面只有访问没有后续动作?:优化标题、目录、内链和 CTA;

  4. 移动端体验是否明显更差?:按设备拆分后检查页面速度和布局。

9.2 给重要按钮加事件

假设你希望统计下载按钮,可以使用 Umami 当前版本支持的事件写法。常见 HTML 写法类似:

<button
  data-umami-event="download-guide"
  data-umami-event-file="umami-guide.pdf">
  下载指南
</button>

也可以使用 JavaScript API:

<script>
  umami.track('download-guide', {
    file: 'umami-guide.pdf'
  });
</script>

不同 Umami 版本的事件属性或 API 细节可能变化,请以当前官方文档为准。测试时要在 Umami 的 Events/事件报表中确认事件名称和属性是否出现。

9.3 用 UTM 比较推广效果

不要只在文章里写“欢迎从公众号访问”。为不同渠道生成不同链接:

https://www.example.com/guide?utm_source=wechat&utm_medium=social&utm_campaign=umami-guide
https://www.example.com/guide?utm_source=email&utm_medium=newsletter&utm_campaign=umami-guide

这样可以比较微信、邮件、搜索或其他渠道的访问质量。参数名称要保持统一,不要今天写 WeChat、明天写 wechat,否则后台会拆成两个来源。

9.4 保护统计数据

  • 使用强管理员密码;

  • 定期更新 Umami 版本;

  • 不把 API Token 写入前端代码;

  • 不把数据库连接字符串提交到 GitHub;

  • 限制 Halo 插件令牌权限;

  • 为数据库和重要配置保留备份;

  • 定期检查 Vercel、Neon 的用量和账单页面。


十、常见问题与排错

Q1:Vercel 部署失败,是不是 Umami 不能部署?

通常不是。最常见原因是数据库连接变量没有注入、变量名称不符合当前 Umami 版本要求、数据库授权未完成,或构建时使用了错误的环境变量范围。

先打开 Deployment 的 Build Logs,找到第一条真正的错误,再检查:

  • 数据库 URL 是否存在;

  • URL 是否包含完整的协议和认证信息;

  • Neon 项目是否可用;

  • Vercel 是否在 Production 环境注入变量;

  • 代码版本和官方部署说明是否对应。

Q2:登录页能打开,但登录不了

可能是初始账号已被修改、默认凭据随版本变化,或者数据库初始化没有完整完成。请查看当前 Umami 官方文档和部署日志。不要在公开评论区贴出管理员密码或数据库 URL。

Q3:后台没有访问数据

优先检查追踪代码,而不是数据库:

  1. 页面源代码里有没有脚本;

  2. src 是否指向当前 Umami 域名;

  3. data-website-id 是否正确;

  4. 浏览器 Network 面板中脚本和上报请求是否成功;

  5. 是否被广告拦截器阻止;

  6. 是否刚好使用了错误的域名、协议或缓存版本。

Q4:Umami 有数据,Halo 插件显示 0

这说明采集链路大概率正常,重点检查 Halo 插件:

  • Umami 地址是否带 https://

  • API Token 是否过期、复制不完整或权限不足;

  • Website ID 是否对应 Halo 站点;

  • 插件选择的日期范围是否覆盖这次访问;

  • 文章 URL 路径是否完全匹配;

  • 文章是否被缓存成了旧链接。

Q5:绑定域名后脚本失效

先直接访问:

https://stats.example.com/script.js

如果返回 404,说明自定义域名未正确指向 Umami 项目,或脚本路径与当前版本不一致。如果脚本能打开,再检查网站追踪代码中的 Website ID 和浏览器网络请求。

Q6:Neon 免费数据库会不会丢数据?

免费数据库通常会有计算、存储、闲置暂停或用量限制。闲置暂停可能导致第一次请求较慢;达到额度后,服务行为取决于供应商当前政策。重要数据不要只依赖免费服务,建议定期导出或备份。

Q7:能不能把 Umami 和 Halo 放在同一个域名?

可以尝试用不同子域名,例如:

www.example.com       # 博客
stats.example.com     # Umami 后台

也可以用反向代理把统计脚本映射到主站路径,但这会增加 rewrite、缓存、跨域和升级排错成本。第一次部署建议先使用独立的 stats 子域名,确认运行稳定后再做代理优化。

Q8:Vercel 真的永远免费吗?

不能这样理解。Vercel Hobby 计划、Neon 免费额度和第三方集成政策都可能调整;此外,商业用途、团队协作、超出用量、额外日志或数据库服务可能触发限制或费用。部署后请定期查看当前价格、用量和账单页面。


十一、更新与维护建议

11.1 更新 Umami

如果你使用的是 GitHub Fork:

  1. 在 GitHub 打开你的 Fork 仓库;

  2. 使用 Sync fork 或同步上游分支;

  3. 先阅读 Umami 当前版本的升级说明;

  4. 确认数据库迁移和环境变量是否有变化;

  5. 再让 Vercel 触发部署;

  6. 部署完成后检查登录、网站列表、Realtime 和历史数据。

重大版本升级前,建议先复制一个 Preview 环境测试。不要为了追新版本直接在生产环境反复试错。

11.2 监控免费额度

至少关注:

  • Vercel Function 调用量、构建次数和带宽;

  • Neon 存储空间、计算时间、数据库状态;

  • Umami 网站数量、事件数量和数据保留量;

  • 自定义域名证书状态;

  • Halo 插件 API 请求是否频繁失败。

11.3 做一次数据备份演练

“以后再备份”通常等于“没有备份”。至少确认:

  • 能否从 Neon 导出数据库;

  • 是否保存了 Vercel 环境变量名称和值的安全副本;

  • 是否保存了 Umami Website ID;

  • 是否知道如何重新绑定域名;

  • Halo 插件令牌失效后能否重新生成。

不要把数据库密码和 API Token 放在公开笔记、仓库 README、截图或聊天群里。


十二、总结

对于个人博客和小型网站,Umami + Vercel + Neon 是一套相对轻量的自托管统计方案:

  • 不用购买服务器;

  • 不需要安装复杂运行环境;

  • 统计数据由你选择的数据库保存;

  • Umami 界面简洁,适合零基础用户;

  • 可以从页面浏览逐步扩展到事件、UTM、目标和漏斗;

  • 可以通过自定义域名改善访问和品牌体验;

  • 可以借助 Halo 的 plugin-article-analysis 插件,把文章统计融入日常内容管理。

最推荐的新手路线是:先用 Vercel 默认域名完成部署 → 确认 Realtime 有数据 → 再绑定 stats.你的域名 → 最后配置 Halo 插件。每一步都先验证再继续,遇到问题时根据链路定位,不要同时修改五六项配置。

只要完成一次完整闭环,你就不再只是“猜哪些文章受欢迎”,而是可以用真实数据决定下一篇写什么、哪个入口值得优化,以及哪些推广渠道真正带来了读者。


相关资料

本文资料说明:文章基于参考文件《Umami-Vercel零成本部署指南.md》整理,并结合 Umami、Vercel、Neon 及指定 Halo 插件仓库的公开资料编写。云平台计划、软件版本、菜单名称和插件配置字段可能变化;实际操作时请以对应官方页面和仓库最新说明为准。

AI

Vercel 零成本部署 Umami 网站统计系统

本文链接: Vercel 零成本部署 Umami 网站统计系统

本文包含 AI 辅助内容 ,使用 ChatGPT 参与 资料整理,排版辅助 ,已由作者审核。

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

评论交流

文章目录