Why can't Google Analytics see AI bots?

Google Analytics is a JavaScript tag that runs inside a browser after a page loads. AI bots fetch the HTML your server returns and stop, without executing scripts, so the tag never fires and the visit is never recorded. The only places an AI read exists are your server logs and your CDN or WAF, which see every request whether or not anything runs afterwards.

This is not a bug in Google Analytics. It was built to measure humans in browsers, and it does that well. AI is its own visitor, and it needs its own measurement.

What an AI bot request looks like

A bot sends an HTTP request with a user-agent string (ChatGPT-User, ClaudeBot, PerplexityBot, Amazonbot and so on), receives the HTML, and parses the text. It loads no images, runs no scripts, sets no cookies, and fires no pixel. Every client-side analytics product, tag manager, heatmap and consent tool is blind to it for the same reason.

The one place AI shows up in Google Analytics is the second hop: a human who clicks a citation in an AI answer arrives with a referrer such as chatgpt.com, claude.ai or perplexity.ai. That is a real human session, and worth segmenting. It is also the smaller number by a wide margin.

How much is missing

The EU scrape-to-referral ratio ran from 150:1 in Q1 2026 to 227:1 in Q2. A site that measures only the referral side is looking at under 1% of its AI activity.

What a server-side AI analytics view shows

Once the logs are classified, the picture has five parts.

Dimension What it tells you
Agent Which bot, by verified user agent (and which "AI" user agents are spoofed)
Purpose Training crawl, retrieval for a live answer, or search index
Success rate 200s served versus 403s blocked, 404s missed, 5xx failed, per agent and per page
Pages What each agent reads most, and what it never reaches
Referrals Human clicks from AI answers, joined back to the pages agents read

Three examples from our own site in the same 30 days. The coding agent user agent claude-code fetched our State of the Bots report about 1,350 times, more than any other page, which means developers are piping the report into their coding agents. OAI-SearchBot's single most-fetched URL was robots.txt, about 1,000 times, then the homepage, then /careers. ChatGPT-User read product pages, with the homepage, publisher solutions, licensed RAG and the bot paywall page at the top. None of that is visible in a browser-side tool.

One thing to filter out: most of the "unreachable" URLs agents request on our site are vulnerability-scanner probes (/.git/config, /.ssh/id_rsa, /wp-admin) sent under AI-looking user agents. A raw log counts them as AI 404s. A classified view does not.

Where the logs come from

Your CDN or WAF already writes the log. Akamai, Cloudflare, Fastly, CloudFront, Imperva, DataDome and HUMAN all support forwarding it. That is one IT change, and it is the first of the two changes that set up an agent site (the second is pointing a subdomain). TollBit Analytics classifies the forwarded logs into the view above, and the same logs later measure whether a page you published for agents is being read.

Frequently asked questions

Doesn't Google Analytics already filter bots? It excludes known bots from the sessions it has recorded. AI bots never create a session in the first place, because the tag never runs, so there is nothing to filter. The gap is upstream of any filter setting.

Can I see AI referrals in Google Analytics? Yes. Segment sessions by referrer domain: chatgpt.com, claude.ai, perplexity.ai, gemini.google.com, copilot.microsoft.com, and duckduckgo.com for its assistant. That gives you the human click side. The read side still needs server logs.

Will a server-side view slow my site or change my pages? No. It reads a copy of logs the edge already produces, after the fact. Nothing is injected into pages and no request is delayed.

Related