Why Your Website Analytics Show Visitors Who Were Never There

September 4, 2026 · 6 min read

A spike in visitors with no sales behind it is usually not a mystery. It is a crawler that runs JavaScript, and your analytics has no way of knowing the difference.

The visitors who never existed

A website owner opens the analytics dashboard, sees a day with three times the usual visitors, and starts looking for what worked. There was no campaign. Nothing was shared. The visitors came, viewed a page each, and did nothing at all.

That day is worth understanding, because acting on it is expensive. It sends people chasing a channel that does not exist, or worse, convinces them that a channel is working when the humans behind it are absent. The most misleading part is the country breakdown: a single crawler running from one region can make a market look alive when nobody in it has ever seen the site.

Why crawlers get counted as people

Analytics works by running a small script in the visitor’s browser. Anything that runs that script is a visitor as far as the tool is concerned. Simple crawlers only read the HTML and never touch it, so they stay invisible. But the newer generation of fetchers — the ones an AI assistant uses to check a page before it answers a question about you — render the page like a browser does. They run the script. They get counted.

So does everything else that drives a real browser without a person in front of it: uptime monitors, screenshot services, SEO auditors, security scanners, and any developer running an automated test against your live site.

How to recognise them in your own numbers

Five signals, in order of how quickly they settle the question:

The operating system is missing or strange. Analytics guesses the OS from the user-agent string. Crawlers often send one with no operating system in it at all, so they land in an "unknown" or oddly-named bucket that real phones and laptops never use.

Every page, exactly once, within a minute. A person reads one or two pages. A crawler walks your whole menu — home, pricing, terms, contact, every language of the blog — in the time a human takes to read a headline.

The same screen width every time. Real visitors bring hundreds of different viewport sizes. Automated browsers default to one, over and over.

No interaction of any kind. No scroll, no click, no outbound tap on the phone number. If a whole day of "visitors" produced zero interactions, they were not visitors.

A concentrated burst. Human traffic follows waking hours and spreads across them. A crawl arrives in one block and stops.

The fix: never count them in the first place

Filtering afterwards means you have already read the wrong number once, and dashboards are rarely re-read. It is better to decide before the analytics script starts. Three checks catch nearly everything, and all three are available to the page in the first instant it loads: the automation flag every WebDriver-controlled browser sets on itself, a user-agent that names a known crawler, and a viewport with no width — a page that was never laid out for anyone to look at.

If any of them is true, do not initialise analytics at all. No page view, no session, no country. The crawler still gets the whole page, exactly as before, which is the outcome you want: it can read you, quote you and recommend you. It simply stops appearing in the count of people who might buy something.

Keep the crawlers, lose the mirage

The instinct after discovering this is to block the bots. Resist it. For a local business, being readable by an answer engine is turning into a real source of customers: someone asks an assistant for a barber near them, and the assistant answers from pages it has read. A site that blocks those fetchers is invisible in that answer. Every website blasa publishes welcomes them on purpose, with structured data and a plain-text summary written for exactly that use.

What you should get rid of is the illusion. Two numbers matter for a local business site, and neither is a page-view total: how many people contacted you, and where they came from. A dashboard that counts crawlers as customers hides both. Checking what search engines and assistants actually see of your site tells you far more than a visitor count ever will.

Questions people actually ask

Why did my website traffic spike with no sales or enquiries?

The most common cause is non-human traffic that executes JavaScript: AI crawlers, SEO tools, uptime monitors and headless browsers. Analytics tools record a visit when their script runs, and these agents run it. A spike concentrated in one day, on one country, with every page viewed once and nothing clicked, is almost always machines.

Do AI crawlers like GPTBot show up in Google Analytics?

Some do. Crawlers that only read the HTML never run the analytics script and stay invisible. The fetchers that render a page the way a browser does — the ones behind AI assistants answering a question about your site — execute the script and get counted as visitors. Google Analytics filters a published list of known bots, but that list lags behind new agents.

How can I tell bot traffic from real visitors?

Look for the pattern, not the number. Bots arrive in one burst, view many pages in seconds, have no referrer or an odd one, report a missing or unusual operating system, use the same viewport width every time, and never trigger a click, a scroll or a form. Real visitors are spread through the day and do at least one of those things.

How do I filter bots out of my analytics?

Do not send the event in the first place. Before your analytics script initialises, check whether the browser is automated — the WebDriver flag that Playwright, Puppeteer and Selenium set, a user-agent that names a crawler, or a viewport of zero — and skip initialisation entirely. Server-side filtering after the fact works too, but by then the numbers have already been reported to you once.

Should I block AI crawlers from my website?

Usually not. Being read by an answer engine is how a small business gets recommended when someone asks an assistant for a plumber or a restaurant. The problem is not that they visit, it is that they are counted as customers. Keep letting them in, and keep them out of the numbers you make decisions with.

Build your free website

Paste your Google Maps link. Free to publish, live in minutes.

Build your free website →

Websites blasa built

Real businesses. Every line on them comes from their own Google reviews.

Browse all of them →