Deployment guide

Plausible vs Umami: which self-hosted analytics to choose?

Deploy on a VPS Cloud →

Plausible vs Umami: which self-hosted analytics to choose?

Comparison8 min read15 steps

Plausible Analytics and Umami Analytics are the two leading self-hosted, privacy-friendly web analytics tools. But their philosophies diverge: Plausible bets on radical simplicity, Umami on progressive feature depth. This guide compares them in detail — architecture, legal compliance, advanced features, migration from GA4, and troubleshooting — to help you make the right call in 2026.

Contents· Why self-host your web analytics1/16
  1. 01Why self-host your web analytics
  2. 02Benefits of self-hosted analytics
  3. 03Plausible vs Umami: key criteria comparison
  4. 04Prerequisites by tool
  5. 05Deploying Plausible (or Umami) on a VPS
  6. 06Decision tree: Plausible or Umami?
  7. 07Choose Plausible if…
  8. 08Choose Umami if…
  9. 09GDPR, CNIL, and ePrivacy compliance: what each tool actually covers
  10. 10Migrating from Google Analytics 4
  11. 11Steps to move from GA4 to Plausible or Umami
  12. 12Advanced features: funnels, segments, events and API
  13. 13Common troubleshooting
  14. 14Frequent issues and solutions
  15. 15Backing up and restoring your analytics data
  16. 16Backup strategy for Plausible and Umami

Why self-host your web analytics

Benefits of self-hosted analytics

  • Native GDPR compliance: no third-party data transfer, no consent banner required when no cookie is used
  • 100% data ownership: CSV/SQL export at any time, long-term retention with no expiry
  • Fixed cost: a €6/month VPS handles millions of pageviews
  • Lightweight script (< 2 KB): negligible impact on Core Web Vitals
  • No sampling: every pageview is counted, even at high volumes
  • Open source: auditable code, no vendor lock-in

Plausible vs Umami: key criteria comparison

Scroll the table

CriterionPlausible 3.2Umami 3.4
Language / stackElixir + ClickHouseNode.js + PostgreSQL
DatabaseClickHouse (columnar)PostgreSQL only (MySQL dropped in v3)
InterfaceVery minimal, single-pageMulti-site, configurable dashboards
FunnelsYes, multi-step with revenue trackingYes, via custom reports
Custom eventsYes, with props APIYes, with props API + TypeScript SDK
Heatmaps / Session replayNoYes (v3.4, 2026)
Advanced segmentationCombined filtersSession segments, property filters
Recommended min RAM2 GB (ClickHouse)512 MB
LicenseAGPL-3.0MIT

Prerequisites by tool

Plausible requires ClickHouse, a columnar database built for time-series data. ClickHouse is powerful but RAM-hungry: plan for at least 2 GB, ideally 4 GB for a comfortable instance. Umami runs on PostgreSQL, which is far lighter: 512 MB is enough for moderate-traffic sites. If your VPS already runs PostgreSQL for another application, Umami integrates without additional resources. As of Umami v3, MySQL is no longer supported; if migrating from an older MySQL install, export and reimport to PostgreSQL first.

Deploying Plausible (or Umami) on a VPS

  1. Clone the official repo (plausible/community-edition or umami-software/umami) and copy .env.example to .env

  2. Fill in required variables: SECRET_KEY_BASE (Plausible) or APP_SECRET (Umami), public URL, database credentials

  3. Run docker compose up -d — the image pulls ClickHouse/PostgreSQL and auto-migrates the schema

  4. Configure an nginx reverse proxy with HTTPS (Let's Encrypt) on your chosen domain, and ensure X-Forwarded-For is forwarded correctly

  5. Add the tracking script to your site and verify the first pageview in the dashboard

Block bots at the nginx level (if ($http_user_agent ~* "(bot|crawler|spider)")) to keep your stats clean without any analytics-side configuration.

Decision tree: Plausible or Umami?

Choose Plausible if…

  • You want an interface any teammate understands in 5 minutes without training
  • Your team doesn't need session replay or heatmaps
  • You have at least 4 GB of RAM on the VPS (ClickHouse earns it)
  • You manage several sites from a single minimalist dashboard
  • You need multi-step funnels with built-in revenue tracking (Plausible 3.2)

Choose Umami if…

  • You have a resource-constrained VPS (512 MB–1 GB RAM) or PostgreSQL is already installed
  • You need heatmaps and session replay (Umami 3.4, 2026)
  • Your team builds custom integrations via the official TypeScript API (@umami/api-client)
  • You manage many sites for different clients (native multi-tenant)
  • You want to query your data in natural language via an AI assistant using MCP (Umami 3.4)

GDPR, CNIL, and ePrivacy compliance: what each tool actually covers

Both tools are designed to work without tracking cookies and without storing complete IP addresses. Plausible hashes the IP with a daily rotating salt; Umami uses a similar approach. Result: no persistent identifier is stored server-side, which allows you to skip the consent banner for analytics alone — provided the script is not combined with other trackers. The French CNIL, in its 2024 recommendations on GA4 alternatives, explicitly cites self-hosted cookieless analytics as exempt from consent when data stays on servers under EU jurisdiction. The ePrivacy Directive points the same way. Caveat: if you host outside the EU or aggregate with a third-party advertising solution, the exemption no longer applies. Documenting hosting details (VPS location, retention policy) in your processing register remains mandatory.

Migrating from Google Analytics 4

Steps to move from GA4 to Plausible or Umami

  1. Export GA4 history as CSV via Google Analytics > Reports > Export, or via the GA4 Data API for large volumes — neither Plausible nor Umami imports this history natively, but you can keep it as an archive

  2. Run the Plausible/Umami script alongside the GA4 tag for 2–4 weeks to compare metrics (numbers will differ: GA4 samples, Plausible/Umami count everything)

  3. Verify that critical custom events (forms, clicks, purchases) are replicated via plausible('goal') or umami.track()

  4. Remove the GA4 tag and its _ga cookie once satisfied — update your privacy policy accordingly

  5. Document the new metrics in your GDPR register: legal basis, retention period, server location

Traffic numbers will be consistently higher with Plausible or Umami than with GA4 on the same site: GA4 filters some bot traffic and handles short sessions differently. Expect +10% to +25% pageviews — this is not a bug, it is unsampled accuracy.

Advanced features: funnels, segments, events and API

Plausible 3.2 (January 2026) introduced editable multi-step funnels with revenue tracking. Segmentation relies on combined filters (source, country, device, event properties) with a new 'does not contain' filter added in 2026. The Plausible API is RESTful and documented. Umami 3.4 (August 2026) goes further with session segments — you can group visitors by session properties and replay their journey. Heatmaps and session replay, added in June 2026, enable visual behavior analysis. The TypeScript @umami/api-client SDK (generated from OpenAPI) simplifies data pipeline integration. Umami also supports session identity stitching: if a visitor returns on another device and authenticates, sessions are merged into a single profile.

Common troubleshooting

Frequent issues and solutions

  • ClickHouse won't start (Plausible): check available RAM (free -h) — ClickHouse needs at least 1.5 GB free at startup. If the VPS is tight, add a 2 GB swap file. Check logs with docker compose logs clickhouse.
  • Umami migrations stuck: after an update, if the app refuses to start with relation does not exist, force migrations manually via docker compose exec umami node node_modules/.bin/db-migrate up.
  • Pageviews not recorded: verify your site's CSP header allows the analytics domain (script-src 'self' https://analytics.yourdomain.com). Ad blockers may also block the script — consider proxying it from your own domain.
  • ClickHouse error after hard restart: if ClickHouse reports a corrupted table, run SYSTEM RELOAD DICTIONARY via clickhouse-client then restart the container.
  • Umami v3: errors after migrating from MySQL: Umami v3 dropped MySQL support. If upgrading from v2 with MySQL, export all data first, provision PostgreSQL, then reimport using the official migration scripts.

Backing up and restoring your analytics data

Backup strategy for Plausible and Umami

  1. Plausible / ClickHouse: use clickhouse-backup create or export critical tables to Parquet via clickhouse-client --query "SELECT * FROM plausible_events_db.events FORMAT Parquet" > events_$(date +%Y%m%d).parquet

  2. Umami / PostgreSQL: a standard pg_dump is enough — docker compose exec db pg_dump -U umami umami > umami_$(date +%Y%m%d).sql. Schedule daily via cron and upload to object storage (S3, Backblaze B2)

  3. Test restoration at least quarterly on a staging VPS: docker compose exec db psql -U umami umami < umami_backup.sql

  4. For Plausible, also back up the Docker volume holding the app's PostgreSQL data (separate from ClickHouse)

  5. Document the restoration procedure in your runbook — an untested backup is not a backup

Your Statistics, on Your Own Server

Deploy Plausible or Umami on a ServOrbit Cloud VPS with preconfigured Docker. Fast, privacy-friendly analytics that's 100% under your control, with no cookie banner.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.

Message us on WhatsAppopens in a new tab