Umami if you want the lightest thing that answers "how many people read this page"; Plausible if you want the most polished dashboard and don't mind running ClickHouse; Matomo only if you genuinely need GA-grade reporting depth. All three are cookieless in their default or recommended configuration, which is why the consent banner — and the 10–30% of traffic it was silently costing you in declined tracking — goes away. For a content site or SaaS marketing site, Umami is the default pick.
The comparison that matters
| Umami | Plausible CE | Matomo | |
|---|---|---|---|
| Stack | Node + Postgres | Elixir + Postgres + ClickHouse | PHP + MariaDB |
| Idle RAM (est., whole stack) | ~300MB | ~1.5–2GB | ~600MB |
| Tracker script | ~2KB | <1KB | ~23KB default |
| Cookieless | Yes, default | Yes, default | Yes, with config |
| Custom events | Yes | Yes, plus goals | Yes, plus everything |
| Learning curve | Minutes | Minutes | It's GA, including that part |
For scale: GA4's gtag.js weighs in around 90KB+ before it starts making its own requests. Replacing it with a 2KB script is a measurable Core Web Vitals improvement on its own, entirely aside from the privacy argument.
ClickHouse is the line item to respect in Plausible's column. It's a superb analytical database and the reason Plausible stays fast at tens of millions of events, but it's a second stateful service with its own memory appetite and backup story. On a 4GB VPS running other things, that matters; on a box with headroom, it doesn't.
What "cookieless" actually buys you
These tools count visitors with a daily-rotating hash of IP and user agent instead of a persistent identifier, store no personal data client-side, and (Plausible and Umami explicitly, Matomo when configured this way) position themselves as not requiring consent under GDPR/ePrivacy — each publishes its legal reasoning in its docs, and Plausible's data policy is the clearest statement of the approach. The honest caveats: regulator guidance varies by country and this isn't legal advice; and daily hash rotation means "unique visitors" over a month genuinely isn't the same number GA4 would show. You're trading longitudinal user tracking for not needing to ask permission. For a content site, that's the right trade — you were never going to act on 90-day user journeys anyway.
Migration from GA4: mostly, don't bother
Matomo ships an official Google Analytics importer and is the only realistic option if continuous historical reporting is a hard requirement — that requirement is exactly what Matomo is for. Plausible can import GA4 data via the Google Analytics import in its settings; it maps onto Plausible's simpler model, so treat it as continuity of trend lines, not a faithful replica. Umami has no importer, and for most sites I'd argue that's fine: archive a GA4 export for reference, run the new tool from a clean start, and accept a trend-line break dated the day you switched. Historical web analytics age into irrelevance faster than almost any data a site owns.
What you actually lose leaving GA4: Google Ads integration, audience building, and BigQuery export. If none of those made you money, you lose nothing but the quarterly ritual of relearning the GA4 interface.
Event modelling without the enterprise baggage
All three handle the events a content or product site really needs. Umami: add data-umami-event="signup-click" to an element, done. Plausible: custom events with props, plus pre-built goals for outbound links and file downloads. Matomo: the full taxonomy of events, ecommerce, funnels, and (as paid plugins) heatmaps and session recordings — capable, at the cost of GA-shaped complexity, which is presumably what you were leaving. My rule: if you can't name the decision an event will inform, don't track it. Storage, for what it's worth, is a non-issue at content-site scale — a 100k-pageview/month site accretes a few hundred MB of events a year in any of the three, so retention settings exist but rarely matter.
One operational note for all three: serve the tracker through your own domain (each documents a proxy setup) or a chunk of your numbers vanish into ad-blocker lists, which block the default script paths of every well-known analytics tool, self-hosted or not. Expect self-hosted numbers to run higher than GA4 showed for the same site partly for this reason — GA is the single most-blocked script on the web.
Pairing with Search Console
None of these replace Google Search Console, which remains the only source for query-level search data; the workflow that works is GSC for what happens before the click and your analytics for what happens after. Measuring SEO with self-hosted analytics covers that pairing in detail.
What I'd do
Personal site, blog, or directory: Umami — one Node container, one Postgres you probably already run, 2KB script, five-minute setup, and it answers every question you'll genuinely ask. Client-facing or stakeholder-facing site where the dashboard itself gets shared: Plausible, whose reporting UI is the best of the three and worth the ClickHouse tax on a machine with 4GB to spare. Organisation with a compliance department and a decade of GA habits: Matomo with the importer, which is the only one that will feel like a lateral move instead of a diet. In all three cases, put the switch date in your calendar notes — the trend-line break will confuse you in eighteen months otherwise. Mine did.