Put two analytics tools on the same website and they will report different numbers. Every time, on every site. This is normal, it is explicable, and once you know where the gap comes from it stops being worrying and starts being useful.
Five causes, in the order they usually matter.
1. One script gets blocked more than the other
This is the big one, and on most sites it accounts for more of the gap than the other four put together. Ad blockers and privacy extensions ship with lists of domains to block, and the largest analytics domains are on all of them. A blocked request is not recorded as a miss — it simply never happens, so the report looks complete.
How much it matters depends entirely on who reads your site. A developer audience blocks heavily; a general consumer audience blocks far less. Our script is 1270 bytes and served from a domain with no advertising history, so it tends to be blocked less — which is why sites running both usually see more traffic reported here, not less.
A diagram showing one hundred real visits arriving at a website. A widely-blocked analytics script records seventy of them while a less-blocked script records ninety-four. The twenty-four difference is visitors that one tool never heard about.
2. They disagree about what counts as a robot
A large share of traffic to any public website is automated — crawlers, uptime monitors, link previewers, AI agents. Every tool filters some of it, and no two filter the same set.
A tool that filters aggressively reports fewer visits and a cleaner picture. One that filters lightly reports more visits and flatters you. Both are defensible choices; they are simply different ones, and the difference lands straight in the gap between your two dashboards.
3. The words mean different things
"Visit", "session", "user" and "bounce" are not standard terms. Each tool defines them, and the definitions genuinely differ — GA4 redefined bounce rate so completely that most advice written about it is now describing a different number.
Sessions are the one that catches people most often. How long a visit stays open with no activity, whether a new campaign tag starts a fresh session, whether midnight ends one — all are choices, all vary, and all change the count.
A table comparing how two analytics tools can differ on the same page view: whether a bot is filtered, when a session expires, what counts as a bounce, and whether a prerendered page view is counted.
4. One of them samples, and one of them waits
Two smaller effects that both move the number.
Sampling. Some tools estimate from a subset once a query gets large, then scale up. The result is close and it is not exact, and it moves between queries.
Processing delay. Some tools show today's data immediately and some take hours to finish counting it. Comparing two dashboards at four in the afternoon can show a gap that has closed completely by the next morning. Always compare whole days that have finished.
5. The scripts are not in the same place
A worthwhile thing to check before concluding anything else. If one script is in the
head and the other is at the end of the body, the second will miss people
who leave quickly. If one is fired by a tag manager that waits for consent and the
other is not, the difference is everybody who did not consent.
That last case is easy to overlook and large. It is also one of the quieter arguments for measuring without a banner at all — there is nothing to wait for, so nothing is lost while waiting. How cookieless analytics works covers the mechanism.
What to do about it
- Run both tools for a month before you conclude anything. You are learning a ratio, not hunting a bug.
- Compare completed days, never today.
- Pick one tool as your system of record and judge it against itself over time. Two sources of truth is none.
- Write your ratio down. Once you know this tool reads about fifteen per cent above that one, every future comparison takes ten seconds.
If you are partway through a move, what imports and what cannot lists the specific differences to expect in your history — and how to judge an alternative is the wider question if you have not decided yet.