Why do different analytics tools show different numbers?
Run two analytics tools on one site and they'll disagree by 10–30% — with both correct by their own rules. The six causes of the gap, which number sits closest to the truth, and how to work with it.

Two tools, one site, two answers
Install two analytics tools on the same site and check them the next morning: the numbers won't match. A 10–30% gap is routine, bigger ones aren't rare, and the usual reaction — one of these must be broken — is almost always wrong. Each tool is counting correctly by its own definitions; the definitions just differ in half a dozen places at once.
The gap matters because sooner or later a decision hangs on it: an investor asks for traffic, an ad platform reports conversions your dashboard doesn't show, a client's GA4 disagrees with your report. Knowing where the differences come from turns an awkward discrepancy into an explainable one.
The six causes
Nearly every tool-to-tool gap decomposes into some mix of six causes:
- Bot filtering. Some tools filter crawlers aggressively, others barely; server-side counters filter nothing. Bots are a double-digit share of raw requests, so this alone moves numbers substantially.
- Adblockers. Blocklists target some scripts more than others — Google Analytics most of all. In a tech-savvy audience, a quarter of visitors can be invisible to one tool and visible to another.
- Consent banners. Cookie-based tools lose everyone who declines — commonly 30–50% of EU visitors. Cookieless tools keep counting, banner-free. This is often the single biggest gap between GA4 and a privacy-first tool.
- Definitions. Session timeouts vary, GA4 redefined bounce rate entirely, and 'unique visitor' depends on how a tool recognizes a returning browser. Same behavior, different labels — most of it lives in the three-number hierarchy.
- Sampling and thresholding. GA4 samples large queries and hides small report rows for privacy, so its reports can omit data its own raw counts contain.
- Single-page apps. Client-side navigation only counts as pageviews if the tool tracks route changes. On the same SPA, a tool that does can show five times the pageviews of one that doesn't.
Which number is closest to the truth?
There is no true count to be closest to — 'a visitor' is partly a definition — but the errors do rank. Server logs sit furthest from human reality: they overcount, inflated by every bot on the internet. Cookie-based scripts behind a consent banner undercount, missing the decliners and the adblocked. A cookieless client-side script sits closest for counting humans: it dodges the consent gap, still loses some adblocked visits, and filters most bots by requiring a real browser to execute.
So: hosting dashboard highest, cookieless counter in the middle and most honest, consent-gated GA4 lowest. If your tools bracket a number in that order, nothing is broken — that's the expected shape.
How to work with numbers that disagree
Pick one tool as the source of truth and let it settle internal questions; which one matters less than the consistency. Read trends, not levels — the level is an artifact of definitions, but a trend is trustworthy within one tool. And never compare across tools: this week in tool A against last month in tool B manufactures insights out of methodology.
When someone else's number disagrees with yours — an ad platform, a client's GA — reconcile the definitions before doubting the data: whose bots, whose consent gap, whose session timeout. A number from SimilarWeb or a similar checker belongs to a different category entirely: that's a model, with error bars of its own.
The practical takeaway
Tool disagreement is structural: bots, adblockers, consent, definitions, sampling and SPA handling each move the count, and no two tools make the same six choices. Expect a 10–30% spread, and pick one source of truth to read direction from. The reconciliation energy is better spent on questions a traffic count can't answer anyway — like which sources produce paying customers.


