How to Replace Google Analytics: A Practical Migration Guide (2026)
GA4 is a tax on your loading time, your privacy posture, and your sanity. Here's the sequence to replace it without losing your audience data.
Full disclosure: I run Trafnova, which is in the broader analytics category. I'll mention it once near the end where it's relevant to portfolio operators. This guide is a generic playbook that works whichever replacement you pick.
Replacing Google Analytics sounds harder than it is. The work is maybe two evenings if you're careful, and most of it is waiting for cron jobs to run. People put it off because the steps aren't written down anywhere obvious, so it feels riskier than it is. Below is the sequence I run when I move a site off GA.
Why this is on your to-do list
Three reasons people finally pull the trigger:
- GA4 is slow. The gtag.js bundle is ~50KB minified before the data layer even fires. On a Lighthouse audit it costs you points; on a 4G mobile connection it costs you seconds.
- The EU cookie banner taxes your conversion rate. Multiple studies (Cookiebot, Quantcast, internal blog posts from CRO agencies) put the consent-banner drop-off between 5% and 25% depending on design. Privacy-friendly tools don't need one.
- The UI is hostile. GA4 buried the things people look at every day (top pages, conversions, where traffic comes from) under property settings, custom reports, and explorations. The Universal Analytics "Audience > Overview" landing screen doesn't exist anymore, and the team behind GA4 doesn't seem to want it to.
The rest (data ownership, your visitor logs training Google's ad models, vendor lock-in) is real and matters, but those three are what tips the decision.
Step 0: pick your replacement
If you haven't already, skim my honest comparison of Plausible, Fathom, and Matomo, or the wider list of ten GA alternatives if those three don't fit. Short version of the picker:
- One or two content sites, under 100k pageviews/mo, non-technical stakeholders read the dashboard? Plausible.
- A blog or media site at 100k+ pageviews/mo, watching every dollar? Fathom.
- You need funnels, segments, heatmaps, or A/B tests? Matomo.
This guide assumes you've picked one. The steps are the same regardless.
Step 1: install the new tracker in parallel
Don't remove GA yet. Both scripts can run side by side for a couple of weeks, which is the only way to sanity-check the new tool's numbers against GA's.
Paste the new tracker script into your <head> (or whatever your build system uses for global scripts). For Plausible and Fathom this is one line. For Matomo it's a small block. All three publish exact snippets in their docs.
Visit your site once. Confirm in the new tool's real-time view that the visit shows up. If nothing appears:
- Open DevTools Network tab. Look for a request to plausible.io / usefathom.com / your Matomo host. No request = script tag isn't loading (typo, CSP block, ad blocker on your own machine).
- Request fires but returns 4xx = tracking ID is wrong.
- 200 OK and still nothing in the dashboard = wait two minutes. Real-time updates are quick but not always instant.
For Plausible and Fathom there is no configuration beyond pasting the snippet. For Matomo you'll set a site ID, a tracker URL (if self-hosted), and probably toggle cookieless mode under Privacy settings before you go live in the EU.
Step 2: let it collect for at least 7 days
You want a week of overlap data, ideally two. This lets you do two things later:
- Validate that the new tool's pageview counts are in the same ballpark as GA's (they will never match exactly, see gotchas below).
- Make sure your busiest day-of-week (usually Tuesday or Wednesday for content sites, Monday for SaaS) is captured.
Skip this and decommission GA on day one, you'll spend the next month second-guessing every number. Don't.
Step 3: export your GA history
This is the easy step to skip and regret. Once you delete a GA property or stop sending data, the historical reports stay readable for a while, but Google reserves the right to delete underlying data after 14 months on the free tier. Pull what you care about now, while you still can.
There are two ways to do it:
Option A: native GA4 export. In GA4, go to Admin > Account Settings > Property > Data Settings > Data Retention. Set retention to the maximum (14 months on free tier). Then for each report you care about, click the share/export icon and pull a CSV. Tedious but reliable.
Option B: BigQuery export. If you're on a GA4 property with BigQuery linking enabled (free tier), all your raw event data is sitting in BigQuery already. bq export it to GCS, download, done. This gives you the actual raw events, not aggregated reports, which is what you'd want if you ever need to recompute metrics later.
What to export at minimum:
- Top pages (last 12 months)
- Top traffic sources / channels
- Top countries
- Conversions / events (if you set any up)
- Real-time / recent activity, exported as a snapshot
Plausible, Fathom, and Matomo all ship a "GA import" feature that takes a CSV or connects via OAuth and backfills the basics. You won't get everything, but the year-over-year view in the new dashboard won't be empty either.
Step 4: validate the numbers
After your 7-14 day parallel period, compare yesterday's totals on both tools.
| You'll see... | Why | What to do |
|---|---|---|
| New tool reports 5-15% fewer pageviews than GA | GA counts bot traffic that the new tool filters more aggressively | Trust the lower number. It's closer to real humans. |
| New tool reports 20%+ fewer | Either your snippet isn't on every page, or ad blockers are eating more requests than you'd guess | Audit page templates. Test on incognito + uBlock. |
| New tool reports more than GA | GA's cookie consent banner is suppressing first-pageview consent declines | The new number is correct. GA was undercounting EU traffic. |
| Wildly different geography | GA's geolocation uses Google's IP database; new tool likely uses MaxMind or Cloudflare | Both are roughly accurate. Pick one and stop comparing. |
Don't try to make the numbers match. They can't. What matters is whether the new tool counts in a way you trust going forward.
Step 5: redirect any GA-only integrations
Things that probably depend on GA without you remembering:
- Google Ads conversion tracking. If you run paid ads, this is critical. Switch to Google Ads' own conversion tracking (the gtag still works for that even if you remove GA Analytics). Plausible and Fathom don't replace this; Google's ad ecosystem only talks to itself.
- A/B testing tools (Optimizely, VWO, etc). These often segment users by GA dimensions. Check their integration settings and switch to their native segmentation, or your new analytics tool's API.
- Marketing reports / dashboards (Looker Studio, Databox, anything internal). Re-point or rebuild against the new tool's API.
- Slack alerts / morning emails built off GA scheduled exports.
This step takes the longest in practice. Budget an extra hour per integration.
Step 6: remove the GA snippet
Once the parallel period is done and integrations are migrated:
- Screenshot your GA dashboard for the record.
- Pull the
gtag.jsscript tag from your<head>. - Deploy.
- Open DevTools Network and confirm no requests fire to
google-analytics.com,googletagmanager.com, org.doubleclick.netfor the analytics property.
You can leave the GA4 property dormant for a month or two before deleting it. There's no rush. Once you're confident the new tool is your source of truth, delete the property from GA Admin (Account > Trash) and remove the data via Property > Data Settings > Data Deletion.
If you serve EU traffic, this is also the moment your cookie banner can drop or shrink. Without GA's cookies, the legal basis for the banner is gone (assuming you're not running other cookie-dropping scripts like Facebook Pixel).
Common gotchas
GA's "session" metric doesn't exist in privacy tools. Plausible and Fathom show "visits" which is similar but defined differently. Matomo has sessions but counts them differently from GA4. If a number is "wrong" by exactly the ratio of sessions to pageviews you used to see, this is why.
Goal/conversion numbers will not match. Your previous "thank you page" conversion count in GA includes bot traffic and double-counts users who refresh. The new number will be lower and more accurate.
Search Console will keep showing GA-related data for a while. GSC continues to surface "discover this URL in Analytics" links for months. Ignore them. GSC and your analytics tool talk to different sides of Google.
Scheduled emails default to UTC. Whichever tool you picked, the first morning digest will land at midnight UTC. Set your timezone in user settings, or you'll get yesterday's report at 4am local and assume the tool is broken.
Backups. Keep your GA CSV exports somewhere durable (S3 / Backblaze / a private Git repo). You're not getting them back if you need them and didn't save them.
If you run multiple sites
The whole sequence above is a "do once per site" operation. If you operate 5 or 30 sites, doing it serially is still the right move (parallel running is the point), but you'll lose the "consolidated morning view" GA gave you across properties as a side effect.
That's the wedge Trafnova was built into. After your sites are on Plausible / Fathom / Matomo / whatever, Trafnova sits as a layer that emails you one digest across the whole portfolio every morning, with anomaly alerts when one site spikes or dies. If you only run one site, none of this applies. If you run five or more and the daily dashboard-switching is the actual reason you've been putting off the GA migration, that's our problem to solve.
FAQ
Will my SEO suffer if I remove Google Analytics? No. GA is not a Google ranking signal. The myth comes from old advice mixing up GA, Search Console, and Tag Manager. Search Console is the one that matters for SEO, and you keep that.
How long should the parallel run be? Minimum a week. Two is better, especially if your traffic is bursty or you're going through a launch / holiday / seasonal moment. Three weeks is overkill unless you're paranoid.
What about Google Tag Manager? GTM and GA are different products. GTM is a script loader; GA is a data product. Keep GTM if you have other tags to manage, just delete the GA tags inside it. If GA was the only reason GTM was on the page, drop GTM too and inline the remaining scripts. GTM's loader is ~30KB on its own.
Do I need a cookie banner with Plausible / Fathom? No, not for analytics consent in the EU. Both products are cookieless by default and don't process personal data under GDPR's definition. The ICO (UK) and CNIL (France) have publicly indicated this. You may still need a banner for other cookies (Facebook Pixel, Hotjar, marketing scripts) if you use them. The cookieless analytics and GDPR guide walks through the law and the DevTools audit to verify a vendor's claim.
What if my marketing team won't let me remove GA? That's an org problem, not a technical one. The standard compromise: leave both running in parallel. You pay the GA performance cost, but the marketing team gets the new tool's faster UI for daily work. After a quarter of opening the new dashboard first thing every morning, most teams stop defending GA themselves.
Will I lose my Search Console data? No. GSC is a separate product. It keeps working whether you have GA or not.
Tracking 3+ sites?
Trafnova sends one morning email with what changed across all of them. Cookieless, GDPR-clean, daily AI digest, anomaly alerts. Free during beta.
Start free