Measure AI visibility: one reading does not hold
Measuring AI visibility means counting how often an engine cites your site in its answers. The trap is that a single reading says almost nothing: our measurements show the sources change from one call to the next. Fast Growth Advisors publishes its method, its cost and its dated readings, with the link to run each search again.
How do you measure AI visibility?
In three steps, and none of them is optional. Put the questions your buyers actually type. Archive the full answer, not just whether you were cited. Keep the link that lets you run the search again.
Without those three, an AI visibility report cannot be verified, and an unverifiable figure is not a measurement.
An example, taken on ourselves. Query audit messaging site web B2B, French market, French language. Six readings between 1 and 2 September 2026. Google writes an answer to all six, and cites https://fast-growth.fr/audit-messaging/ every time. We rank first organically on that query. Run this search again →
Why does a single score mean nothing?
Because it adds up situations that are not fixed in the same place. An engine asked a question does one of three things, and merging them manufactures a false problem.
| What the engine does | What we write | Is action needed? |
|---|---|---|
| It answers and cites your page | The engine cites you | No. Worth protecting |
| It answers without citing your page | The engine answers without citing you | Yes. This is the finding that matters |
| It does not answer | The engine does not answer that question | No. Nothing to measure |
Most tools merge the last two states, because they only read the text of the answer. They then report an invisibility nothing established, on questions where the engine simply wrote nothing.
| Question | State | Cited in | What it really is |
|---|---|---|---|
| audit messaging site web B2B | cited | 6 readings out of 6 | a position held |
| audit commercial startup B2B | cited | 4 readings out of 6 | a passage in the fringe |
A tool measuring once writes “cited” in both cases. On the first question we hold a place, on the second we lose it one time in three. Those are not the same works to undertake, and an average score erases exactly the information that allows a decision.
We met that case while building our question set. On business password managers, two different phrasings produced no written answer at all. The category exists, the market is crowded, and the engine writes nothing. Nobody is invisible there: there is nothing to see.
How many times must the same question be measured?
More than once. We replayed the same question eleven times in a row, seconds apart, on two markets. The result is not the one we expected.
| Market and question | Median overlap of sources | Domains present in all eleven |
|---|---|---|
| France, comparatif logiciel sirh pme | 62 % | 3 of 10 |
| United Kingdom, best hr software for small business | 100 % | 8 of 8 |
Stability is not a property of the instrument, it is a property of the question. On the UK question the engine returns exactly the same eight domains on every call. On the French one, two domains appear only once out of eleven.
So there is a stable core and a rotating fringe. Sitting in the core is a position, appearing in the fringe is a passage. A tool that measures a single time cannot tell them apart, and will report a citation that does not hold.
What this measurement says, and what it does not. Two questions, one per market, on Google AI Overviews. It does not say France is unstable and the UK is stable. It says stability is measured question by question, and that we have not repeated the experiment on ChatGPT or Perplexity.
What must an AI visibility report contain to be verifiable?
Four elements, and their absence shows quickly once you know to look for them.
| Element | Value in the reading |
|---|---|
| Question | audit messaging site web B2B |
| Market and language | France, French |
| First and last reading | 1 September 2026 at 18:40, 2 September at 16:36 |
| Number of readings | 6 |
| Result | cited 6 times out of 6, URL fast-growth.fr/audit-messaging/ |
| Verification link | provided, the search reruns in one click |
| Element | Why it is indispensable |
|---|---|
| The question, word for word | A rephrased question cannot be replayed. The wording decides the result |
| The date and time of the reading | Answers change from one day to the next, sometimes from one minute to the next |
| The verification link | It lets your team run the search again instead of taking our word for it |
| The number of readings | A single reading cannot tell a position from a passage |
The cost makes that requirement affordable. With the provider we use, one question costs four thousandths of a dollar, so 0.20 dollar for fifty. We publish that figure because a measurement at that price has no reason to be replaced by an assumption.
What are you measuring when the engine cannot see your page?
Nothing useful. Before counting citations, you need to know whether the engine reaches the page, whether the text is in the bytes it returns, and whether the extractor keeps it. The third layer is the one nobody looks at.
Our measurements on three B2B software vendor sites, fetched with the GPTBot user agent then run through the three reference extractors, show a considerable gap. In the worst case, trafilatura keeps 23 % of the served text and jusText 18 %.
And the three extractors disagree with each other: on the same page one keeps 23 %, another 40 %. Content can therefore reach one engine and vanish from another, with nothing changing on your side.
| Page | Text served | trafilatura | jusText | Resiliparse |
|---|---|---|---|---|
| HR software vendor A | 25,387 ch. | 59 % | 26 % | 95 % |
| HR software vendor B | 13,425 ch. | 23 % | 18 % | 40 % |
| Scheduling software vendor | 12,832 ch. | 49 % | 35 % | 91 % |
| A page on this site | 9,671 ch. | 92 % | 88 % | 89 % |
What extractors keep, measured on three sites →
White paper, the recoverable message →
How do you know an AI crawler is really the one reading you?
By verifying it, because a declared user agent can be forged in one line. Across 1,129 requests presenting themselves as an AI assistant on our servers, our measurements identify 876 as impersonations. A dashboard that counts AI visits without checking the caller’s identity mostly measures noise.
Verification goes through the IP ranges published by the vendors, a double DNS resolution, or an agent signature.
| Declared agent | Requests | Distinct addresses | Within published ranges | Outside |
|---|---|---|---|---|
| OAI-SearchBot | 454 | 48 | 82 | 372 |
| ChatGPT-User | 419 | 17 | 9 | 410 |
| GPTBot | 344 | 25 | 28 | 316 |
| Perplexity-User | 315 | 4 | 0 | 315 |
| PerplexityBot | 202 | 5 | 0 | 202 |
Out of 1,734 requests declaring an agent whose vendor publishes its addresses, 1,615 came from elsewhere, or 93 %. The addresses presenting themselves as Perplexity were Google Cloud machines and a hosting provider, while Perplexity publishes only eight addresses.
What this measurement says, and what it does not. It covers our two sites, over seven days, and only the agents whose vendor publishes ranges. A published list can be incomplete or lag behind reality, so “outside the ranges” does not prove an intent to deceive. It does prove that a counter of AI visits built on the declared agent mostly measures something else.
Do all AI crawlers look for the same thing?
No, and counting them together mixes two subjects with different consequences. Some collect training material, others build a search index, others read a page at the moment a user asks a question.
| Agent | Declared role | Requests on our servers |
|---|---|---|
| Googlebot | Search index, also feeds AI Overviews | 1,369 |
| Claude-User | Read triggered by a user | 455 |
| OAI-SearchBot | OpenAI search index | 454 |
| ChatGPT-User | Read triggered by a user | 419 |
| GPTBot | Collection that may serve training | 344 |
| Perplexity-User | Read triggered by a user | 315 |
| ClaudeBot | Collection that may serve training | 249 |
| PerplexityBot | Search index, no training according to the vendor | 202 |
| meta-externalagent | Meta collection | 178 |
| Bytespider | ByteDance collection | 162 |
| Applebot | Apple search index | 162 |
| CCBot | Common Crawl public corpus | 49 |
The consequence lands straight in robots.txt. Blocking a training collector costs no citations. Blocking an index crawler or a user-triggered reader removes you from answers. Many sites block the second kind believing they are blocking the first.
What does a complete report look like?
Like this. Every line below is a real measurement on fast-growth.fr, taken between 1 and 2 September 2026, each by a different instrument.
| What is measured | Result | Instrument |
|---|---|---|
| Questions from our market put to Google | 12, six readings each | Question probe |
| Questions where Google writes an answer | 12 out of 12 | Question probe |
| Questions where it cites us | 2, one in the core and one in the fringe | Question probe |
| Source stability, median | 62 % overlap between two readings | Probe, eleven readings |
| Text kept by the extractors | 92 %, 88 % and 89 % depending on the extractor | Three-extractor bench |
| Requests declaring an AI crawler, seven days | 4,358 | Server logs |
| Share outside published ranges, verifiable agents | 93 % | Server logs |
| Search impressions, three months | 4,522 for 49 clicks | Search Console |
| Impressions in generative features | 219, or 4.8 % of the total | Search Console |
| Visitors arriving from an AI answer | 0 | Server logs |
Every line can be replayed, and none rests on an estimate. That is the only thing separating a report from an opinion.
What this report does not say. It gives no global score, and that is deliberate. The lines do not add up: a citation, a share of extracted text and a crawler visit do not offset one another. Nor does it cover ChatGPT or Perplexity in the same way, for lack of an equivalent instrument there.
White paper, counting bots →
876 impostors, what your AI traffic really hides →
FAQ
How do you measure AI visibility?
By putting your category questions to the engines, archiving the answers, and keeping the link that lets you run each search again. Without those three, a report cannot be verified. The measurement also has to be repeated: across eleven readings of the same question, our measurements show a 62 % median overlap of sources on the French market.
Why does a single AI visibility score mean nothing?
Because it adds up situations that are not fixed in the same place. An engine can cite you, answer without citing you, or not answer at all. The third case is not invisibility, it is an absence of measurement. A tool that merges the last two reports a problem nothing established.
How much does an AI visibility measurement cost?
Four thousandths of a dollar per question with the provider we use, so 0.20 dollar for fifty questions. We publish that cost because a measurement at that price has no reason to be replaced by an assumption.
What do the engines answer in your category?
The free diagnostic puts five questions from your category to ChatGPT, Perplexity and Google AI Overviews. Answers archived, verification link included, causes read on both the message and the pages.
