






















在折腾完博客的 UI 和排版后,是时候关注一下「里子」了。
对于个人博客来说,Google Analytics ( GA4 ) 显得过于庞大且复杂。我们更关心的是:用户到底看了什么?他们在哪里停留?为什么他们离开了?
这时,Microsoft Clarity 是一个绝佳的选择。它完全免费、不限流量,且提供两个杀手级功能:热力图 ( Heatmaps ) 和 会话录屏 ( Session Recordings )。
本文记录了如何在 Hugo PaperMod 主题中,以最符合工程规范的方式接入 Clarity。
j8x7s2k... ) 。注意:官方会提供一段包含
<script>的完整代码,不要复制整段。作为追求代码整洁的工科男,我们要用 Hugo 的方式来封装它。
PaperMod 预留了 extend_head.html 接口,这是引入第三方脚本的最佳位置。
我采用了 「配置与逻辑分离」 的方案:在 HTML 中写通用模板,在 hugo.toml 中填具体 ID。这样以后换 ID 或关闭统计,只需改配置,不用动代码。
在博客根目录下创建文件:layouts/partials/extend_head.html。
写入以下代码:
{{- if .Site.Params.clarity_id }}
<!-- Microsoft Clarity Code -->
<script type="text/javascript">
( function ( c,l,a,r,i,t,y ) {
c [a]=c [a]||function ( ) {( c [a].q=c [a].q||[] ) .push ( arguments )};
t=l.createElement ( r ) ;t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName ( r ) [0];y.parentNode.insertBefore ( t,y ) ;
}) ( window, document, "clarity", "script", "{{ .Site.Params.clarity_id }}" ) ;
</script>
{{- end }}
代码解析:
{{- if .Site.Params.clarity_id }}:这是一个开关。只有当你在配置文件里填了 ID,这段 JS 才会加载。没填就是纯净版,方便本地调试。t.async=1:确保脚本是异步加载的,不会阻塞页面渲染。打开博客根目录下的 hugo.toml( 或 config.yml ) ,找到 [params] 区域,添加你的 ID:
[params]
# ... 其他配置 ...
# Microsoft Clarity
clarity_id = "你的_Clarity_Project_ID"
提交代码并部署到 Cloudflare Pages 后,打开博客,按下 F12 进入开发者工具:
clarity,应该能看到相关的数据包请求 ( status 200 ) 。async 异步加载和 Cloudflare 的全站加速,Clarity 对 **LCP ( 最大内容渲染时间 ) ** 的影响几乎可以忽略不计。博客依然是秒开。相比于直接把 <script> 标签硬编码到网页里,这种参数化的配置方式显然更加优雅和健壮。
大概等待 30 分钟到 2 小时,Clarity 后台就会出现数据。接下来,就是享受「上帝视角」,观察访客如何在你的数字领地上行走的乐趣了。
如果不喜欢逻辑和配置分离,直接简单粗暴,直接把 <script> 标签塞进 layouts/partials/extend_head.html 里。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。