ChatGPT visibility: the engine does not see your site the way you think
ChatGPT visibility is how often the engine cites your site in its answers. It does not hand back a list of links: it writes, then names two to five sources. OpenAI crawlers do not execute JavaScript, and extractors discard part of what is left. Fast Growth Advisors measures that gap page by page, with a dated reading and the link to reproduce it. Across three vendor sites run through the three extractors, less than a third of the text survives in the worst case.
Note, 9 October 2026. This page describes what engine crawlers and corpus pipelines read: their reading decides citations. Browsing agents (ChatGPT agent, Claude in Chrome, Comet) read something else. They open the page in a real browser, on behalf of a user, and see what JavaScript displays. CSS-hidden text and collapsed FAQs escape them. The text says so where it matters.
How do you get cited by ChatGPT?
You need a message readable without JavaScript, then an extractable one. Those are two different things, and the second one is almost always forgotten.
A ChatGPT citation is a link to your page among the two to five sources listed under the answer.
GPTBot, OAI-SearchBot and ChatGPT-User do not execute JavaScript. That is measured, not assumed. Everything rendered after page load disappears: client logo carousels, third-party review widgets, toggle pricing tables, animated figures, case studies in modals. The engine can then say what the company does, but not what sets it apart, and it cites the competitor who put its proof in plain HTML.
Counter-intuitive but verified by Fast Growth Advisors: text hidden by CSS remains readable to crawlers. Without JavaScript there is no CSS applied. What a site hides is therefore extractable, including leftovers from an old redesign. ChatGPT agent, which displays the page for a user, does not see it.
Do ChatGPT and Google work the same way?
Merging them corrupts any measurement, and that is exactly what tools returning a single score do.
| Question | OpenAI crawlers | Googlebot |
|---|---|---|
| Do they execute JavaScript? | No | Yes |
| When do they read the page? | At answer time | At crawl, then at index |
| Share of 404s encountered | 34.8 % | 8.2 % |
One OpenAI crawler request in three lands on a page that no longer exists, against one in twelve for Googlebot. That is a consequence nobody draws. Your redirect plan, usually treated as a technical chore, becomes a visibility matter: a dead URL is a lost source.
Counting those visits properly means verifying crawler identity, because the declared agent can be forged.
Across 1,129 requests claiming to be an AI assistant, our measurements identify 876 as impersonations. White paper, counting bots →
What does ChatGPT search for when you talk to it?
Not the sentence your customer actually typed. Each model rewrites the prompt before searching, and each one differently: Fast Growth Advisors logged the queries four engines actually issued on 6 August 2026, on the same 20 prompts.
| Step | Exact text |
|---|---|
| What the user writes | Quels outils ou agences comparer pour suivre la visibilité d’une marque sur ChatGPT, Gemini et Perplexity ? |
| What ChatGPT searches for | monitor brand mentions on ChatGPT tools |
| What Claude searches for | outils suivi visibilité marque ChatGPT Gemini Perplexity |
Neither ChatGPT nor Claude searches for the sentence the user typed. And on this subject, ChatGPT translates it into English on the way.
So your page has to answer the engine’s words, not only the buyer’s.
Which language does ChatGPT search in for you?
“ChatGPT searches in English” is wrong in general. In the Fast Growth Advisors language study, across thirty prompts and fifteen sectors, it issued 40 French queries against 34 English ones. So it searches in French more often.
IT is the exception: 100 % of the queries ChatGPT issues there are in English.
| Sector | Queries issued in English |
|---|---|
| IT | 100 % |
| Cooking | 91 % |
| Automotive | 83 % |
| Banking | 50 % |
| Health | 33 % |
| Insurance | 17 % |
| Law | 14 % |
| Real estate | 10 % |
So it is not the engine that decides the language, it is the subject. On nationally regulated subjects, law, real estate, insurance, health, it stays in French. It switches where the authoritative sources are in English, and B2B software is one of those.
Claude and Gemini do not switch: 34 French queries against 3 English for one, 35 against 0 for the other.
A second-language version is therefore not a translation, it is a source in its own right. Why translation is never enough →
Keywords that matter are not your customers’. They are the ones the engine writes on their behalf. Nobody looks at them, because nobody collects them. They are readable in each engine’s answer, and therefore measurable.
Seven times out of ten, ChatGPT answers without searching
Before choosing sources, an engine decides whether to look for any.
That is the first sort, and the most decisive. When it does not search, nothing you publish can enter its answer. Only the model’s memory speaks, and that memory dates from its training.
| Engine | Searches | Prompts |
|---|---|---|
| Perplexity | 100 % | 20 of 20 |
| Claude | 85 % | 17 of 20 |
| Gemini | 35 % | 7 of 20 |
| ChatGPT | 30 % | 6 of 20 |
ChatGPT searched on six prompts out of twenty in the Fast Growth Advisors reading. ChatGPT is the engine where your content is least likely to be read, and Perplexity the one where it is most likely. Working on ChatGPT visibility without knowing this means optimising for three answers in ten.
Twenty prompts across four engines, two domains. An order of magnitude, not a definitive ranking.
Here is the reading, so you do not have to take our word for it. Query audit commercial startup B2B, French market, French language, six readings on 1 and 2 September 2026. Google cites https://fast-growth.fr/en/messaging-audit/, the English version of our page, on three of them, and the French version on a fourth. Run the “audit commercial startup B2B” search again →
Google is not translating the query.
It cites the page it has ranked: on this French query, it is our English page that surfaces at rank six. On audit messaging site web B2B, where our French page ranks first, it cites that one six times out of six and never the English one.
A page better built in the other language can therefore capture a query it was never aimed at. That is an opportunity as much as a warning about the page that should have surfaced.
What is left of your page after extraction?
An engine crawler does not read your page, it reads what an extractor pulls out of it.
A full diagnostic has three layers: can the engine reach the page, is the text in the bytes it returns, and does the extractor keep it. That third layer is the one nobody looks at, and often the one that costs.
Fast Growth Advisors measured three B2B software vendor sites, two in HR software and one in workforce scheduling. Each page was fetched with the GPTBot user agent, exactly what the OpenAI crawler receives, then run through the three reference extractors: trafilatura, jusText and Resiliparse.
| Page | Text in served HTML | trafilatura | jusText | Resiliparse |
|---|---|---|---|---|
| HR software vendor A | 25,387 characters | 59 % | 26 % | 95 % |
| HR software vendor B | 13,425 characters | 23 % | 18 % | 40 % |
| Scheduling software vendor | 12,832 characters | 49 % | 35 % | 91 % |
| This page | 9,671 characters | 92 % | 88 % | 89 % |
On HR software vendor B, trafilatura keeps only 23 % of the served text, and jusText 18 %.
Four fifths of what the page says never reaches the engine. Yet the page weighs 713 kilobytes. Plenty of code, little text, and most of that text discarded by the extractor.
A second lesson lies elsewhere: the three extractors disagree with each other.
Same page, 23 % for one, 40 % for another. Your content can reach one engine and drop out of the next without a single change on your side.
We devoted a whole white paper to what survives extraction and what disappears, with a demonstration page and the full output of the three extractors. White paper, the recoverable message →
What this measurement says, and what it does not. It covers extraction, not rendering: the bytes measured are the ones the crawler receives, without JavaScript. Whatever a browser shows on top, thanks to JavaScript, adds to this loss instead of replacing it. And three pages are not a statistic: this is a demonstration of the mechanism, reproducible on your own site in ten minutes.
How do you measure your ChatGPT visibility?
Put your category questions to it, archive the answers, and keep the link that lets you run the search again. Without those three, a visibility report cannot be verified.
One reading is not enough. We replayed the same question eleven times in a row: on the French market the sources changed from one call to the next, with a median overlap of 62 %. There is a stable core and a rotating fringe. Appearing once is not holding a position.
| Cited domain | Present in | Status |
|---|---|---|
| apogea.fr | 11 / 11 | core |
| quel-sirh.fr | 11 / 11 | core |
| culture-rh.com | 11 / 11 | core |
| combohr.com | 9 / 11 | fringe |
| ringover.fr | 7 / 11 | fringe |
| youtube.com | 6 / 11 | fringe |
| bakertilly.fr | 4 / 11 | fringe |
| agendrix.com | 4 / 11 | fringe |
| factorial.fr | 1 / 11 | fringe |
| skello.io | 1 / 11 | fringe |
Three domains out of ten hold a position. Two appeared once. A tool that measures a single time cannot tell them apart, and will report a citation that does not hold. Run the “comparatif logiciel SIRH PME” search again →
This reading covers Google AI Overviews, where we have a measuring instrument. We have not measured ChatGPT stability in the same way, and we do not assume it is identical.
Three outcomes, kept apart. On a given question, ChatGPT cites you, answers without naming you, or gives no answer. That last case proves no invisibility, since there is no answer to measure. A tool that lumps the last two together flags a problem nobody observed.
Measuring visibility does not tell you why it is missing. One cause gets checked before any tuning: does the page say what you do, for whom, and why you? That is what Message-Market Fit measures. In the Fast Growth Advisors Observatory, readiness for AI engines is the weakest of the fifteen criteria, at 0.91 out of 5. The messaging audit measures all fifteen.
The Google AI Overviews barometer, method and editions →
Make your expertise citable by ChatGPT and Claude →
Your site is not invisible to AI, it is unreadable →
FAQ
What does it take to get cited by ChatGPT?
Make your message readable without JavaScript, then extractable.
OpenAI crawlers, GPTBot, OAI-SearchBot and ChatGPT-User, do not execute JavaScript: that is a measurement, not an opinion. Anything your site renders after page load, logo carousels, third-party review widgets, animated figures, does not exist for them. What remains is the text your server sends. And keep visible whatever carries a proof: ChatGPT agent, which displays the page for a user, sees neither CSS-hidden text nor folded FAQs.
Are ChatGPT and Google AI Overviews the same thing?
No, and merging them corrupts any measurement.
Googlebot executes JavaScript, OpenAI crawlers do not. Google cites pages it has already ranked, ChatGPT queries the web at answer time. A tool that returns one score for both is adding up two different mechanisms.
How do I know whether ChatGPT cites me?
Put your category questions to it, archive the answers, keep the search link.
One reading is not enough: answers vary from one call to the next. At Fast Growth Advisors we keep three states apart and never merge them: the engine cites you, it answers without citing you, or it does not answer that question at all.