All Websites Must Have Pretty Graphs
Almost every guide for self hosting a Ghost blog that I found had a section on setting up analytics and most of them (including the one I followed) recommended Google Analytics. I mean it's free and pretty easy to set up so why not?
As many others have pointed out it's not really free since you're pretty much handing over data about your site's visitors to Google. Like many others I set up GA on one of my old sites years ago and just kind of forgot about it. When revisiting it for this blog I found that, outside of the privacy concerns, the interface for Google Analytics is so busy you'll probably spend more time figuring out how to view the data than actually viewing the data.
With all that in mind I set out to find a better analytics platform. Coming from a Sysadmin background I like having a dashboard of stats to look at even if I only look at it once in a while. However I don't need every single bit of information on visitors to my website and I don't need it to look like the science station on the Enterprise. A few pretty graphs would be nice though.
The Challengers Appear
The first one I looked at was Matomo because it seemed to have Google Analytics level of detail but boasted much better privacy and also allowed you to self host which was a big plus to me. I decided to try the self hosted route and was happy to see that it had nginx support since that's what Ghost uses.
I ended up spending multiple hours trying to get it to live alongside my Ghost install to no avail. I'm not entirely sure what the exact issue was but for some reason even when I figured out my certificate issues I couldn't get the Matomo splash page to show up on the subdomain. I realized I'd probably need to spin up a seperate VPS host to run Matomo on and at that point the cost of self hosting was going to start reaching the cost of buying the hosted version which came in at $19 USD/month.
Next I looked at GoatCounter which is a privacy forward, open source and about a million times less complex than Google Analytics and Matomo. Much like Matomo it also offered a self hosting option but after my experience with Matomo I decided I wanted to stick with hosted analytics platforms. GoatCounter, while not the prettiest option out there, looks like it could fit my needs so I signed up for the free tier. I set the stats page to be public too!
The final option I looked into was Plausible which checks off many of the same boxes as the other two: open source, privacy forward, ability to self host (if I wanted to) and simplicity. However unlike GoatCounter it doesn't offer a free tier but it has a 30 day trial and the starting price of $6 USD/month is extremely reasonable. Since it offered a 30 day trial I decided to sign up and see what it's like. Plus if I'm being honest it did look pretty graph wise. I set that stats page to be public as well
However I don't like that I have to go through a series of hoops with uBlock to stop my own visits from getting logged in Plausible. There appear to be GDPR related reasons for this but it would be nice to have.
Conclusions
As of right now I'm running both GoatCounter and Plausible side by side which shoudln't really increase load that much as they're both extremely lightweight (GoatCounter is around ~2.5kb and Plausible claims to be less than 1kb).
The price point is about the same since I'd sign up for the Starter tier of GoatCounter if I went with it. It's really going to come down to which one tracks better and which UX I like more.
So check back in a month for the winner!
Update
After a little under a month of using GoatCounter and Plausible I have to say the winner is GoatCounter. Sure Plausible has a slightly prettier interface but GoatCounter wins out in two important regards: ability to exclude IP addresses and per page graphs.
Plausible offers only one graph: vistor metrics for your entire site. GoatCounter breaks it down per page. They're not as pretty but I don't really care because I want to see how each page is performing.
Finally GoatCounter let's me exclude IP addresses from analytics collection. This way I can easily exlcude my own home IP and also offer the ability to disable analytics if requested. In order to do this for Plausible I need to do some custom configuration in uBlock.