Matomo vs Plausible 2026: Analytics Compared
Matomo vs Plausible in 2026: Full-Featured vs Lightweight Analytics
TL;DR
Matomo is the enterprise Google Analytics replacement — heatmaps, session recordings, A/B testing, e-commerce funnels, 200+ reports, LDAP, and tag manager. Plausible is the minimalist — essential metrics in a sub-1KB cookie-free script, a clean single-page dashboard, and automatic GDPR compliance without consent banners. They solve different problems: Matomo replaces Google Analytics feature-for-feature; Plausible replaces the 20% of GA features that 80% of teams actually use.
Key Takeaways
- Matomo (GPL-3.0, 20K+ stars) — PHP/MySQL, 200+ reports, heatmaps (plugin), session recordings (plugin), A/B testing (plugin), e-commerce tracking, LDAP/SSO
- Plausible (AGPL-3.0, 21K+ stars) — Elixir/ClickHouse, sub-1KB script, cookieless default, funnel visualization, GSC integration, revenue tracking
- GA4's breaking change (events replacing sessions/pageviews) drove massive migration to open source tools — both Matomo and Plausible are direct beneficiaries
- Matomo requires 2–4 GB RAM and MySQL; Plausible requires 1–2 GB RAM and ClickHouse + PostgreSQL
- Plausible is cookieless by default — no GDPR consent banner required; Matomo requires explicit cookie configuration
- Matomo's script is 22x larger (~22KB) than Plausible's (<1KB) — measurable page speed impact on high-traffic sites
The Google Analytics Replacement Problem
Google Analytics 4 was a forced migration that alienated its own user base. Universal Analytics had familiar session-based reports: pageviews, sessions, bounce rate, top pages, acquisition channels, all visible without configuration. GA4 replaced this with event-based tracking where you must build Explore reports before you can see anything beyond basic traffic numbers.
The result: teams spending hours configuring GA4 to approximate what GA3 showed automatically — while sharing all that data with Google.
Both Matomo and Plausible offer a clean break. But they're aimed at different use cases.
Plausible — The Clean, Fast, Private Option
Plausible's bet is that most websites don't need 200 reports. They need to know: where do visitors come from, what pages do they visit, and did the campaigns work? Everything else is configuration overhead.
Deploy Plausible
# Plausible Community Edition docker-compose.yml
services:
plausible_db:
image: postgres:16-alpine
restart: always
volumes:
- db-data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: postgres
plausible_events_db:
image: clickhouse/clickhouse-server:24.3.3.102-alpine
restart: always
volumes:
- event-data:/var/lib/clickhouse
- event-logs:/var/log/clickhouse-server
ulimits:
nofile:
soft: 262144
hard: 262144
plausible:
image: ghcr.io/plausible/community-edition:v2
restart: always
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
ports:
- 127.0.0.1:8000:8000
env_file:
- .env
volumes:
db-data:
event-data:
event-logs:
# .env
BASE_URL=https://analytics.yourdomain.com
SECRET_KEY_BASE=your-64-char-generated-secret
TOTP_VAULT_KEY=your-32-char-generated-key
MAILER_EMAIL=analytics@yourdomain.com
SMTP_HOST_ADDR=smtp.resend.com
SMTP_HOST_PORT=587
SMTP_USER_NAME=resend
SMTP_USER_PWD=re_your_api_key
SMTP_HOST_SSL_ENABLED=true
# Optional: Google Search Console
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-secret
Add Tracking
<!-- Basic: under 1KB, cookieless, no GDPR banner needed -->
<script defer data-domain="yourdomain.com"
src="https://analytics.yourdomain.com/js/script.js"></script>
<!-- Enhanced: outbound links + file downloads + custom events -->
<script defer data-domain="yourdomain.com"
src="https://analytics.yourdomain.com/js/script.tagged-events.outbound-links.file-downloads.js">
</script>
Custom Events and Revenue
// Track custom conversion event
window.plausible('Signup', { props: { plan: 'pro', source: 'landing-page' } });
// Track revenue with purchase event
window.plausible('Purchase', {
props: { plan: 'enterprise', billing: 'annual' },
revenue: { currency: 'USD', amount: 299.00 }
});
// Track funnel steps
window.plausible('Onboarding', { props: { step: 'profile_complete' } });
window.plausible('Onboarding', { props: { step: 'integration_added' } });
window.plausible('Onboarding', { props: { step: 'first_invite_sent' } });
Funnel Visualization
Plausible's funnel builder creates step-by-step conversion views from pages or custom events. Define a 4-step signup funnel in the dashboard — Plausible shows users at each step and drop-off between steps. No event configuration required beyond the JS snippet.
Google Search Console Integration
Connect your GSC account in Plausible settings → Site Settings → Integrations. After connection, the "Search" tab in your Plausible dashboard shows which Google search queries drive traffic, with impressions, clicks, and position — the only open source analytics tool with native GSC integration.
Key features:
- Sub-1KB tracking script (22x smaller than Matomo)
- Cookieless, no GDPR consent required by default
- Real-time dashboard (live visitor count)
- Custom events with properties
- Revenue tracking and goals
- Funnel visualization
- Google Search Console integration
- Google Analytics import
- Email digests (weekly/monthly)
- REST API
- AGPL-3.0, 21K+ stars
- 1–2 GB RAM, Elixir + ClickHouse + PostgreSQL
Matomo — The Complete GA Replacement
Matomo is for teams that actually need GA's depth — marketing agencies, e-commerce sites with detailed product analytics, compliance teams that need full data control without sacrificing reporting capability.
Deploy Matomo
# Matomo Docker Compose
services:
matomo:
image: matomo:latest
restart: always
ports:
- "8080:80"
volumes:
- matomo_data:/var/www/html
environment:
MATOMO_DATABASE_HOST: db
MATOMO_DATABASE_ADAPTER: mysql
MATOMO_DATABASE_DBNAME: matomo
MATOMO_DATABASE_USERNAME: matomo
MATOMO_DATABASE_PASSWORD: password
depends_on:
- db
db:
image: mariadb:10.11
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: matomo
MYSQL_USER: matomo
MYSQL_PASSWORD: password
volumes:
- matomo_db:/var/lib/mysql
command: --max_allowed_packet=64MB
volumes:
matomo_data:
matomo_db:
Add Tracking
<!-- Matomo tracking code (~22KB) -->
<script>
var _paq = window._paq = window._paq || [];
/* Cookie-free mode — no GDPR consent required */
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u = "https://analytics.yourdomain.com/";
_paq.push(['setTrackerUrl', u + 'matomo.php']);
_paq.push(['setSiteId', '1']);
var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
g.async = true;
g.src = u + 'matomo.js';
s.parentNode.insertBefore(g, s);
})();
</script>
Custom Events and Segments
// Track custom events with category/action/name/value
_paq.push(['trackEvent', 'Feature', 'Used', 'Export CSV', 1]);
_paq.push(['trackEvent', 'Onboarding', 'Step Completed', 'Profile Setup']);
_paq.push(['trackEvent', 'Upgrade', 'CTA Clicked', 'Pricing Page Hero']);
// Custom dimensions for user properties
_paq.push(['setCustomDimension', 1, 'pro']); // Plan dimension
_paq.push(['setCustomDimension', 2, 'engineering']); // Team dimension
E-Commerce Tracking
// Track product category page
_paq.push(['setEcommerceView', false, false, 'Laptops']);
_paq.push(['trackPageView']);
// Track product detail page
_paq.push(['setEcommerceView', 'SKU-001', 'MacBook Pro 14"', 'Laptops', 1999.00]);
_paq.push(['trackPageView']);
// Add to cart
_paq.push(['addEcommerceItem',
'SKU-001', // Product ID
'MacBook Pro 14"', // Product name
'Laptops', // Category
1999.00, // Price
1 // Quantity
]);
_paq.push(['trackEcommerceCartUpdate', 1999.00]);
// Track order completion
_paq.push(['trackEcommerceOrder',
'ORDER-789', // Order ID
1999.00, // Grand total
1999.00, // Subtotal
0, // Tax
0, // Shipping
false // Discount
]);
Heatmaps and Session Recordings
Install the Heatmaps & Session Recordings plugin from the Matomo Marketplace (free). After activation:
- Heatmaps: Overlay showing where users click (red = hot zones, blue = cold). Available for any page. See mobile vs desktop click patterns separately.
- Session Recordings: Watch individual user sessions — see exactly how users navigate, where they hesitate, and where they drop off. Useful for UX debugging.
Unlike Hotjar or FullStory, recordings stay on your server. No data sent to third parties.
Key features:
- 200+ report types across channels, devices, geo, behavior, and time
- Heatmaps and click maps (plugin, free)
- Session recordings (plugin, free)
- A/B testing and split tests (plugin)
- Funnel visualization
- Goals and conversions
- Cohort analysis
- Ecommerce analytics (products, cart abandonment, revenue by category)
- Custom segments with complex conditions
- Custom dimensions (user properties)
- Tag Manager (built-in, no separate service)
- LDAP/Active Directory integration
- SAML/Okta SSO (premium plugin)
- Scheduled email reports (PDF format)
- Google Analytics 4 import
- Full REST API
- GPL-3.0, 20K+ stars
- 2–4 GB RAM, PHP + MySQL
Side-by-Side Comparison
| Feature | Plausible | Matomo |
|---|---|---|
| License | AGPL-3.0 | GPL-3.0 |
| Stars | 21K+ | 20K+ |
| Stack | Elixir/ClickHouse | PHP/MySQL |
| Script size | < 1 KB | ~22 KB |
| Cookie-free default | ✅ | Optional |
| GDPR (no consent) | ✅ | Cookie-free mode |
| Real-time | ✅ | ✅ |
| Custom events | ✅ | ✅ |
| Revenue tracking | ✅ | ✅ (detailed) |
| E-commerce depth | Basic goals | Full cart/order/product |
| Funnels | ✅ | ✅ |
| Segments | Basic filters | ✅ Complex |
| Heatmaps | ❌ | ✅ (plugin) |
| Session recordings | ❌ | ✅ (plugin) |
| A/B testing | ❌ | ✅ (plugin) |
| Tag Manager | ❌ | ✅ Built-in |
| Custom dimensions | ✅ (properties) | ✅ (dimensions) |
| GSC integration | ✅ | ❌ |
| GA4 import | ✅ | ✅ |
| LDAP/AD | ❌ | ✅ |
| Scheduled reports | ✅ Email PDF | |
| Min RAM | 1 GB | 2 GB |
| Cloud option | $9–69/mo | $23–249/mo |
Decision Framework
Choose Plausible if:
- Clean, minimal dashboard is the goal — no configuration overhead
- Page speed matters — 1KB vs 22KB is measurable on mobile
- Cookieless GDPR compliance without consent banners is required
- Google Search Console integration adds value to your workflow
- Revenue tracking and funnels cover your analytics needs
- Simpler infrastructure is preferred (though ClickHouse adds complexity)
Choose Matomo if:
- You need Google Analytics feature parity — specifically heatmaps, session recordings, or A/B tests
- Detailed e-commerce analytics: products, cart abandonment, revenue by category
- Complex audience segmentation is part of your marketing workflow
- LDAP/Active Directory authentication is required for enterprise access control
- Tag Manager as a built-in feature (no separate Google Tag Manager)
- Scheduled PDF reports distributed to non-technical stakeholders
- You're fully migrating from GA4 and want every report type to exist
Cost Comparison
| Solution | Annual Cost |
|---|---|
| Google Analytics 360 | $150,000+/year |
| Matomo Cloud (starter) | $276/year |
| Matomo Cloud (full features) | $756–2,988/year |
| Plausible Cloud (100K pageviews) | $228/year |
| Plausible Cloud (1M pageviews) | $588/year |
| Plausible self-hosted | $60–120/year |
| Matomo self-hosted | $120–200/year |
Related: Plausible vs Umami vs Matomo: The Full Three-Way Comparison · Self-Hosting Guide: Deploy Plausible Analytics · How to Migrate from Google Analytics to Umami
See open source alternatives to Matomo on OSSAlt.