Swapping the tag is the easy part. Everything that goes wrong in an analytics migration happens either before or after it, and all of it is avoidable with a list.
Before you touch anything
Export your history
The single most important step, and the one most often skipped because it is boring.
In GA4, export as CSV with Date included as a dimension. Get at least:
- Daily totals: sessions, users, pageviews
- Pages: date and page path
- Acquisition: date and source/medium
- Geography: date and country
- Technology: date and device, and date and browser
Two years if you have it. Once the property is gone this is not recoverable, and GA4's default retention means some of it is already gone whether you realise it or not.
Do this even if you are not sure you will migrate. It costs twenty minutes and it is insurance.
Write down what you actually measure
Open GA4 and list every conversion event, what triggers it, and what business event it represents. Then find every audience, every custom dimension, every explored report someone relies on.
This is a genuinely useful exercise regardless of whether you migrate. Most people find several conversions that fire on nothing, and two that nobody can explain.
Find every place the tag lives
More places than you think: the site template, Google Tag Manager, a plugin, a hard-coded snippet in a page somebody built four years ago, the marketing microsite on a different domain, the help centre.
Search the codebase for the measurement ID. Then search the CMS. Then check GTM.
Note your definitions
Write down what your current tool means by "session", "user" and "bounce". You will need this in six weeks when the numbers disagree and somebody asks why. They will disagree, and here is why.
The switch
Run both for at least a month
Non-negotiable. Add the new tag, leave GA4 running, change nothing else.
You need the overlap to build a translation between the two — not to make them match, which they never will, but to know by how much and in which direction for your site. A month is the minimum; a full quarter is better if you have seasonality.
Verify the new tag properly
Load a page and check it registers. Then check the things that break silently:
- A single-page app route change, if you have one
- A conversion event actually firing
- The last pageview of a session, by closing the tab
- A page behind a login
- Mobile, on a real device
Import the history
Bring the CSVs in. What matters is that imported days merge into the same tables as new data, so your twelve-month chart spans the switch rather than starting from zero on migration day.
Check that the importer skips days that already have data rather than overwriting them, and that it does not spread daily totals across hours it cannot know about. An import that silently doubles a week is undetectable afterwards.
After
Compare, and expect a difference
Your new tool will report fewer sessions and, usually, more visitors. Both are normal.
Fewer sessions because bot filtering is better and session definitions differ. More visitors, often, because cookieless tools count daily uniques rather than linking people across weeks.
If the gap is large in the other direction — the new tool reporting much more — investigate before celebrating. That is usually double-counting from two tags firing, or bots being counted.
Recheck the gap you cannot see
Both your old and new tools measure from a browser script, so both share the same blind spot. If you have moved to something that can also count in the request path, turn it on for a fortnight and look at the difference. That number tells you how much traffic your analytics has never shown you — including, before now, GA4.
Fix the AI classification
Do this at setup rather than discovering it later. By default most tools file ChatGPT referrals under campaigns, because ChatGPT tags its links, and file Gemini under organic search because the hostname contains "google.". Both are wrong and both are fixable.
Then remove GA4
Only after the overlap period, after the import is verified, and after the dashboards people rely on exist in the new tool.
Remove the tag everywhere — including the places from the audit that you had forgotten. Leave the property itself in place for a while; it costs nothing and it is the last copy of anything you failed to export.
What to tell people
If your organisation has anyone who reads the numbers, tell them three things before the switch, not after:
- The numbers will change, and here is roughly by how much
- The definitions have changed, and here is what they now mean
- The history is intact, and here is where to find it
An unexplained twenty per cent drop in reported sessions destroys confidence in a new tool permanently, even when the new tool is the more accurate one.
Common questions
How long should I run Google Analytics alongside a new tool?
At least a month, and a full quarter if your traffic is seasonal. The purpose is not to make the two match — they never will, because they define sessions and visitors differently and filter bots differently. It is to learn the size and direction of the gap for your specific site, so that when someone asks why the numbers changed you have an answer.
What should I export from GA4 before leaving?
CSV reports with Date included as a dimension: daily totals for sessions, users and pageviews, plus breakdowns by page path, source/medium, country, device and browser. Take two years if it is available. Do this even if you are undecided — it costs twenty minutes, and once the property is deleted none of it is recoverable.
Why does my new analytics tool show fewer sessions than GA4?
Usually two reasons, and both mean the new number is closer to the truth. Better bot filtering removes traffic GA4 was counting as real, and different session definitions mean the same activity is grouped differently. If the new tool reports substantially more rather than fewer, that is worth investigating — it usually means two tags are firing or bots are not being filtered.