We ran Kantan next to Google Analytics for seven weeks. Here is everything we found.
One real WordPress site. Both tools on every page. The same 51 days. Kantan recorded the same organic search traffic as GA4, within 1%. Then its bot filter threw some of it away, the totals stopped matching, and the test found four bugs in Kantan. We fixed them the same day.
One site, two tools, the same days.
Pure Golf Players Club runs WordPress with ACF. It had GA4 and Kantan Analytics installed on every page from 8 August to 27 September 2026. A Meta ad campaign ran from 7 to 18 August, so the window has paid social traffic as well as search.
We read GA4 through its Data API. We read Kantan twice: the dashboard number, and every raw session row straight from the database, so we could see what the bot filter removed and why. Both sides count days in Pacific Time (America/Los_Angeles), the time zone of the GA4 property.
Three totals. None of them is “the” answer.
- GA4: 975 sessions. What Google counts after its own bot filter.
- Kantan, raw: 1,209 sessions. Every visit Kantan stored, including bots that hide what they are.
- Kantan, dashboard: 575 sessions. What is left after Kantan’s bot filter.
If you only compare the totals, Kantan looks broken in both directions — 24% higher than GA4 before filtering, 41% lower after. Neither is the useful comparison. The useful one is channel by channel, and the cleanest channel is organic search.
Organic search: 318 against 322.
A visit from a Google result is the hardest kind to fake and the easiest to count: a person searched, saw a result and clicked it. On that traffic, Kantan’s raw count was 318 and GA4’s was 322. That is a gap of about 1%.
That number is the real test of the tracker. When the traffic is clean, the two tools see the same visits.
But that is not the number on the Kantan dashboard. The dashboard showed 244 organic sessions, 24% below GA4. The bot filter removed 74 organic visits, almost all of them one page in under a second (section 05). Some of those were real people. So on organic search, Kantan collected the same traffic as GA4 and then reported less of it.
| Channel | GA4 | Kantan dashboard |
|---|---|---|
| Organic search | 322 | 244 |
| Direct | 393 | 233 |
| Paid social / paid | 234 | 73 |
| AI assistants | 14 | 12 |
| Social | 7 | 6 |
| Referral | 3 | 1 |
| Campaign / unassigned | 2 | 4 |
| Total | 975 | 573 |
234 paid social sessions. 8 of them engaged.
GA4 reports 234 sessions from Paid Social, from 233 users, and only 8 engaged sessions. That is 3%. On organic search the same site gets 53%. The Kantan dashboard shows 73 paid visits for the same days.
Kantan’s raw rows show what happened. 151 of the Meta ad visits loaded in the Instagram or Facebook in-app browser and recorded 0 seconds on the page — the page was loaded but never shown. The most likely cause is Meta loading the landing page ahead of a tap that never came. GA4 counts many of those as sessions. Kantan’s filter removes them.
We cannot see inside GA4, so we cannot say exactly how many of the 151 it counted. But 233 users across 234 sessions, with 8 engaged, is not what 234 people reading a page looks like.
Kantan threw away 634 sessions. Here is what they were.
Kantan filters in two places. When a visit arrives, it rejects any browser that names itself as a bot — Googlebot, crawlers, uptime monitors, headless Chrome. Those never reach the database, so they are not in the 1,209. Bots that hide what they are get through, so three more rules run when you read the dashboard:
| Rule | Sessions removed |
|---|---|
| One page, 1 second or less | 579 |
| An 800 × 600 screen (the default size of a headless browser) | 44 |
| Several pages in 0 seconds | 11 |
| Total | 634 |
Most of what the rules caught was not a person:
- 151 Meta in-app ad loads at 0 seconds (section 04).
- About 220 one-second “direct” hits. 44% from outside the US, on the same unusual screen sizes again and again (1800 × 1125, 1366 × 900), and a new visitor ID every time. A real visitor who comes back keeps their ID. This is a bot fleet.
- 44 headless browsers at 800 × 600.
And some of it probably was a person. 133 sessions were one page in under a second: 72 from organic search (64 of them in the US) and 61 from paid ads in in-app browsers. Some are people who left at once. Some are real visits where the browser closed before Kantan’s exit report arrived, so the visit looked one second long. Bug 3 below is that second case.
If we relax “one page, one second”, the bot fleet comes back in with the real visitors. We would rather undercount real people by a known amount than count a bot fleet as an audience.
Four bugs. All fixed, released the same day.
The point of a test like this is to find out where you are wrong. It found four places.
A visitor who read three pages counted for only the page they left from. Landing pages looked weaker than they were.
FIXED IN 2.32.0Top Pages now counts every page view; the session keeps its landing page.
A ten-minute, four-page visit could show as two minutes.
FIXED IN 2.32.0The tracker now sends the time for the whole session as well as for each page, and the server keeps the larger value.
Kantan learned how long a visit lasted from a report the browser sent on the way out. When that report did not arrive, the visit looked one second long, and the bot filter removed it.
FIXED IN 2.32.0The tracker now reports at 5 seconds and again when the page is hidden, so most visits have a duration even if the exit report is lost.
Times came from the database server, from UTC and from the WordPress time zone, depending on where in the code they were written. On this site, one page’s exit was stored six hours after its entry.
FIXED IN 2.33.0Every time is stored in UTC, days are counted in the site’s own time zone, and daylight saving changes are handled. Old rows were converted once on update.
Kantan Analytics 2.32.0 and 2.33.0 both went to WordPress.org on 28 September 2026, the day the test finished. Like every Kantan Analytics update, they are free.
None of the four bugs changed what Kantan collected. The raw rows were right. The bugs were in how the dashboard added them up.
The honest answer is a range.
For these 51 days, the real number of human visits was most likely between 575 (the Kantan dashboard) and about 710 (the dashboard plus the 133 sessions in the grey zone). GA4’s 975 is higher than both, partly because it counts in-app ad loads that nobody saw.
About 85 of the sessions Kantan filtered do not fit any group above. We did not classify them, and we are not going to guess.
If you run two analytics tools, three things from this test are worth keeping:
- Compare by channel, not by total. Organic search is the fairest test of any tracker.
- In GA4, read engaged sessions next to sessions. 234 sessions with 8 engaged is a measurement, not an audience.
- Look at your paid social in-app traffic. If you pay per click, the gap between “loaded” and “seen” is your money.
Frequently asked.
Is Kantan Analytics as accurate as Google Analytics?
At collection, yes: on organic search Kantan recorded 318 sessions and GA4 322, about 1% apart. The dashboard reported fewer — 244 — because Kantan’s bot filter is stricter than GA4’s and removes one-page visits of a second or less, some of which are real people.
Why does GA4 show more sessions than Kantan?
Mostly because of filtering. Kantan removes one-page visits of a second or less, headless browsers and pages loaded in 0 seconds. On this site that removed Meta in-app ad loads that GA4 counted, and a bot fleet.
Why did Kantan record more raw sessions than GA4?
Kantan rejects browsers that name themselves as bots before it stores anything. The rest are stored, and three more rules filter them when you read the dashboard. The raw count includes the bots that hid what they were; the dashboard does not.
Does Kantan undercount real visitors?
It can. In this test, 133 one-page sessions under a second may have included real people who left at once. We kept that rule because relaxing it lets bot traffic back in. Kantan 2.32.0 made this group smaller by reporting visit time at 5 seconds.
Do not take our word for it.
Kantan Analytics is free and runs next to GA4 without any conflict. Install it, let both run for a few weeks, and compare the same days in the same time zone — organic search first.
Kantan’s built-in MCP server lets Claude read your Kantan numbers directly, so you can ask “how many organic sessions did I get between these dates?” and check the answer against GA4 yourself.