Umami vs Matomo: Which Analytics to Self-Host?
Quick Verdict
Umami is the better choice if you want dead-simple analytics that take minutes to set up and barely use any resources. Matomo is better if you need a full Google Analytics replacement with advanced features like funnels, e-commerce tracking, heatmaps, and GA data import.
Overview
Umami is a minimal, privacy-focused analytics tool built with Next.js and PostgreSQL. Matomo is a comprehensive analytics platform that’s been the go-to self-hosted GA alternative since 2007. They target fundamentally different needs: Umami prioritizes simplicity, Matomo prioritizes completeness.
Feature Comparison
| Feature | Umami | Matomo |
|---|---|---|
| Tracking script size | ~2 KB | ~22 KB |
| Dashboard | Single-page, clean | Multi-page, comprehensive |
| Real-time stats | Yes | Yes |
| Custom events | Yes | Yes (goals, funnels, dimensions) |
| E-commerce tracking | No | Yes |
| Heatmaps | No | Yes (paid plugin) |
| Session recording | No | Yes (paid plugin) |
| GA import | No | Yes |
| API | Yes | Yes |
| Database | PostgreSQL | MySQL/MariaDB |
| Containers | 2 (app + PostgreSQL) | 2 (app + MariaDB) |
| RAM usage | ~150-250 MB | ~300-500 MB |
| Setup time | 5 minutes | 15-20 minutes |
| Multi-site | Yes | Yes |
| User management | Yes | Yes |
| Cookie-free | Yes (default) | Yes (configurable) |
| Tag manager | No | Yes |
| Custom reports | No | Yes |
| Plugin ecosystem | No | Yes (marketplace) |
Installation Complexity
Umami is one of the simplest analytics tools to deploy. Two containers (app + PostgreSQL), three environment variables, and it’s running. Default login: admin / umami. The entire setup takes under 5 minutes.
Matomo requires two containers plus a web-based setup wizard. You’ll also need to configure a cron job for report archiving. Setup takes 15-20 minutes and involves more configuration decisions.
Performance and Resource Usage
Umami is lighter across the board — roughly 150-250 MB of RAM for the stack versus 300-500 MB for Matomo. Umami uses PostgreSQL which handles concurrent writes efficiently. Matomo’s report archiving cron can cause CPU spikes on larger datasets.
For small sites, both are fine. For sites with 100K+ monthly pageviews, Umami’s simpler architecture has fewer scaling concerns.
Community and Support
Matomo has nearly two decades of history, a large community, extensive documentation, and a commercial support tier. The plugin marketplace extends functionality significantly.
Umami is newer but has grown rapidly. GitHub stars and community engagement are strong. Documentation is concise and sufficient for the tool’s scope.
Use Cases
Choose Umami If…
- You want the simplest possible self-hosted analytics
- Basic metrics (pageviews, referrers, browsers, devices) are sufficient
- You’re running on limited hardware
- You want the fastest possible setup
- You don’t need advanced features like funnels or e-commerce
Choose Matomo If…
- You need full Google Analytics replacement
- You want to import existing GA data
- You need e-commerce or conversion tracking
- You want custom reports and advanced segmentation
- You need a tag manager
- Your team relies on advanced analytics features
Final Verdict
Umami wins for simplicity seekers. If your analytics needs are “how many visitors, from where, which pages” — Umami answers those questions with minimal setup and resource overhead.
Matomo wins for power users. If you actively use GA features like funnels, goals, e-commerce tracking, or custom dimensions, Matomo is the self-hosted tool that matches that depth.
Most personal sites and small businesses will be better served by Umami. Enterprise teams migrating from GA should evaluate Matomo.
FAQ
Can I migrate data between Umami and Matomo?
No direct migration path exists. Both use different database schemas and data models. You would need to export data via each tool’s API and write a custom import script. In practice, most people start fresh when switching — the effort of migrating historical analytics data rarely justifies the engineering time.
Which is easier to update?
Umami — pull the new Docker image and restart the container. Matomo requires pulling the image, running the web-based update wizard, and verifying that the core:archive cron job still works. Matomo plugin updates add another maintenance step.
Can Umami handle e-commerce tracking?
Not natively. Umami tracks custom events (button clicks, form submissions), but it has no built-in e-commerce event model — no product views, cart additions, or transaction tracking. Matomo handles this with its e-commerce tracking module, which is a core feature of the free edition.
Do ad blockers affect Umami and Matomo?
Yes, both can be blocked by ad blockers that use EasyPrivacy or similar filter lists. Umami offers a built-in workaround: set TRACKER_SCRIPT_NAME and COLLECT_API_ENDPOINT to custom values so the script and endpoint names don’t match blocklist patterns. Matomo can be proxied through your own domain or use a custom script name via config.
Which handles higher traffic better?
For moderate traffic (under 500K monthly pageviews), both handle the load well. At higher volumes, Matomo’s MySQL/MariaDB backend and report archiving cron can become bottlenecks without careful tuning (Redis caching, table partitioning). Umami on PostgreSQL scales reasonably but may also need optimization at very high volumes. For truly high-traffic analytics, consider Plausible with its ClickHouse backend.
Can I use Matomo’s tag manager with Umami?
No. Matomo’s tag manager only works with Matomo’s own tracking code. You cannot use it to manage Umami’s script. If you want tag management alongside Umami, you would need a separate solution like Google Tag Manager (which defeats the privacy purpose) or a self-hosted alternative.
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments