Skip to content
White paper · August 2026

The recoverable message: what answer engines read of your site

Twenty edge cases, three extractors, 94 complete 15-criteria audits. A measurement, not an opinion.
Download the PDF
Public document, citable with attribution. Full text below.
Is your message clear to buyers and AI engines? Free diagnostic, results by email.
Check your inbox
A confirmation email has just been sent to . Click the link to start your diagnostic.
FreePublic pages onlyNo commitment

Answer engines read B2B websites without executing their JavaScript, and what they keep can be measured. This Fast Growth Advisors white paper calls recoverable message the share of positioning that survives that read, extraction included. It draws on twenty edge cases submitted to three extractors, and on 94 complete 15-criteria audits of French post-funding startups. One sentence sums up the central result: the narrative survives, the proof dies.

Fast Growth Advisors · August 2026

What does this white paper show, in brief?

That a third reading of B2B websites has settled in unannounced, the one done by answer engines, and that it follows the rules of neither the buyer nor Google.

Fast Growth Advisors establishes three things here.

This reading, to begin with, can be measured. We submitted a test page of twenty edge cases to the three extractors used to prepare the corpora of large models, and several results contradict reflexes inherited from classic search optimisation.

Second finding: French tech fails at it massively, with readability by AI engines rated 0.91 out of 5 across 94 complete 15-criteria audits.

Third finding, and the result that matters: the loss is not uniform. The narrative survives. The proof dies. An engine can then say what the company does, not what sets it apart, and it cites as the category reference the competitor who put its proof in HTML.

From this we derive a new audit measure, the recoverable message, and an action plan that calls for a targeted intervention, not a rebuild.

What does the loss look like, on a concrete case?

Like a page that keeps its narrative and loses its proof: 6 of the 8 tracked elements survive in no extractor.

Fast Growth Advisors built a fictional B2B startup homepage carrying the defects we meet most often in audits: the result figures, the client logos, the testimonial and the pricing grid are injected by JavaScript, and an older version of the positioning was left in the code, hidden by CSS. No such company exists. Both the page, written in French, and the protocol are reproducible.

Fictional Kelvora homepage: a promise, three result figures, six client logos, a quantified testimonial, three prices.
What a visitor sees. The page displays a promise, three result figures, six client logos, a quantified testimonial and three prices.

Here is what three extractors keep from that same page, without executing JavaScript, exactly as the bots that build corpora do. Nothing is reconstructed: these outputs come from actually running trafilatura, jusText and Resiliparse on the served bytes.

trafilatura output

Kelvora accompagne les sites industriels dans leur transition vers un pilotage énergétique innovant et durable.
Demander une démonstrationNous combinons capteurs, modèles prédictifs et expertise métier pour offrir une vision unifiée de la consommation énergétique. Notre plateforme s’intègre à votre infrastructure existante et accompagne vos équipes dans la durée.
Chaque déploiement fait l’objet d’un accompagnement dédié, de l’audit initial jusqu’à la mise en production, avec un suivi continu des performances.
Kelvora divise par deux le coût énergétique d’une ligne de production en quatre-vingt-dix jours, sans arrêt d’exploitation et sans investissement matériel.

jusText output

L’intelligence énergétique au service de la performance industrielle
Notre approche
Nous combinons capteurs, modèles prédictifs et expertise métier pour offrir une vision unifiée de la consommation énergétique. Notre plateforme s’intègre à votre infrastructure existante et accompagne vos équipes dans la durée.
Chaque déploiement fait l’objet d’un accompagnement dédié, de l’audit initial jusqu’à la mise en production, avec un suivi continu des performances.
Nos résultats
Ils nous font confiance
Ce qu'ils en disent
Tarifs
Ancienne version du positionnement, laissée dans le code lors de la refonte
Kelvora divise par deux le coût énergétique d’une ligne de production en quatre-vingt-dix jours, sans arrêt d’exploitation et sans investissement matériel.

Resiliparse output

L’intelligence énergétique au service de la performance industrielle

Kelvora accompagne les sites industriels dans leur transition vers un pilotage énergétique innovant et durable.

Demander une démonstration

Notre approche

Nous combinons capteurs, modèles prédictifs et expertise métier pour offrir une vision unifiée de la consommation énergétique. Notre plateforme s’intègre à votre infrastructure existante et accompagne vos équipes dans la durée.

Chaque déploiement fait l’objet d’un accompagnement dédié, de l’audit initial jusqu’à la mise en production, avec un suivi continu des performances.

Nos résultats

Ils nous font confiance

Ce qu'ils en disent

Tarifs

Ancienne version du positionnement, laissée dans le code lors de la refonte

Kelvora divise par deux le coût énergétique d’une ligne de production en quatre-vingt-dix jours, sans arrêt d’exploitation et sans investissement matériel.
Volume of text kept, and survival of the proof elements, on the demonstration page.
ReadingBytes of textShareTracked elements kept
Seen by a human, JavaScript executed1 450100 %8 / 8
trafilatura70649 %1 / 8
jusText79655 %2 / 8
Resiliparse94965 %2 / 8

Volume alone would be reassuring: between 49% and 65% of the text survives. It hides the point.

What disappears is not spread at random, it is the part that proves. Of the eight elements tracked, the extractors keep one or two, and never the ones that matter: the promise gets through in two of them, the hidden old positioning gets through in all three. As for the six proof elements proper, the three result figures, the client logos, the testimonial and the prices, they survive nowhere.

Two details deserve a pause.

First detail: jusText and Resiliparse keep the section headings, "Nos résultats", "Ils nous font confiance", "Tarifs", but empty. So the engine knows results, clients and prices exist, without knowing any of them.

More awkward, the old promise left in display:none, the one the team believed it had removed, comes back in all three extractors. It is the only commercial figure this page actually transmits, and it is the one it no longer wanted to say.

That leaves the metadata channel: trafilatura does not keep the displayed heading but the og:title, here "Kelvora, pilotage énergétique industriel".

Why does this matter now?

Three dated facts, none of them ours.

According to Demandbase, which published an analysis of more than 11 billion visits on 12 August 2026, visits referred by ChatGPT to B2B websites multiplied by four in a year: roughly 645,000 monthly visits in June 2025, 2.6 million in June 2026, a 303% rise.

IDC (International Data Corporation) projects that by 2028, 70% of B2B buyers in the United States will rely on generative AI to discover, evaluate and select their vendors.

And since 13 August 2026, Microsoft Clarity has displayed a ratio between pages scraped and visitors referred that puts the subject on every executive agenda: about 6,000 pages scraped per referred visitor, in Microsoft’s published example.

On that last figure hangs a debate about compensation which is not our subject.

Our operational question lies elsewhere: since these engines read your pages in volume, what do they keep?

One convention, before we go further. Fast Growth Advisors labels every claim in this document Measured (observed in a published large-scale study, or tested by us and reproducible), Deduced (a necessary logical consequence of a measured fact) or Not verified (circulating without a primary source). A document that skips this distinction ends up circulating inferences as facts. We have experienced that internally, and would rather avoid it in public.

Why think in three stages rather than one?

Because a piece of information can survive the first two stages then die at the third.

Yet the most common mistake is to reason in a single step: “the bot sees the page.”

The first stage is the fetch. An agent requests the URL. It can fail on a firewall that blocks, a missing page, a rate limit, a consent banner that masks the body. Fixing it is an infrastructure job.

At the second, the response, the server returns bytes, and no JavaScript is executed at this point. If the text is not in those bytes, it does not exist for what follows. Here the fix is a matter of rendering architecture.

That leaves the third, extraction.

A tool turns the HTML into text, and discards part of the document along the way. Almost always forgotten, this stage is where Fast Growth Advisors measured the least intuitive results.

Three stages, three causes of invisibility, three fixes with nothing in common. An audit that conflates these three levels produces a false diagnosis and sends the budget to the wrong place, typically towards a technical rebuild when the defect sat in the markup, or the other way round.

Which bots run JavaScript, and which do not?

Googlebot and Applebot run it; answer engine bots do not.

Measured, by Vercel and MERJ (a web analytics firm) in December 2024, across the Vercel network and two third-party stacks: the bots of OpenAI (GPTBot, OAI-SearchBot which is its search bot, ChatGPT-User), Anthropic (ClaudeBot), Perplexity, Meta, ByteDance and Common Crawl do not execute JavaScript. Googlebot and Applebot do render pages, in a headless browser.

One detail settles it: these bots download JavaScript files without executing them.

11.5% of ChatGPT’s requests and 23.8% of Claude’s target scripts, treated as text, never as programs.

Two caveats about freshness come with that picture, and Fast Growth Advisors flags them. Dating from December 2024, the measurement remains the last one published at scale. No model publisher documents its rendering capability, so everything rests on third-party observation, to be reconfirmed periodically.

And rendering now exists elsewhere. Agentic browsers do execute JavaScript, but on the user’s own machine, one page at a time, without writing anything durable.

Hence the paradox that structures this document. Rendering exists, and it happens exactly where it feeds no index. The layer that decides future citations, the one that builds corpora and answer indexes, renders nothing.

What actually survives extraction?

Less than the browser displays, and not always what you think.

Fast Growth Advisors submitted a test page on 29 July 2026 to the three extractors documented in corpus preparation pipelines: jusText, Resiliparse and trafilatura. Twenty unique markers, one per edge case, inside a body of 5,389 characters. That length is not a detail: on a document that is too short, the jusText classifier files everything as boilerplate and the test becomes false. Exact versions are recorded in our test files, and the measurement is to be replayed at every version upgrade.

Content hidden by CSS is read. Any block set to display:none, served by the server, comes back in the text extracted by jusText and Resiliparse. Mechanically, not executing JavaScript means not applying CSS, so the extractor has no way of knowing a block is hidden. Here is the complete inversion of classic search optimisation. Happily, an FAQ folded into a server-rendered details element is read in full. Less happily, rebuild leftovers, A/B test variants and old content left in display:none pollute the reading an engine makes of your positioning.

Nobody audits what their own HTML hides.

The level-one heading is not the title that wins. Trafilatura does not include the h1 in the extracted body. It takes its title from the metadata, and in our test the og:title prevails. That tag everyone treats as decorative, meant for social sharing, is in at least one common extraction chain the title that reaches the corpus. A neglected og:title, or one whose vocabulary disagrees with the h1, creates two competing positionings: one for the visitor, one for the corpus.

What traps does extraction set for audits?

A false positive, an empty shell and silent losses, all three measured by Fast Growth Advisors on the same test page.

First trap, the test recommended everywhere produces a false positive in exactly the case it should detect. Running curl then grep on the raw response finds the phrase you are looking for even when it is injected by JavaScript: it sits as a literal string inside the script block, a portion every extractor discards and no engine reads as content. Measured here: naive search, found; after removing scripts, absent; in the extracted text, absent. Silent and systematic, this false positive forces any serious measurement to strip script and style blocks and comments before searching, or to work on the output of a real extractor.

An empty shell, quantified. A pure client-rendered application serves 128 bytes of HTML. Useful text extracted: zero bytes. Binary, this case is becoming rarer as several platforms now pre-render their sites by default. It still exists, and it forgives nothing.

To which the silent losses must be added: data-* attributes, iframe titles and JSON embedded in the page are lost by all three extractors, even when present in the response.

Image alt attributes are unreliable, and any content inside an iframe, or carried by an image, should be treated as not acquired.

What we do not know

By symmetry, here is what remains not verified and must not be sold as fact. The causal link between server rendering and citation rate: no controlled study exists, and the spectacular visibility gains in circulation come from vendor case studies. As for the share of the web in pure client rendering, no public source measures it. Nor does any model publisher disclose the extractor it actually uses, hence our rule of trusting only what passes all three.

Why does the proof go first?

Because proof is what websites inject through JavaScript.

On a typical startup, text coverage is high. Page body, narrative, promise: all of it gets through. What disappears is concentrated on one precise family of elements: client logos in JavaScript carousels, reviews in third-party widgets, the monthly-annual pricing toggle, dynamic comparison tables, key figures animated on scroll, the integrations list loaded from an interface, case studies in modal windows.

Everything that proves.

What an answer engine then produces is predictable. It can say what the company does and describes the category correctly. It cannot say what sets the company apart, so it cites as the category reference the competitor who put its proof in HTML.

This mechanism combines with a pattern the Fast Growth Advisors Observatory finds in 61% of detailed audits: the figures that prove the value, gains, savings, impact metrics, do exist, but in the press and in funding announcements, not on the website. So proof is doubly absent, editorially then technically. One example from our corpus: a Series B deeptech, 30 million euros raised, a process that cuts production costs by 45%, offers on its homepage “innovative advanced recycling solutions”. Audit score: 24 out of 75.

Where does French tech stand, measured?

Poorly, and it is measured.

Fast Growth Advisors’ Observatory audits the messaging of French post-funding startups. Our measurements cover 375 simple audits, 94 complete 15-criteria audits, and 346 startups cross-referenced with the amount they raised.

The weakest of the fifteen sub-criteria is readability by AI engines: 0.91 out of 5, less than 20% of the potential.

None of the fifteen exceeds 60% of the potential, and the best rated, differentiation and clarity, peak at 52%. It is the weakest point of an already weak set.

Two more markers come from the Q2 2026 edition. Scored out of 75 points (15 criteria, each out of 5), the 83 detailed audits place 75.9% of the startups concerned under the critical threshold of 37.5. As for the amount raised, it barely predicts the messaging score: the measured correlation is close to nil, R² = 0.036, so the two quantities move independently of one another.

Raising 50 million rather than 5 makes neither the message clearer nor the site more readable. Funding does not solve this problem, and neither does adding tools, since it concerns what the site says and the form in which it says it.

How do you get found, and in which language?

Often in English, even for a French buyer.

Extraction decides what is kept from a page already found. You still have to be found, and Fast Growth Advisors’ measurements on the engines themselves add two counter-intuitive results.

The first concerns language.

To answer, the engine does not type the user’s question as it stands: it splits it into several queries that it writes itself.

Those queries can be read in the official interfaces. Measured across two independent corpora, 20 B2B technical questions then 30 questions spread across 15 sectors: on B2B technical subjects, ChatGPT issues 46% of its queries in English for questions asked in French. Software’s reference literature is English, and the engine searches in the language where the authority on the subject lives.

A consequence observed on our own site, with three converging signals but modest volumes, therefore to be confirmed: the page most fetched by ChatGPT, apart from the homepage, is the English version of our AI visibility page, ahead of its French twin.

An English version of a French B2B site does not only serve international clients: it serves French clients, through engines that search in English and answer in French.

Second result: not every subject triggers a search. On our panel, advice questions (“which one should I choose”, “how do I avoid”) are answered from memory, with no page able to weigh in, whereas questions naming entities do trigger queries.

Before investing in a subject, the first measurement: will this engine even search?

What is the recoverable message?

The recoverable message is the share of positioning that survives a read without JavaScript, extraction included.

A messaging audit classically measures two things: the claimed message, what the company says, and the understood message, what the buyer retains. This Fast Growth Advisors document justifies a third, independent of the first two.

None of the three can be deduced from the others.

A message can be clear, differentiating, and still not recoverable. This is in fact the most common case among companies that invested at the same time in their narrative and in a modern site, since it is precisely the most carefully built components, carousels and animated counters, that disappear at extraction.

The useful output is not a score.

It is a location: which precise blocks of the page do not survive, and among those, which carry proof. On the sites we audit, the answer almost always fits in a short list, fixable in one intervention. That makes the subject tractable: the diagnosis is surgical, not architectural.

What should you do on Monday morning?

Start with the thirty-second test: disable JavaScript, reload the homepage, look at what remains.

Here is the rough approximation of the recoverable message, and it is enough to detect the serious cases. It says nothing, however, about what an extractor discards once the page has been fetched, which is the second half of the diagnosis.

In order of return, Fast Growth Advisors then recommends taking the proof out of JavaScript, with logos, figures, testimonials and prices in server-rendered HTML, keeping the animation on top if you wish; replacing hydrated accordions with server-rendered details elements; aligning the vocabulary of the og:title with that of the h1; auditing what your HTML hides, since rebuild leftovers in display:none are read; and checking your redirect plan, since a substantial share of generative engines’ fetch budget is lost on dead pages, 34.8% of ChatGPT’s fetches according to the same Vercel study.

On the llms.txt file, which you will hear about: no major engine has confirmed reading it. Putting one in place costs little.

Presenting it as a lever is an unmeasured promise, and this document makes none.

What are our limits?

Three, written down before anyone points them out.

The Fast Growth Advisors Observatory sample is French and post-funding, it does not describe the web. On our own site, measurements rest on modest volumes. And the reference measurement on JavaScript execution dates from December 2024, which is old for this subject.

As for methodology, the extraction measurements date from 29 July 2026, on trafilatura, jusText and Resiliparse, with versions recorded in our test files. Query decomposition and language measurements date from 5 August 2026, through the engines’ official interfaces with the search tool enabled, across two independent corpora, for a total cost under 20 dollars. The audit figures come from the 2026 Observatory, whose corpus and thresholds are documented in the report.

Every figure in this document carries its base and its date. If one of them does not survive your own test, write to us: that is the whole point.

Frequently asked questions

How does the recoverable message differ from the understood message?

One measures what an engine keeps, the other what a buyer understands.

The recoverable message is the share of a company’s positioning that survives a read without JavaScript, extraction included. It differs from the claimed message, what the company says, and from the understood message, what the buyer retains. A message can be clear, differentiating, and still not recoverable by an answer engine.

Do answer engines execute the JavaScript on my site?

No, not the bots that build corpora and indexes.

According to the Vercel and MERJ measurement of December 2024, GPTBot, ClaudeBot, PerplexityBot and Common Crawl download JavaScript files without executing them. Googlebot and Applebot do render pages. Agentic browsers do too, but on the user’s machine, without feeding any index.

Does switching off JavaScript in my browser show everything an AI loses?

No: this free thirty-second test only detects the serious cases.

It says nothing about the next stage, extraction, where a tool turns HTML into text and discards part of the document. At Fast Growth Advisors, a complete measurement therefore goes through a real extractor, not through a reading of the raw HTML.

Why do my client logos and figures disappear when my text gets through?

Because those elements are almost always injected by JavaScript.

Carousels, review widgets, pricing toggles, animated counters: the body text, by contrast, is server-rendered. The loss is therefore concentrated on what proves, not on what describes, which explains why an engine can say what a company does without being able to say what sets it apart.

Do I need to rebuild my site to be readable by AI engines?

Rarely: a targeted intervention on a few blocks is usually enough.

In most of the cases we audit, the narrative already gets through and it is the proof that is missing. A rebuild is only justified in the binary case of pure client rendering, where the server returns no usable text at all.

Glossary

Seven terms, used by Fast Growth Advisors in the precise sense of this white paper.

Recoverable message

Share of positioning that survives a read without JavaScript, extraction included. It is an audit measure distinct from the claimed message and the understood message.

Extraction

Third stage of machine reading, often forgotten: a tool turns HTML into text and sets aside what it deems boilerplate.

Server rendering

Mode of building pages where the server assembles the HTML before sending it, as opposed to client rendering, which builds content in the browser by executing JavaScript.

jusText

Extractor that separates content from boilerplate by measuring function word density. Lists of proper nouns without sentences are filed as boilerplate, which makes client reference lists disappear.

Trafilatura

Main content extractor that takes its title from page metadata, where the og:title prevails, rather than from the level-one heading.

Resiliparse

Fast extractor from the ChatNoir pipeline, used on very large corpora, which keeps text hidden by CSS.

og:title

Metadata tag originally intended for social sharing. It reaches the corpus in at least one common extraction chain, which makes it structural rather than decorative.

Sources

Nine references. For every external figure, Fast Growth Advisors points to its original publication, and for every tool to its official documentation, before its own measurements.

  1. Vercel and MERJ. The rise of the AI crawler, 17 December 2024. Server log study: none of the major generative bots executes JavaScript, and 34.8% of ChatGPT’s fetches target non-existent pages. vercel.com
  2. Microsoft Clarity. Scrape-to-Referral insights, 13 August 2026. Introduction of the ratio between pages scraped and visitors referred, with a public example of about 6,000 to 1. clarity.microsoft.com
  3. Labs by Demandbase. ChatGPT referrals to B2B websites, 12 August 2026. Visits referred by ChatGPT to B2B sites: about 645,000 per month in June 2025, 2.6 million in June 2026, a 303% rise, across more than 11 billion measured visits.
  4. IDC (International Data Corporation), 2024. Forecast: by 2028, 70% of B2B buyers in the United States will rely on generative AI to discover, evaluate and select vendors. idc.com
  5. trafilatura, official documentation. trafilatura.readthedocs.io
  6. jusText, project repository. github.com/miso-belica/jusText
  7. Resiliparse, official documentation. resiliparse.chatnoir.eu
  8. Nvidia NeMo Curator, a corpus preparation pipeline documenting the use of these extractors. github.com
  9. Message-Market Fit Observatory, Fast Growth Advisors, 2026. 375 simple audits, 94 complete 15-criteria audits, 346 startups cross-referenced with the amount raised.

This document is published in open access and may be cited with attribution.

Download the PDF version · Read the summary article

Free diagnostic →