- 1 min read
Auditing AI bot traffic
AI crawlers fetch server-side and never trigger your analytics. Find them in the access logs, see what they are served, and set policy per agent.
Quick answer: AI crawlers fetch server-side and never trigger analytics, so access logs are the only record of which assistants read a site and what they were served.
- Machine-Readable Delivery
- AI Search Visibility
- Measurement
Quick answer
How do you find out whether AI crawlers are reading your website?
Additional Context
Sources
- Google Search Central - Google crawlers and user agents
Reference for Google's crawler user-agent tokens, including the Google-Extended control token.
The Blind Spot
Why Your Analytics Cannot See This
Client-side analytics fires when a browser executes JavaScript. An AI crawler requests the HTML and leaves, so the visit never appears in the dashboard the marketing team reviews. The only durable record is the access log kept by your server or CDN, which is why teams can be confident nothing is happening while a meaningful share of their pages is being fetched daily.
This is why measurement belongs before protocol work rather than after it. Deciding whether to restructure a site for AI search visibility is a different conversation once you can see which assistants fetch which sections, and which of them are hitting errors.
What the Log Actually Tells You
Three things, in order of usefulness. First, which agents appear at all - the difference between a training crawler and a live retrieval fetch matters, because the second means an assistant is answering a question about you right now. Second, which URLs they concentrate on, which is rarely the pages you would have guessed. Third, the status codes: a crawler collecting redirects, 404s or 403s from a misconfigured rule is being told your content does not exist, and that failure is completely silent from the inside.
Separating Training From Retrieval
The distinction worth drawing is between agents gathering material for model training and agents fetching a page to answer a live question. They warrant different decisions: the first is a licensing and policy question for the business, the second is a visibility question. Both are controlled from robots.txt, and a blanket block applied without that distinction is the common way a site accidentally removes itself from assistant answers while intending only to opt out of training. Getting that wrong is closer to losing rankings in a migration than to a privacy control.
How to audit AI bot traffic in your logs
A first pass that takes an afternoon and usually changes how seriously the rest of the AI-visibility work gets taken.
Tools Required
- CDN or origin access logs
- A log query tool or spreadsheet
- Your current robots.txt
Steps
- 1
Get access to the right logs
Use the CDN or edge logs if you have them, since they see requests your origin never does. Otherwise use origin access logs. Aim for at least a month so weekly patterns are visible.
- 2
Filter by the published user agents
Search the user-agent field for the documented AI tokens rather than a generic 'bot' match, which will drown you in uptime monitors and scrapers. Keep the exact strings, because vendors publish them and they change.
- 3
Group by agent, URL and status code
Three simple aggregations answer most of the question: which agents visit, what they fetch most, and what they are being served. Anything other than a 200 on a page you want quoted is a finding.
- 4
Cross-check against robots.txt
Confirm the rules in place are the rules you intended. A directive added years ago, or a broad disallow inherited from a template, is a routine discovery at this step.
- 5
Decide policy per agent, not in bulk
Separate training crawlers from live retrieval fetches and decide each deliberately. Blanket blocks are how a site removes itself from assistant answers while meaning only to opt out of training.
Key Takeaways
The Cheapest Useful Step on the List
- AI crawler traffic is invisible to client-side analyticsCritical
These are server-side fetches that never execute JavaScript, so no analytics tag fires. The access log is the only durable record of what was taken.
- Status codes matter as much as visit countsCritical
An agent collecting redirects, 404s or 403s is being told your content does not exist. That failure produces no error anyone sees and can persist indefinitely.
- Training crawlers and retrieval fetches deserve different decisionsImportant
One is a licensing question for the business, the other a visibility question. A single blanket robots.txt rule collapses them and commonly removes a site from assistant answers by accident.
- Measure before restructuring anythingImportant
Knowing which assistants fetch which sections changes which of the remaining protocol decisions are worth making, and in what order.
An afternoon in the access logs establishes whether the traffic justifying AI search work exists at all, and routinely surfaces silent failures that no dashboard reports.
