Migrating from Google Analytics 4 to Something Simpler: The Practical Guide
A step-by-step playbook for moving off GA4 without losing historical data or breaking your reporting. The four phases, the gotchas, and how to pick the right replacement β without the cargo-cult migration content the internet is full of.
When migrating off GA4 actually makes sense
GA4 is free, ubiquitous, and integrated with every Google product. Those are real advantages. Leaving them behind only makes sense for specific reasons β if your reason isn't one of these, the migration probably isn't worth the friction:
- You're tired of the cookie banner and the consent drop-off it creates. GA4 stores identifiers; under GDPR/PECR that requires consent; consent rates of 50-70% mean you're already losing a third of your data.
- Your audience uses ad blockers heavily. Developer-leaning, tech, privacy-aware, or crypto-adjacent audiences block GA4 at rates of 30-50%. Your dashboard isn't showing what you think it's showing.
- You spend more time configuring GA4 than analyzing it. Custom dimensions, event mapping, conversion modeling, BigQuery export, sampling thresholds. If a quarter of your work week goes to GA4 plumbing, you're paying for "free" with your time.
- You want to own the data, not rent visibility into it. GA4 owns the dataset; you query slices of it through their UI. With a smaller tool you typically own the raw rows and can export, archive, or warehouse them yourself.
If your reason is just "Google is too big" β that's a feeling, not a migration brief. You'll spend a week on this and end up with a less powerful tool. Don't migrate on vibes.
Phase 1: Parallel install (week 1)
Do not turn GA4 off. Install your new analytics tool alongside GA4 for at least 14 days. This is non-negotiable and most failed migrations skip it.
Two reasons:
- Calibration. You're about to look at very different numbers. If your new tool shows 40% more sessions than GA4, is that real (ad blockers, no consent banner) or a tracking bug on your side? You can only tell by running both at once on the same traffic and comparing daily.
- Confidence. Two weeks of parallel data lets you say things like "we capture 1.4Γ the visitors GA4 reports, our top three referrers match, the country distribution is the same, ad-blocker users are the gap". That's a defensible migration. "We just switched and the numbers look different" is not.
During this phase, keep your reporting and decision-making on GA4. The new tool is on probation.
Phase 2: Validate parity on the dimensions you care about (week 2-3)
Most analytics tools measure pageviews, sessions, and top pages roughly the same way. The places where they diverge β and where you need to validate before cutting over β are:
Sessions vs visitors
GA4 defaults to user-based metrics; smaller tools often default to session-based. If GA4 says "12,000 users last month" and the new tool says "16,000 sessions" β those aren't comparing the same thing. Pull the comparable metric from both tools before declaring discrepancy.
Bounce rate definition
GA4 inverted bounce rate into "engagement rate" with a 10-second minimum. Most other tools still use the classic "single-page visit" definition. A site with 60% bounce in GA4 might show 35% bounce elsewhere β both correct, different definitions.
Time on page
GA4 uses heuristic-based engagement time. Trackers that use the Page Visibility API measure actual visible time. The new number will be lower by 30-60%. That's not a regression β see how to measure real time-on-page for the breakdown of why.
Traffic source attribution
GA4's "Source / Medium" model is unusually aggressive β it splits things others would group. Top referrers should match in spirit; exact percentages won't.
Phase 3: Export your historical GA4 data (week 3)
This is the step most teams skip and regret six months later. GA4 retains data for 14 months by default (extendable to 50 with a paid plan, in some regions). Once you stop sending events, your historical reports stay accessible until the retention window closes β and then they're gone.
Three things to export before that window closes:
- Aggregate monthly reports for the last two years: monthly pageviews, sessions, top 50 pages, top 20 referrers, top 20 countries. Export to CSV from GA4's Explorations. Park it in a Google Drive folder labelled with the export date.
- Conversion totals for any goal/event you track in GA4: total conversions per month, conversion rate by source. Same CSV approach.
- If you have BigQuery export enabled: download the raw event tables to your own warehouse or cold storage. That's the only path to row-level historical data.
You probably won't query this archive often. But the day someone asks "what was our organic traffic in Q3 2024?" you'll either have a CSV or a regret.
Phase 4: Cut over (week 4)
Once you have 14 days of parallel data, an export of GA4 history, and you've reconciled the metric differences in writing for your team:
- Switch your reporting (dashboards, weekly reviews, internal posts) to the new tool.
- Remove the GA4 tag from the site, or set it to a "diagnostic only" mode where you keep it for cross-checking but no longer treat it as source of truth.
- Update the cookie banner β if your only third-party tracker was GA4, you may not need the banner anymore. Verify with legal if your jurisdiction is strict.
- Document the migration in a one-page memo: why, what changed in the numbers and why, what you're now measuring instead. Future-you and future-team need this.
How to pick the right replacement
There are three credible categories of replacement, each with different trade-offs:
Privacy-first SaaS (Plausible, Fathom, Logly, Pirsch)
Cookie-free, GDPR by design, no banner needed. Light scripts that pass ad blockers. Dashboards prioritize clarity over feature density. Free or cheap up to ~10k pageviews; usage-based pricing from there. Best fit when your priority is honesty of measurement and zero compliance friction.
Open-source self-hosted (Umami, Plausible CE, GoatCounter, Matomo)
You run the database. Full data ownership; zero monthly fees beyond hosting. Higher operational burden β you maintain Postgres or SQLite, handle backups, ship updates. Matomo specifically can replicate most of GA4's feature surface but is heavy. Best fit when data sovereignty matters more than convenience.
Server-side GA4 or proxied GA4
You keep GA4 but route events through your own server. Solves the ad-blocker problem. Doesn't solve the consent problem (you're still collecting personal data, just via a different transport β the banner stays). Best fit when you genuinely need GA4's reporting depth and just want to fix the blocking issue.
Common pitfalls
Migrations fail in predictable ways. The ones we've seen most:
- Skipping the parallel phase. "We just installed it and pulled GA4." Then on day 1 the numbers don't match and there's no calibration baseline. Trust collapses.
- Migrating without exporting GA4 history. Three months later, someone needs Q4 last year's traffic for a board deck. The data is technically still in GA4 but you've forgotten how to navigate Explorations.
- Picking the wrong replacement for the audience. A consumer brand site moving to GoatCounter and discovering it's too minimal. A privacy SaaS moving to Matomo Cloud and realizing the cookie banner is back.
- Not updating internal dashboards. Notion pages, Looker boards, weekly review templates all still reference GA4 numbers. The migration is technically done but reporting hasn't followed.
- Comparing incompatible metrics. See Phase 2 above. The number of teams that conclude "our new tool is broken" because they compared GA4 "users" to a session-based tool's "sessions" is too high to count.
Run a parallel install with Logly
Install Logly alongside your current GA4 for 14 days. Same script tag pattern, no cookies, no banner. Free up to 10,000 pageviews/month. Compare the numbers yourself before deciding anything.
Get started free β