Most writing about GEO and AEO (answer engine optimisation) is inference. Someone watches a chatbot answer, notices their brand missing, and reasons backwards to a cause. At Fast Growth Advisors, no finding about AI engines is produced that way, because inference and measurement are not the same claim.
We wanted to see rather than infer. A fixed panel of buyer questions, actual questions in natural language, sent on a schedule to the four engines that expose an API. For each response we log three things: whether the model searched at all, which queries it issued, and which sources it named.
On the receiving end, server logs, not an analytics tag.
Two independent instruments, no circularity.
What follows is a field report. Citations come from the API side, traffic from the log side, and neither validates the other. That’s the point.
The model doesn’t search for your question
Query rewriting reorganises how you think about content.
The model doesn’t hand the user’s string to an index. It rewrites it into several queries of its own phrasing, then retrieves against those. The APIs return those queries in a dedicated field, so this isn’t inferred, it’s read.
Which means keyword work aimed at the buyer’s phrasing targets a string that was never sent anywhere.
A question about choosing a vendor can expand into queries about pricing, integration constraints, and alternatives. None of them contain the words the buyer typed.
The language doesn’t survive the rewrite
A French prompt frequently produces English queries. Those English queries retrieve English pages, and the English page is what gets summarised and quoted back to a French-speaking buyer.
For any company operating outside English, this reverses a common assumption. Your local-language site is not automatically what represents you locally.
A thin English version nobody maintains becomes your representative.
Caveat worth stating, because it matters: query language is inferred from the query text by heuristic, and a meaningful share stays undetermined. The direction is clear. The precise ratio isn’t, on a sample of this size.
Sometimes there is no retrieval at all
Some answers are composed entirely from training data. No queries, no fetches, nothing published this quarter can reach them.
Whether retrieval happens depends on the pairing of question and engine, not on the engine alone.
The same question triggers a search on one and pure recall on another. Which is why “engine X never cites us” is usually a statement about a category of question rather than about the engine.
This distinction is operational. If you don’t log the queries, you can’t tell “we weren’t retrieved” from “nothing was retrieved”. The first case is a content problem. The second means your effort belongs elsewhere entirely.
The fourth finding, already published
Server side, a hit claiming to be an AI user-agent proves nothing. User-agent strings are declarative and forged constantly, the verification is a reverse DNS (Domain Name System) lookup against the address ranges the vendors publish themselves, and the share of self-declared AI fetches that survives that check is far below what dashboards report. We covered that work in full, with the numbers: 876 impostors over thirteen days.
One operational thing to take from it here: bots don’t execute JavaScript, so your analytics tag sees none of this. It’s in the server logs or it’s nowhere.
Where this goes blind
Google AI Overviews and Copilot expose no official API. Nobody measuring this way is measuring those two, and a tool reporting a unified score across all engines is filling that gap with something other than measurement.
Generative output is non-deterministic, so a single reading is noise.
What makes it data is repetition on a fixed protocol, plus control pages that receive no optimisation. Without them nothing observed can be attributed to your work rather than model drift.
And sample size. A panel of a few dozen prompts over one pass supports no statistical inference. Large gaps are readable, a five-point difference would mean nothing.
What I’d tell someone starting
Read the queries before optimising anything. Get the actual expansions for the questions that matter in your category, in whatever language they came back in, and compare them with what your pages answer. Most teams find content answering questions no engine ever asked, and queries landing on pages they never wrote.
Then fix the extractable layer. An engine restitutes what a page states plainly, it won’t infer positioning from a layout, open a PDF, or read logos rendered as images. We took that layer apart in your site isn’t invisible, it’s unreadable.
Whatever isn’t written explicitly doesn’t exist to retrieval.
The narrow, checkable version is the only version worth having. It’s less impressive than a dashboard, and it survives being asked how it was produced.
I’d rather be corrected on the method than right by assertion. If you’re measuring this differently, or if something above contradicts what your own logs show, I want to know.
FAQ
Why does an AI engine rewrite the user’s query?
Because it doesn’t hand the string it received to an index. It derives several phrasings of its own, then retrieves against those. The APIs return those queries in a dedicated field, which makes them readable rather than a matter of guesswork.
Does a French prompt produce French queries?
Not reliably. A share of the issued queries comes back in English and retrieves English pages, so the page summarised for a French-speaking reader is not always yours. Query language is inferred from the query text by heuristic, so the direction is clear while the precise ratio is not, and a meaningful share of queries stays undetermined.
How do you know whether an engine searched at all?
By logging the queries issued for every answer. Without that log, nothing separates a page that was not retrieved from an answer composed with no retrieval at all. The two call for opposite decisions, since the first is a content problem and the second moves the effort elsewhere.
Can Google AI Overviews be measured this way?
No. Google AI Overviews and Copilot expose no official API, and nobody measuring through API queries is measuring those two engines. A tool that still reports one unified score across every engine is filling that gap with something that is not a measurement at all.
