Plausible vs Umami vs Matomo: Self-Hosted Analytics on a VPS in 2026

Plausible vs Umami vs Matomo: Self-Hosted Analytics on a VPS in 2026

By Fanny Engriana · · 10 min read · 3 views

Self-hosted analytics finally hit a tipping point in 2026. Between Google Analytics 4 fatigue, the post-April Core Update push toward verifiable first-party data, and the steady drumbeat of cookie-banner regulation in the EU, UK, and Indonesia, more operators I talk to are quietly moving their tracking off Google and onto a small box they actually control.

I run seven aggregator sites on Hostinger shared hosting plus a handful of small VPS instances for the heavier workloads. Last month I migrated three of them from GA4 to a self-hosted stack, partly to test what each option really costs in production and partly because I was tired of explaining "data thresholding" to clients. This article is the writeup.

The three options worth your time in 2026 are Plausible Community Edition, Umami, and Matomo On-Premise. There are smaller players (Fathom is paid-only now, OpenPanel is interesting but young, GoatCounter is barebones), but those three cover the realistic range from "1 GB Hetzner CX11" all the way to "I want WooCommerce funnel attribution and a 90-day data retention policy."

The 30-Second Picker

If you only read this far, here is the decision matrix:

  • Pick Umami if you have one to fifteen sites, want a single-container deploy, and you measure your VPS spend in single-digit dollars per month.
  • Pick Plausible CE if you want a polished public dashboard, goal/funnel reporting, and you can spare 2–4 GB of RAM.
  • Pick Matomo if you need feature parity with GA Universal (heatmaps, A/B tests, ecommerce attribution, custom reports, log import), if you have to satisfy a procurement checklist, or if you are GDPR-audited.

Now the long version, with the numbers I actually measured.

Why Self-Hosted Analytics Is Different in 2026

Two things changed in the last twelve months that matter for picking an analytics stack:

First, the EU Data Protection Board reaffirmed in late 2025 that Google Analytics 4 still requires either a properly configured Google Tag Manager server-side container or a documented Data Privacy Framework basis. Most small operators do neither. Self-hosting collapses the legal review to "the data lives on a VPS in Frankfurt that we operate," which is a much shorter conversation.

Second, ARM-based VPS pricing collapsed. Hetzner CAX11 (2 vCPU Ampere, 4 GB RAM, 40 GB NVMe) is €3.79/month as I write this, and Oracle's Always Free tier still gives you 4 OCPU Ampere and 24 GB RAM for nothing. Suddenly the "but a VPS costs more than my Plausible Cloud subscription" math stops working past two or three sites.

Across the 7 sites I operate (CloudHostReview is one of them), my GA4 setup was costing me roughly 35–40 minutes a week in babysitting: looking up sampling thresholds, re-linking properties, dealing with the new "exploration" UI, fielding questions about why the dashboard showed 412 visitors when GSC showed 1,800 clicks. Self-hosted analytics removes the sampling problem entirely and gives me numbers I can actually defend in a client meeting.

What I Tested and How

For this comparison I ran all three on the same Hetzner CAX21 instance (4 vCPU Ampere, 8 GB RAM, 80 GB NVMe, Helsinki region) for two weeks, pointing identical traffic from one of my mid-traffic aggregator sites at each one in turn. Roughly 8,000 pageviews per day, with bot traffic filtered at the Cloudflare edge. Versions tested:

  • Plausible Community Edition v3.0.1 (Docker compose, official repo)
  • Umami v2.18 (single Docker container, PostgreSQL 16)
  • Matomo 5.3.2 (Bitnami Docker stack, PHP 8.3, MariaDB 11)

Numbers below are steady-state after a week of warm-up, taken with docker stats and Beszel pulled into one of my own monitoring dashboards.

Plausible Community Edition: Polished, Opinionated, Hungry

Plausible Community Edition is the open-source build of Plausible.io. Since v2 it has been licensed under AGPLv3 and shipped as a Docker compose stack: an Elixir/Phoenix app, a PostgreSQL instance for metadata, and a ClickHouse instance for the analytics data itself.

The dashboard is the prettiest of the three by a wide margin. Single page, sensible defaults, "click anywhere to filter" behavior, automatic UTM parsing, bounce rate that means what you think it means. If you have ever tried to explain GA4's event-based model to a non-technical client, you will appreciate how much friction Plausible removes.

What I measured:

  • Idle RAM: 1.4 GB (ClickHouse alone takes ~900 MB).
  • RAM under load (8k pv/day): 1.8 GB peak.
  • Disk after 14 days: 480 MB (most of it ClickHouse).
  • P95 dashboard load: 380 ms.
  • Tracking script size: 1.0 KB gzipped.

Where it shines: the public dashboard feature. You can flip a single toggle and let clients or the public see live numbers at a vanity URL. I use this for two of my aggregator sites where I want advertisers and partners to see real traffic without me sending them screenshots. None of the other tools here do this as cleanly.

Where it bites: ClickHouse is a memory hog for the size of the workload. On a 1 GB VPS you will get OOM-killed within a day. The official guidance is 2 GB minimum, but in practice I would not run it on anything under 3 GB. Goal conversion reporting is solid, but funnels and revenue attribution are paywalled to Plausible Cloud, even on the self-hosted build — this caught me by surprise on the first install.

If you only have one or two sites and you want a dashboard you can show a client without apology, Plausible CE is the right pick. If you have ten sites, the ClickHouse footprint multiplied per instance adds up fast unless you front them with a single multi-tenant install.

Umami: The Boringly Reliable One

Umami is the option I ended up keeping for five of my seven sites. It is MIT-licensed, written in Next.js, runs as a single application container against PostgreSQL (MySQL support was dropped in v2 last year), and the entire deploy is one docker run away.

What I measured:

  • Idle RAM: 220 MB total (app + Postgres).
  • RAM under load (8k pv/day): 340 MB peak.
  • Disk after 14 days: 95 MB.
  • P95 dashboard load: 290 ms.
  • Tracking script size: 2.1 KB gzipped.

Read those numbers again. Umami running real traffic uses less RAM than a single instance of WordPress doing nothing. That is the entire reason I picked it.

Where it shines: multi-site support is first-class. One Umami install handles all seven of my sites with separate dashboards, separate tracking IDs, and shared user accounts for any team members I invite. Adding an eighth site takes about ninety seconds. The v2 UI got a serious refresh and now includes funnels, retention reports, and a session replay–style "user journey" view that did not exist eighteen months ago.

Where it bites: documentation is thinner than Matomo's, and there is no GUI for things like data retention policies — you set those by environment variable and restart the container. There is also no built-in cohort analysis or A/B testing. If your boss asks for "the same reports we had in Adobe," Umami will frustrate you.

I would recommend Umami over Plausible CE for any operator running more than three sites or working with under 4 GB of RAM. The lighter footprint compounds: I am running Umami plus Beszel plus a small Caddy reverse proxy on a single CAX11 (4 GB) and there is still 2 GB free.

Matomo: The Enterprise Workhorse

Matomo (formerly Piwik) is the elder statesman here, around since 2007. It is the analytics tool you pick when someone in legal or marketing has a checklist that includes terms like "ecommerce funnel attribution," "form analytics," "session recordings," or "Google Ads cost importer." Plausible and Umami simply do not compete in those categories.

Matomo is a PHP application requiring PHP 8.1+ and MySQL 8 or MariaDB 10.4+. The Bitnami stack ships six containers (app, MariaDB, two cache containers, a worker, and a reverse proxy) but you can run a much leaner two-container setup if you skip premium plugins.

What I measured (lean two-container setup):

  • Idle RAM: 680 MB total.
  • RAM under load (8k pv/day): 1.2 GB peak.
  • Disk after 14 days: 1.4 GB (Matomo eagerly pre-aggregates reports).
  • P95 dashboard load: 920 ms.
  • Tracking script size: 22 KB gzipped (full matomo.js).

Where it shines: raw feature surface. Heatmaps, session recordings, A/B testing, custom segments, ecommerce reports, log file import for server-side tracking, white-label branding, role-based access control with audit logs, GDPR-compliant data deletion endpoints. If you are accountable to an auditor, Matomo's "GDPR Manager" module alone is worth the install.

Where it bites: the dashboard load time is the slowest of the three by a factor of three, and the UI carries fifteen years of accumulated design decisions. The tracking script is twenty times larger than Plausible's. Many of the headline features (heatmaps, session recordings, the better marketing reports) are paid plugins from the Matomo Marketplace, ranging from $29/year for small plugins to several hundred dollars for the analytics suite. The "free" version is real and useful, but expect to spend money if you want feature parity with the Matomo Cloud demo.

Matomo also expects more operational care: cron jobs for archiving, regular database optimization, PHP-FPM tuning if your traffic crosses a few hundred thousand pageviews per month. It is closer to running a small WordPress install than running a single Go binary.

Side-by-Side: What Actually Matters

Here is the comparison I wish I had before I started:

DimensionPlausible CEUmamiMatomo
Minimum RAM (real)3 GB1 GB2 GB
Containers322–6
DatabasePostgreSQL + ClickHousePostgreSQLMariaDB / MySQL
Tracking script (gzipped)1.0 KB2.1 KB22 KB
Multi-site dashboardYesYes (best)Yes
Goals / conversionsYesYes (v2.10+)Yes
FunnelsCloud onlyYesYes
Heatmaps / recordingsNoNoPaid plugin
Ecommerce attributionLimitedLimitedYes
Public dashboardYesYesYes
LicenseAGPL v3MITGPL v3
Setup time (Docker)20 min5 min30 min

The Hosting Bill: What Each One Really Costs

Self-hosted does not mean free. Here is what each option costs me per month on Hetzner Cloud, sized for a realistic 50,000 pv/month workload across all my sites:

  • Umami: CAX11 ARM €3.79/mo. Handles all seven of my sites, with headroom.
  • Plausible CE: CAX21 ARM €6.49/mo. Realistic minimum for one to three sites with the ClickHouse footprint.
  • Matomo: CAX21 ARM €6.49/mo for one site, CAX31 (8 GB) at €12.49/mo if you turn on more than two paid plugins.

Compare that to Plausible Cloud at $19/month for the cheapest tier (10k pageviews) and Matomo Cloud starting at $29/month, and the math is straightforward for anyone running more than the smallest plan.

What I Did Not Pick and Why

I tested two more options and dropped them quickly:

GoatCounter is fine for a personal blog. The dashboard is functional but the project has a single maintainer and the feature pace is glacial. Past 5,000 pv/day on a single site I started seeing slow dashboards.

OpenPanel Analytics is the most interesting newcomer. It markets itself as a Mixpanel alternative and the data model is more flexible than the others here. But the self-hosted build is still labeled beta as of v0.x, the upgrade path is undocumented, and I would not stake a client engagement on it yet. Worth revisiting in late 2026.

I also looked briefly at Posthog, but it is closer to a product analytics platform than a website analytics tool, and the resource footprint (8 GB RAM minimum, ten containers) puts it in a different category.

The Production Gotchas Nobody Mentions

A few things I learned the hard way that you will not see in the marketing pages:

Cloudflare Bot Fight Mode breaks tracking on all three of these tools if you enable it aggressively. The "Super Bot Fight Mode" challenges trigger on the analytics POST request because it looks like an XHR with no referrer to Cloudflare's heuristics. Solution: add a page rule that bypasses bot fight mode for your /api or analytics endpoint.

Ad blockers eat all three. About 30% of my desktop traffic blocks the default tracking endpoint. The fix is to proxy the analytics endpoint through your own domain — Plausible has a documented Caddy/Nginx recipe, Umami has a custom hostname feature, and Matomo's tag manager handles it. Without proxy mode you will see numbers that are 25–35% lower than reality on tech-leaning audiences.

Backups are non-trivial for Plausible. ClickHouse backup tooling is its own rabbit hole. For Umami and Matomo a nightly pg_dump or mysqldump piped to Cloudflare R2 is enough. For Plausible CE, plan an extra hour to set up clickhouse-backup properly before you put production traffic on it.

GeoIP databases need maintenance. All three ship with MaxMind GeoLite2, but the auto-update credential setup is a manual step you will forget about in six months. Set a calendar reminder.

My Pick After Two Weeks

For my own seven sites: Umami, hosted on a single Hetzner CAX11. The combination of MIT license, single-container deploy, multi-site dashboard, and 340 MB peak memory was unbeatable for my use case.

For client work where I need a public dashboard or polish: Plausible CE on a CAX21.

For any client that mentions GDPR audits, ecommerce attribution, or the words "we used to use Adobe": Matomo. Yes, it is heavier and slower, but the feature surface and compliance documentation are worth it. I would not pick Matomo just for a personal site, but I would not pick anything else for a regulated SMB.

The wrong answer is staying on GA4 by default. The migration is a four-hour project for a single site, and the resulting data is yours, accurate, and free of sampling. After running the migration on three of my sites, my regret is not doing it twelve months earlier.

FAQ

Will Cloudflare Web Analytics replace any of these? Not really. Cloudflare's free analytics is server-side and lacks event tracking, goals, and any kind of user-level segmentation. It is a useful sanity check sitting next to one of the three tools above, not a replacement.

Can I run this on shared hosting? Only Matomo, and only just. Hostinger and similar shared plans support PHP and MySQL but you will hit memory limits and cron-job restrictions past a few thousand pageviews per day. For Plausible CE and Umami you need at least a small VPS with Docker.

What about server-side tracking? Matomo supports log file import natively, which is the closest thing to first-party server-side tracking with zero browser involvement. Plausible has a server-side events API. Umami's API is documented and stable. All three handle server-side tracking better than GA4 does without a paid GTM container.

How long do these tools retain data? By default, all three keep raw data forever. Plausible CE has no built-in retention controls. Umami exposes RETENTION_DAYS as an environment variable. Matomo has the most granular controls in its GDPR Manager — you can purge raw logs after N days while keeping aggregated reports indefinitely, which is what most compliance frameworks actually want.

Are these tools cookieless? Plausible and Umami are cookieless by default and use a hashed daily-rotating identifier. Matomo can be configured cookieless but ships with cookies enabled by default. For most EU operators in 2026, cookieless mode plus a banner-free "consent not required" deployment is the whole point of switching.

Found this helpful?

Subscribe to our newsletter for more in-depth reviews and comparisons delivered to your inbox.