← 目录
萧禹
2026-10-25 23:49

两套零成本的SEO分析方案:大厂工具及开源项目推荐

自建笔记SEO获客
关键词SEO分析Google Search ConsoleCloudflare Web AnalyticsMicrosoft ClarityUmamiPlausible平替

先说清楚:这里的“0 成本”指不新增工具订阅费,不代表域名、主机、时间和维护成本为零。域名和网站本来就需要;免费额度也可能变化。但如果你的网站已经上线,下面两套方案都能把新增现金成本压到 0。

Plausible 官方 Starter 目前是 $9/月,包含每月 1 万 pageview。它很好用,但自建会更重,Plausible 的自建架构仍需要 PostgreSQL 和 ClickHouse。对没有服务器、只想把 SEO 数据和用户行为看明白的人,没必要一开始就上这套基础设施。

更实用的顺序是:

  1. 先用大厂全免费组合把 SEO 的底层数据补齐。
  2. 再用 Umami 把网站访问和关键事件收进一个轻量面板。

注意先后顺序。GSC 回答“用户在搜什么、你有没有曝光、页面有没有被收录”,Umami 回答“来了多少人、从哪里来、做了什么”。两套不是互相替代。下面故意按 2 → 1 的顺序展开:先讲最值得优先落地的大厂三件套,再讲 Umami。

先看结论:两套方案分别解决什么

方案适合谁新增订阅费主要价值最大限制
2. GSC + Cloudflare Web Analytics + Microsoft Clarity想让 SEO 尽快可测量的人$0搜索曝光、收录、访问、CWV、点击与录屏数据分散在三个后台
1. Umami Cloud 或自建想要统一、轻量的网站分析面板$0 起页面访问、来源、事件、UTM、目标不能替代 GSC 的搜索与索引数据

如果只能先做一件事,先做第 2 套。它不需要服务器,能直接回答 SEO 最关键的问题。第 1 套是在此基础上补齐“网站分析”体验。

2. 先搭大厂全免费 SEO 三件套

这套组合的重点不是“免费”,而是三个工具各自回答不同问题:

工具它回答的问题它不负责回答
Google Search Console哪些查询带来曝光和点击?页面收录了吗?站内点击、滚动、录屏
Cloudflare Web Analytics哪些页面有人访问?来自哪里?CWV 怎么样?关键词曝光、搜索排名
Microsoft Clarity用户到底点了哪、滑到哪、卡在哪?作为 SEO 排名的权威数据源

2.1 Google Search Console:先建立搜索基线

GSC 是这套组合里最重要的工具。它直接来自 Google,提供搜索曝光、点击、CTR、平均排名、页面收录和站点健康信息。

第一步:添加资源(property)

  1. 登录 Google Search Console。
  2. 点击左上角资源选择器,再点“添加资源”。
  3. 优先选择“域名”资源,输入根域名,例如 example.com,不要带 https://,也不要在根域名前加 www。
  4. 按向导复制 DNS TXT 验证记录,添加到域名服务商。
  5. 回到 GSC 点击验证。DNS 记录可能需要一段时间生效,最长可能要到两三天。
  6. 验证成功后不要删除 TXT 记录,否则之后可能失去验证。

域名资源覆盖该域名下的 http、https 和所有子域名,适合绝大多数独立站。如果你完全不能改 DNS,也可以改用“网址前缀”资源,再用 HTML 标签或 HTML 文件验证。不要把两种资源理解成两种账号,它们只是覆盖范围不同。

第二步:提交 sitemap

  1. 打开 GSC 左侧“索引”下的“站点地图”。
  2. 确认你的 sitemap 能在浏览器无登录访问,例如 https://example.com/sitemap.xml。
  3. 在“添加新站点地图”里输入完整 URL,点击提交。
  4. 回到报告确认状态。常见状态包括“成功”“无法获取”“存在错误”。
  5. 新站不要只等数据。用顶部“网址检查”检查首页和最重要的落地页,确认“网页可编入索引”。

提交 sitemap 只是告诉 Google 去哪里找,不保证每个 URL 都会被抓取和收录。这个区别很重要。

第三步:每周只看四个视图

视图怎么看用来做什么
查询曝光、点击、CTR、平均排名找高曝光低点击、低排名但有需求的词
网页按 URL 看表现找“有曝光但不被点”的页面
页面索引已编入索引、未编入索引及原因判断问题在收录还是内容
网址检查单页抓取、规范链接、可索引性新页上线和异常页排查

建议固定看 最近 28 天对比前 28 天,不要每天盯着曲线。GSC 最新数据可能是临时数据,通常会继续变化;做判断时优先看已经完整的日子。

一个很实用的检查顺序是:

  1. 有曝光、没有点击:先改标题和描述,再看页面是否匹配搜索意图。
  2. 有收录、没有曝光:可能关键词太窄,也可能是页面还没有足够竞争力。
  3. 没收录:先看页面索引报告和网址检查,再检查 robots.txt、规范链接、登录限制和页面质量。
  4. 排名很差:先补内容深度和内部链接,不要只改 meta 标签。

GSC 不提供所有查询词,部分查询会被匿名化或截断;它也可能和站内分析工具的访问数不一致。这不是谁“算错了”,而是两套系统的统计口径不同。

2.2 Cloudflare Web Analytics:看全站访问和真实 CWV

Cloudflare Web Analytics 是隐私优先的 RUM(真实用户监测)工具,不需要 Cookie 或 localStorage。它能看到页面访问、访客、来源、路径、国家和浏览器,也能看到 LCP、INP、CLS 三项 Core Web Vitals。

如果你的网站托管在 Cloudflare Pages

  1. 进入 Cloudflare 控制台的“Workers 和 Pages”。
  2. 打开对应的 Pages 项目。
  3. 进入“指标”,在 Web Analytics 下点击启用。
  4. 下一次部署时,Cloudflare 会自动注入脚本。
  5. 发布后访问任意页面,几分钟后回到后台看数据。

如果域名已经通过 Cloudflare 代理

  1. 进入 Cloudflare 控制台的“Web Analytics”。
  2. 点击“添加站点”,选择已有的 Cloudflare 主机名。
  3. 完成后确认自动设置已开启。
  4. 在“管理站点”里可以选择 EU 访客排除、手动脚本或关闭。

如果站点没有走 Cloudflare 代理

  1. 在 Web Analytics 页面点击“添加站点”。
  2. 输入主机名,例如 example.com,不要带协议和路径。
  3. 复制 JS snippet。
  4. 把它放在网站所有页面 </body> 之前。
  5. 重新部署,并确认页面源码里能看到脚本。

非代理站点目前最多可以跟踪 10 个主机名,代理站点通常没有这个数量限制。免费并不等于无限资源,但个人站和中小站基本够用。

每周重点看什么

  1. 先看 7 天和 28 天的页面访问趋势,再看具体路径。
  2. 对比来源域名,判断流量是搜索、外链还是直接访问。
  3. 打开 Core Web Vitals,先解决 P75 表现最差的 LCP、INP 或 CLS,而不是只做一次 Lighthouse 截图。
  4. 新版本上线后按同一 URL 对比改动前后,不要混入整站平均值的波动。

Cloudflare 的优势是真实用户性能数据,但它不会告诉你“用户搜了什么”。关键词层面的判断仍然要回到 GSC。

2.3 Microsoft Clarity:看用户进站后的真实行为

Clarity 提供录屏和热力图,适合判断“用户看到了什么、点了什么、在哪里卡住”。官方当前说明是免费、无流量上限;录屏数据保留 30 天,热力图数据保留 9 个月。它适合行为诊断,不适合当作财报级的访问统计。

安装

  1. 创建 Clarity 账户,新建项目并填写站点信息。
  2. 进入项目设置里的 Setup。
  3. 选择手动安装,复制 tracking code。
  4. 把代码放到全站 <head> 中,或通过 Google Tag Manager、站点后台提供的集成方式安装。
  5. 用无痕窗口访问网站,在开发者工具 Network 里确认有发往 https://www.clarity.ms/collect 的 POST 请求。
  6. 回到 Clarity 控制台,看到 current live users 或 recording 后,再去热力图页面。

怎么用才不浪费时间

先只检查三种页面:

  1. 有流量但没有转化的落地页:看点击热力图和录屏,确认 CTA 是否被忽略、表单是否难用。
  2. 跳出率高的文章页:看滚动深度和用户在哪里停止阅读。
  3. 新上线页面:找真实用户的首次使用问题,而不是凭自己反复点击判断。

隐私和合规必须先做

Clarity 默认会屏蔽敏感内容,但它仍然是使用 Cookie 的行为分析工具,不是无 Cookie 的访问计数器。你需要:

  1. 在隐私政策中披露 Clarity 及其 Cookie。
  2. 按适用法律配置同意提示或 Consent API,尤其是 EEA、英国和瑞士访客。
  3. 不要把密码、支付信息、身份证件等敏感内容送入录屏。
  4. 不要把 Clarity 用在面向 18 岁以下用户的网站或应用上,这是官方明确的限制。

如果你要做的是 B2B 或隐私敏感业务,先做隐私评估,再决定是否安装。免费不代表可以跳过用户告知。

2.4 三个工具怎么串起来

不需要每天打开三个后台,按问题走就够了:

你看到的现象先打开下一步
搜索曝光上升,点击不涨GSC看查询 CTR、页面标题和搜索意图
页面有访问,但转化没变化Clarity看 CTA 热力图、表单录屏和滚动深度
访问正常,但 LCP/INP/CLS 很差Cloudflare先定位最差的元素和页面,再优化资源加载
新页面没有数据GSC + Cloudflare先查网址收录,再查访问脚本是否漏装
某篇文章突然有访问GSC + Cloudflare看是新查询带来的,还是外部来源带来的

这也说明为什么 Clarity 不能代替 GSC:它能告诉你用户进站后做了什么,但不能告诉你用户在 Google 搜了什么。

2.5 一次上线检查清单

这套三件套做完,SEO 已经可以开始闭环:GSC 找需求,Cloudflare 看到达与性能,Clarity 查页面卡点。

1. 再上 Umami:把网站分析收进一个面板

Umami 是开源、无 Cookie、界面极简的网站分析工具。它很像 Plausible,但底层只需要 PostgreSQL,不用自己维护 ClickHouse。当前有两条路线:

路线新增现金成本维护成本适合谁
Umami Cloud 免费档$0最低1 个网站、每月不超过 10 万 events、快速上线
Vercel + Neon/Supabase 自建$0 起中想自己掌控数据、愿意处理数据库和部署
单服务器 Docker 自建服务器可能收费高已有服务器、懂运维的人

官方 Cloud 免费档当前是 每月 10 万 events、1 个网站、6 个月数据保留。自建则没有 Umami 自己的订阅费,但受 Vercel 和数据库免费额度约束。

1.1 最省事:Umami Cloud

如果你只有一个网站,优先走这条。它的真正优势不是“免费”,而是你不用维护数据库、迁移和升级。

  1. 打开 Umami Cloud 注册页,创建账户。
  2. 登录后进入 Websites,点击 Add website。
  3. 填写名称和真实域名,保存。
  4. 点该网站的 Edit,在 Tracking code 里复制脚本。
  5. 把脚本放进网站 <head>,或通过模板的统一 head 配置注入。
  6. 访问网站,在浏览器开发者工具里确认脚本和发送请求都成功,再回面板看实时数据。

Cloud 的脚本形式大致如下,data-website-id 必须换成你自己的 ID:

<script
  defer
  src="https://cloud.umami.is/script.js"
  data-website-id="YOUR_WEBSITE_ID"
></script>

如果你要记录站内自定义事件,再用 umami.track() 标记按钮点击、表单提交、注册完成等动作。不要一上来就埋十几个事件,先定义 2 到 3 个真正能指导决策的事件。

1.2 0 订阅自建:Vercel + Neon 或 Supabase

这条路可行,官方目前仍然提供 Vercel、Neon 和 Supabase 的独立指南。关键不是“把代码扔上 Vercel”,而是把数据库连接分对:运行时走连接池,迁移走直连。

先选数据库:

免费数据库当前免费额度使用时要注意
Neon1 GB 存储、100 CU-hours/项目、5 GB 公网传输、计算空闲 5 分钟自动挂起低流量站更省心,休眠后按请求恢复
Supabase500 MB 数据库、5 GB egress、最多 2 个活跃项目免费项目连续 7 天无活动会暂停

如果你没有既有偏好,优先选 Neon。它更适合低流量、偶发访问的 analytics 服务;如果你已经在用 Supabase,继续用也可以,但要使用池化连接和直连两套地址。

部署步骤

  1. 在 GitHub 上 fork Umami 仓库。
  2. 在 Neon 或 Supabase 创建项目,区域尽量靠近 Vercel 部署区域。
  3. 在数据库后台分别复制 pooled connection string 和 direct connection string。
  4. 在 Vercel 导入 fork,框架通常会自动识别 Next.js。如果没有识别,Build Command 填 pnpm build,Output Directory 填 .next。
  5. 在 Vercel 项目的 Environment Variables 里添加下面三项。
  6. 执行部署,等待构建和数据库迁移完成。
  7. 打开部署域名,使用初始账号 admin、密码 umami 登录,并立刻修改密码。
  8. 添加网站、复制 tracking code,放回你自己的站点验证数据。

环境变量示例。下面以 Supabase 的池化/直连形式为例:

DATABASE_URL=postgresql://USER:PASSWORD@HOST:6543/DB?pgbouncer=true&connection_limit=1
DIRECT_DATABASE_URL=postgresql://USER:PASSWORD@HOST:5432/DB
APP_SECRET=用-openssl-rand-hex-32-生成

不同数据库的连接串不一样,不要机械照抄端口和参数:

APP_SECRET 用下面命令生成一次,不要提交到 Git:

openssl rand -hex 32

部署成功后,自建站点的追踪脚本改成你自己的域名:

<script
  defer
  src="https://YOUR-UMAMI-DOMAIN/script.js"
  data-website-id="YOUR_WEBSITE_ID"
></script>

如果页面能打开但数据不来,按下面顺序排:

现象先检查
登录页正常,网站访问不上报脚本域名、data-website-id、Network 里的 /api/send 请求
构建时报数据库连接错误是否同时配置了池化 DATABASE_URL 和直连 DIRECT_DATABASE_URL
Vercel 日志出现连接数耗尽是否真的使用 pooled URL,是否误用了直连串作为运行时连接
部署后数据库没有表确认当前版本不低于 v3.2.0,并检查构建日志里的 migration 是否成功
本地能跑、Vercel 不能跑检查环境变量是否只加到了 Preview 或 Local,而没有加到 Production

1.3 自建不是“零维护”

Umami 帮你省掉的是 Plausible 的 ClickHouse 负担,不是所有运维工作。自建后你仍然需要:

  1. 关注 Umami 更新和数据库迁移。
  2. 定期确认免费数据库额度、休眠和恢复策略。
  3. 备份重要事件数据,至少保留导出记录。
  4. 给默认账号改密码,不要长期使用 admin/umami。
  5. 定期检查脚本是否被主题或模板升级覆盖。

这也是为什么我把 Umami Cloud 放在自建前面。对只有一个网站的人,省下的时间通常比每月 $9 更值钱;自建更适合需要多站、数据控制或想学习完整部署链路的人。

最后一个选择建议

先做第 2 套,不要先折腾第 1 套。 GSC、Cloudflare Web Analytics、Clarity 都不需要服务器,一天内就能上线,而且能立刻建立 SEO 的搜索、性能和用户行为基线。

然后按这个顺序加 Umami:

  1. 只有一个网站,先上 Umami Cloud 免费档。
  2. 需要自己的域名、数据控制或多个网站,再走 Vercel + Neon/Supabase。
  3. 只为了省 $9 而从头维护数据库,通常不划算。

还有一个必须明确的边界:Vercel Hobby 免费计划目前只允许非商业的个人使用。商业网站不能把“Vercel 免费档 + 免费数据库”当作合规的 0 成本方案。商业站可以先用 Umami Cloud 的免费档,或把托管费用正式纳入预算。

总之:

官方资料

以下信息核对时间为 2026 年 10 月 25 日。免费额度和套餐限制可能变化,正式上线前请重新确认官方页面。