I finally did the thing I've been threatening to do since the Universal Analytics shutdown back in 2023: I ripped Google Analytics out of this blog entirely. Not switched-to-GA4-and-complained-about-it, which is what I actually did three years ago because I was lazy and had a backlog of client work eating every spare hour. Actually gone. The script tag is deleted, the property is gone, and as of about 9pm last night techpad sends zero data to Google.
It took me maybe twenty minutes of actual work and roughly four years of putting it off.
The replacement is GoatCounter, which I'd heard about from a comment on here (thank you, whoever left that in 2024, I finally read it) and which does exactly what I want and nothing else. Pageviews, referrers, a rough sense of what people are reading. No session recording, no demographic guessing, no cross-site fingerprinting, no cookie banner because there's nothing to consent to. The whole dashboard for this blog, fourteen-plus years of it if I wanted to import the history, loads faster than a single GA4 report used to.
Here's my actual complaint, the one that's been sitting in my drafts folder half-written since GA4 launched: modern Google Analytics is built for a marketing team, not for a person with a blog. Every report wants to talk to me about conversion events and audience segments and "engaged sessions," a metric I still don't fully understand and now never have to again. I don't have a funnel. I have a blog where sometimes 40 people read a post and sometimes, if I get lucky on Hacker News, 4,000 do, and either way I want to know roughly which posts and roughly where from. That's it. GA4 made a nine-year-old blogger's need into an enterprise dashboarding problem, and I resented it every single time I opened it, which is probably why I stopped opening it, which defeats the entire point of having analytics.
The other thing I noticed, and this is the part that actually annoyed me enough to spend the twenty minutes: my Lighthouse score went up. Not dramatically, but enough to see it, just from removing one script. That script has been sitting on every page of this blog since November 2011, back when I set it up on a Sunday afternoon in my old apartment because some tutorial told me every website needed analytics. Fifteen years of a barely-used dashboard costing every single reader a few hundred milliseconds and a chunk of privacy they never agreed to, on a blog that gets, generously, a few hundred visits on a good day. That math never worked. It just took me a decade and a half to do it.
I'm not going to pretend this is some huge privacy stand. I still use Gmail. I still have a phone that knows more about me than my own mother does. This is a small, dumb, overdue fix to one script on one small website, and it feels disproportionately good, the way cleaning out a junk drawer feels disproportionately good. There's a lesson in there somewhere about how the tiny annoying maintenance tasks are never actually as bad as the anticipation of them, but I've written that post before, probably more than once, so I won't belabor it here.
If you run a small site and you're still carrying Google Analytics around out of habit, genuinely, go look at what GoatCounter or Fathom or Plausible would cost you (GoatCounter is free for personal, noncommercial sites, which is the only reason I picked it over Plausible — the couple bucks a month wasn't the issue, I just didn't feel like adding a card to another dashboard I'd forget about). It's a smaller job than you think, and there's a decent chance nobody but you will notice, which is sort of the point.
Next up on the overdue-maintenance list: the comment system, which is still running on infrastructure I set up in 2016 and have been mildly afraid of touching ever since. That one I'm not promising a timeline on.