Google Analytics→Plausible−$150/mo · −$1800/yr
One script tag, no cookie banner, stats you can read.
Easy20 minutesdocker compose ready
Why switch
- ▸GA4 enterprise tiers and the engineering cost of consent management add up — Plausible replaces the whole stack at a fraction of one.
- ▸Plausible is cookie-free and GDPR-compliant by design: the cookie banner can come off your site today.
- ▸Self-hosted Plausible on a small VPS handles millions of pageviews; the dashboard loads in one screen.
The migration
- 01
Deploy Plausible CE
The AltStack compose ships Plausible with PostgreSQL + ClickHouse. Bring it up and point a subdomain (analytics.yourdomain.com) at it.
bashrun on your servermkdir plausible && cd plausible curl -O https://raw.githubusercontent.com/aa-humaaan/thealtstack/main/docker-deploy/plausible/docker-compose.yml docker compose up -d - 02
Register your site, get the snippet
Plausible issues a one-line script tag. Add it to your layout — with the universal background of your site this is a single <script defer> tag, nothing else.
- 03
Define goals that matter
Rebuild your GA4 key events as Plausible goals: pageviews on /pricing, 404s, outbound clicks, and custom events from your app via plausible('Signup').
- 04
Run both for two weeks, then cut GA
Numbers differ by design: Plausible counts unique visits without cookies and excludes bots aggressively. Compare trends, not absolute digits, then remove GA and the consent banner.
Gotchas — read before you cancel
- ⚠Bot-filtered totals look lower than GA4 — that is correct behavior, not data loss.
- ⚠User-level journeys across sessions don't exist (privacy trade). Use funnel goals instead.
- ⚠Self-hosted updates: pin a version and update monthly; ClickHouse upgrades deserve a backup first.
Only cancel when this is true
- ✓Your own visit shows in the live dashboard in real time
- ✓A custom goal fires from the app
- ✓The cookie banner is removed and no consent error appears in the console
Replacing more than one tool?
The Stack Composer bundles Plausible with the rest of your open-source stack into one docker-compose file.
Open in Stack Composer →