Plausible

Lightweight, privacy-friendly website analytics

Web Analytics ★ 29.2k stars Medium setup AGPL-3.0

Plausible is a lightweight, open-source, privacy-friendly web analytics tool that needs no cookies and is GDPR compliant. It targets site owners who want simple, ethical analytics. It is deployed via Docker.

Plausible setup guides & articles

Hands-on coverage of Plausible from the blog.

Key features

  • Cookie-free and GDPR compliant
  • Tiny tracking script
  • Clean single-page dashboard
  • Goal and funnel tracking

Pros & cons

Strengths

  • Privacy-friendly by design
  • Simple and fast
  • Lightweight script

Trade-offs

  • Self-host needs Postgres and ClickHouse
  • Fewer deep reports than Matomo

Plausible replaces

Last reviewed Aug 26, 2026 · 759 words

Plausible has the smallest dashboard in web analytics and one of the bigger databases behind it. The tracking script is under 1 KB, there is one page of numbers, no cookies and no consent banner, and to get that you run both PostgreSQL and ClickHouse on a box with at least 1 GB of RAM. Understand that trade and the rest of the setup is a 20-minute job.

ClickHouse is the price of the tiny script

The Community Edition stores every pageview as a row in ClickHouse, a column store built for exactly this kind of append-and-aggregate load. Postgres holds only sites, users and goals. Plausible itself is an Elixir application and idles at a couple of hundred MB; ClickHouse is the one that decides your VM size. It is comfortable at 1 GB for a handful of small sites and noticeably happier at 2 GB or more, and it will write a lot of small files, so give it a real disk rather than an SD card. If that sounds like more database than your blog deserves, Umami does a similar job on Postgres alone; the Plausible vs Umami comparison spells out that split.

The compose file that works first time

The upstream community-edition repository ships the compose file and it is worth using unmodified. Three values go in the env file:

BASE_URL=https://stats.example.com
SECRET_KEY_BASE=$(openssl rand -base64 48)
DISABLE_REGISTRATION=true   # after your first account exists

BASE_URL must be the exact public URL, scheme included, or the script tag Plausible generates will point somewhere wrong and the dashboard will show nothing while looking healthy. The app listens on 8000 bound to localhost by default; put Caddy in front for TLS. Register your account first, set DISABLE_REGISTRATION=true, restart. Then add the one-line script to your site and watch the realtime view before you trust anything else.

Cookieless counting changes what "visitors" means

No cookie means no persistent identifier. Plausible counts a unique visitor by hashing IP, user agent, and a salt that rotates daily, so the same person on the same device is one visitor within a day and a new visitor tomorrow. Your "unique visitors" number will therefore read higher than Google Analytics over a week or a month, and returning-visitor analysis over long ranges is simply not available. Bounce rate, visit duration, top pages, referrers, countries, devices, goals and funnels are all there. Session replay, user-level paths and ad-attribution reports are not, and if you need those, the honest answer is Matomo, which is heavier for exactly that reason.

Ad blockers will eat a third of your data unless you proxy

Most blocklists include plausible.io and the generic /js/script.js path, and a self-hosted instance on a stats. subdomain gets caught by pattern rules too. The fix is to serve the script and the event endpoint from your own site's domain. On the site's reverse proxy, route two paths to Plausible: something unremarkable like /js/app.js for the script and /api/event for the beacon, then reference that path in your tag. The Plausible docs describe this as proxying, and it is the single largest accuracy improvement you can make; on a developer-heavy audience I have seen recorded traffic rise by roughly a third after doing it.

Cloud or Community Edition

Plausible's hosted plan starts at about 9 USD a month at last check for small sites, and the company funds itself on it, which is why the Community Edition trails the cloud on features and is released on its own slower schedule. Self-host when you have several sites, want the data on your own disk, or the monthly fee grates. Pay when you don't want to own a ClickHouse instance. Either way, the escape from Google Analytics is the same; the switching guide covers importing historical data and what you lose.

What I'd do

Community Edition on a 2 GB VM with an SSD, upstream compose untouched, Caddy for TLS, registration disabled after account one. Proxy the script through each site's own domain on day one, not after you notice the gap. Back up the Postgres dump and the ClickHouse volume weekly; the history is the whole point. For 1 to 10 sites of modest traffic it is the cleanest analytics you can run, and I would only reach past it toward Matomo if a marketing team needs campaign attribution.

Compare Plausible

19 head-to-head comparisons.

Similar web analytics apps