Skip to content

Client-side vs server-side analytics

Updated October 19, 2026

There are two places to measure a website: in the visitor's browser, with a small script, or on your server, from the requests it receives. They see different things.

Client-side: a script in the browser

The script runs when the page loads in a real browser and reports the visit.

  • Sees: people. Bots that do not run JavaScript never run the script, so most automated traffic is filtered out by design. It also sees what happens on the page: clicks, scrolling, events, single-page navigation.
  • Misses: visitors whose browser blocks the script (see ad blockers), and requests that never become a page view: API calls, files, feeds.

Server-side: requests your server receives

Every request reaches the server, so logs or a server-side tracker can count all of them.

  • Sees: everything, including visitors with blockers, and every bot, crawler and scraper.
  • Misses: what happens inside the page after it loads. And it has to separate people from bots itself, which is hard: many bots pose as browsers.

Why the totals differ

Server-side numbers are usually much higher than client-side ones, and the difference is mostly automated traffic. That is why client-side analytics remains the usual way to count people.

AI crawlers: a job for the server

AI companies' crawlers (GPTBot, ClaudeBot, PerplexityBot and others) run no JavaScript, so no analytics script ever sees them. Only the server knows they came. Statsdot combines both: the script counts people, and your server reports AI crawler requests with a key, so you see which pages AI tools read.

Choosing

  • Counting visitors and conversions: client-side.
  • Bots, crawlers, files, APIs: server-side.
  • Both, when AI search matters to you: people from the script, crawlers from the server.