I’ve been building websites for decades already, about 30 years. And for decades, the Google Analytics (GA) was the absolute no-brainer for visitor stats. The go-to option the agencies used and which was really the only reasonable FREE option. But let’s be honest: Today, GA is a privacy liability, a technical mess, and – if you care about GDPR or your customers’ trust – a potential business risk.
So, what’s out there for price savvy devs who simply want user statistics without the bloated UI or degraded UX? Let’s find out together!
I switched to Matomo for all our company and product websites. And after just a week of daily use, I’m convinced: Matomo isn’t just an alternative – it’s truly a serious option if you want accurate data, full ownership, and peace of mind in the EU. So much of so, that I decided to write this article, based on my own (very limited) experience with Matomo.
The Google Analytics Problem
Google Analytics 4 was supposed to be a leap forward. Instead, it’s a usability nightmare:
Delayed stats (sometimes 12 hours just to see the real numbers).
Random data gaps and weirdly shifting metrics.
A UI so bloated you need a manual just to check bounce rates.
And the elephant in the room: Google’s business is data, not privacy. They don’t give the elephant’s bottom about your privacy.
Every month, the regulatory screws tighten. If your site has EU traffic and you’re still running GA scripts, you’re at risk, full stop. Privacy-conscious clients do care, and so do regulators.

What Makes Matomo Different?
Matomo is the leading open-source alternative for GDPR-compliant web analytics. Here’s what sets it apart:
You own your data: Nothing leaves your server, unless you choose.
Full transparency: See exactly what’s tracked, stored, and processed.
No “data transfer” headaches: Host in the EEA, and you’re done.
Real-time stats and a familiar, customisable interface.
Self-hosted, open source. You own your data, period.
No third-party trackers, no data sharing, no cross-border transfers.
Real-time, accurate stats. You see the truth as it happens.
Fully GDPR-compliant, right out of the box.
You don’t need a lawyer to explain the privacy policy. You don’t need to hack together half a dozen plugins just to anonymise visitor IPs. With Matomo, you’re in control.
Sounds Great, But How To Actually Do It?
Let’s explore how we can set this beast up on a simple web server by ourselves.
This following example assumes you have a basic windows hosting server and MySQL database, pretty much the default for any websites nowadays (of course, there are preferences and nuances, but this is what we go with here – if you’re on *nix, you most likely know how to set these up by yourself, too).
Matomo also has a pretty decent WordPress plugin, but you need to check where the cloud is by yourself.
How to Set Up Matomo: Self-Hosting on a Windows Server (With Subdomain)
Let’s walk through a practical setup. Suppose you want your analytics at stats.yourdomain.com
.
1. Prep Your Windows Server
Ensure you have IIS (Internet Information Services) enabled.
Install PHP (Matomo requires PHP 7.2+; PHP 8.x recommended).
Install MySQL (or MariaDB) for the Matomo database. Create a new schema and a user for that particular schema. Best practice is to allow access to only that one schema per user (create separate users for each schema) and definitely do not use a root account on any websites.
2. Download and Extract Matomo
Go to matomo.org/download.
Download the On-Premise ZIP file, extract it to
C:\inetpub\wwwroot\stats.yourdomain.com
(or another folder you prefer).
3. Set Up the Subdomain
In your domain’s DNS, add an
A
orCNAME
record forstats.yourdomain.com
pointing to your server’s IP.In IIS, add a new website:
Site name:
stats.yourdomain.com
Physical path:
C:\inetpub\wwwroot\stats.yourdomain.com
Host name:
stats.yourdomain.com
Bind it to port 80 (and port 443 if you’re using SSL/TLS – recommended). You can get a free encryption certificate from Let’s Encrypt. Certify The Web is a decent cert management tool for your windows server.
4. Run the Matomo Installer
Open
http://stats.yourdomain.com
in your browser. It’s really straight forward and well-explained from here on.Follow the guided installer:
Check prerequisites.
Enter your MySQL database details.
Create your Matomo admin account.
Set up your first site (your main website).
5. Add the Tracking Code
Matomo will give you a JS tracking code.
Paste this into the
<head>
of your website(s) – or use a tag manager.You can also track multiple sites from the same Matomo instance.
6. (Optional but Recommended) Enable HTTPS
Use a free Let’s Encrypt certificate or your preferred SSL provider. Then on the IIS, use HSTS and redirect from http to https, and/or;
In IIS, add an HTTPS binding for
stats.yourdomain.com
.
7. (Strongly Recommended) Set Up Local Geolocation
Download the free GeoLite2 City database from MaxMind.
Place the
.mmdb
file in a instructed folder on your server (Matomo dash tells you where).In Matomo admin > System > Geolocation, set the provider to “GeoIP2 (PHP)” and point to the
.mmdb
file, or just refresh if you installed it where matomo told.
Result: All geolocation is local – no user IPs are ever sent overseas. Full GDPR compliance.
Final Thought
Google Analytics is “free” only if you ignore the compliance, privacy and control costs. Not to mention the ever-degrading User Experience. With Matomo, you own your analytics, protect your users and get better data – without wondering if you’ll be caught in the next regulatory storm.
Ready to switch?
Take an hour, spin up a subdomain and see the difference for yourself.
If you want more help or need a step-by-step video for the setup, reach out – happy to share what works.
Victor A. Lausas
Chief Executive Officer
Subscribe to North Atlantic’s email newsletter and get your free copy of my eBook,
Artificial Intelligence Made Unlocked. 👉 https://www.northatlantic.fi/contact/
Discover Europe’s best free AI education platform, NORAI Connect, start learning AI or level up your skills with free AI courses and future-proof your AI knowledge. 👉 https://www.norai.fi/

