Ask HN: What do you use for analytics for a statically generated website?
I recently deployed a Hugo blog that I'm locally hosting. I would like to know roughly how much traffic it's getting (almost nothing except friends right now, but I still would like some data).
Obviously I could use Google Analytics or something, but I would rather not introduce any kind of Google tracking to my site. Honestly I think I'd be happy enough with one of those "counter" things from the 90's.
Does anyone here have anything? It's been forever since I've done anything like this, I'm sure the state of the art has advanced.
GoAccess looks interesting; to be sincere, I haven't used it myself, but the demo website looks extremely fascinating to me! https://goaccess.io/
We use it on our site, which handles around 100M requests per month, works really nice. In fact, we have a screen in the office that continuously displays the stats, quite nifty!
I use goaccess for analytics on my site. It was pretty simple to set up with nginx access logs.
Check out GoatCounter: https://www.goatcounter.com/.
I've used it for six years and am quite happy with it.
I highly recommend Goatcounter! It’s a reliable tool with a great free version. You can even self-host it.
I also use GoatCounter for my Hugo page
Probably not exactly what you're looking for (if you only want basic stats), but I made a self-hosted platform: https://uxwizz.com
It's built on the LAMP stack, so you'll also have access to the data from all your websites in a MySQL database.
You can enable/disable specific static features. Fun fact: if you want session recordings, it comes with a unique "lightweight" session recording mode that is specifically built for statically generated websites. That version only stores minimal data, without storing the content on the webpage.
I think the coolest feature is the multi-domain tracking, so you can see stats for all your websites on one page, and even apply filters to it (e.g. see for all websites traffic from Google vs HN).
Since you are hosting your blog on your personal server, I would just go with Mixpanel or postHog. They are quite easy to integrate and they enable you to track some more specific events that might be relevant for you.
If you ever decide to host your blog on a cloud provider, Cloudflare provides nice and simple analytics.
Check out tirreno: https://play.tirreno.com (admin/tirreno)
It's self-hosted, PHP/Postgresql, server-side. Plus, you can get a free tier with 1,000 API requests/month if you want to enrich data about your IP visitors. As a co-founder, I believe it's one of the most advanced solutions available. (-;
If not joking, I use tirreno for some personal websites with partly masked IP as it shows very interesting insights about bots and their behavior.
Under 90s thing you probably mean is awstats (https://github.com/eldy/awstats). CERN and many other organizations continue to use it even now.
[flagged]
Cloudflare Analytics: https://www.cloudflare.com/en-gb/web-analytics/
Oh! I didn't know Cloudflare had a free analytics service.
That's probably the easiest thing while not adding Google to my stack.
Your web host should provide some options such as AWstats based on the server logs. Your host may or may not make it easy to install something else.
My web host is a small server in my basement with dynamic DNS.
ODS is worth looking into
https://onedollarstats.com
I self host plausible. Also interested to check GoAccess once I move away from Netlify to my own VPS
Wide Angle Analytics (our product) is great for static websites. Small script, fast, no cookie banner required, privacy first.
Which Fits You? For simplicity: Use server logs + GoAccess (no code changes). For insights: Self-host Matomo (privacy-first). For a retro feel: Client-side counter (least reliable but fun).
Plausible. I make sure to proxy it so extensions don't block it.
Good enough for me.
For analytics on a statically generated site like Hugo without Google Analytics, consider these privacy-focused tools:
Matomo (Piwik)
Self-hosted, open-source web analytics. Track pageviews, referrers, and user behavior while keeping data on your server. Offers granular controls and GDPR compliance. Open Web Analytics (OWA)
Lightweight, JavaScript-based tool with a minimalist UI. Focuses on core metrics (visits, bounce rates) and avoids intrusive tracking. Countly
Agentless analytics with real-time dashboards. Works via JavaScript or server logs. Supports GDPR and cross-platform tracking (web, mobile). Fathom
Commercial, privacy-first service. No cookies, no cross-site tracking. Visualizes traffic trends and user behavior with clean, GDPR-compliant reporting. Ghost Analytics
Built for JAMstack sites. Integrates with Hugo via JavaScript snippet. Emphasizes speed, privacy, and actionable insights (e.g., traffic sources). Server-side alternatives:
Parse server logs with tools like Webalizer or AWStats for basic metrics (hits, IPs) without client-side code. Pro tips:
Use a lightweight counter like Butterfly.js if you just want visitor counts. Avoid services that require JavaScript or third-party cookies. Choose based on your technical comfort (self-hosting vs. SaaS), privacy priorities, and desired granularity. For a site with minimal traffic, even a simple log parser could suffice!
I've tried goaccess and goatcounter, finally settling for umami.
I analyse the server logs with awk + friends, filtering out obvious bots.
Do you have any scripts you'd be willing to share for that?
There's really nothing very exciting except I don't want to sure the bits used to keep out bots to avoid them being gamed too easily!
The main script is ~10 key lines. If you send me contact details (eg via stuff in my bio) I could send it over to give you some ideas.
Goatcounter
Did you deploy of vercel? they provide analytics as well
It's just a static blog being served via Nginx on my home server.
.