Reverse engineering · Juillet 2026

Ce que ChatGPT récupère,
ce qu'il montre, ce qu'il cite.

27 000 pages passées au crible. Les moteurs derrière les réponses, les deux cents caractères qui vous représentent, et les caches qui les figent.

URLs récupérées par ChatGPT58 000
Promues en sources7 600
Citées dans le texte de la réponse5 000
Ouvertes et lues par le modèle760
Powered by RESONEO

Quand ChatGPT répond en s'appuyant sur le web, il ne va pas lire votre page. Il interroge un ou plusieurs moteurs, en retire un titre, une adresse et environ deux cents caractères, et travaille avec ça. La page elle-même n'est ouverte qu'à peine plus d'une fois sur 80, et uniquement en mode thinking. Le reste du temps, ce qui vous représente auprès du modèle tient dans trois lignes de texte fabriquées ailleurs, à un autre moment, et parfois servies à quelqu'un d'autre avant vous.

Cette étude démonte cette chaîne étage par étage, sur plus de mille deux cents réponses réelles capturées en juillet 2026. Qui ramène les résultats, ce que le modèle en voit exactement, combien de temps cette copie reste valable, et ce qui franchit la dernière marche pour devenir un lien visible dans la réponse.

Sommaire

1 Le 21 juillet, OpenAI a éteint la lumière 2 Le vrai ChatGPT, c'est le gratuit 3 Ce que le modèle voit de vous 4 Ce que ChatGPT trouve, ce que ChatGPT lit 5 Citées, affichées, invisibles 6 Ce qui est ouvert est cité 7 Cinq verticales, cinq systèmes séparés 8 Ce qu'on ne sait pas encore 9 En vrac, ce qu'on a aussi trouvé 10 Méthodologie : comment on le sait 11 Remerciements, sources et outils Regards croisés avec Jérôme Salomon (Oncrawl)
1

Le 21 juillet, OpenAI a éteint la lumière

Dans le code, chaque résultat embarquait jusqu'ici quel moteur l'avait ramené, grâce au champ result_source. Ce champ a disparu du flux. Nous travaillons sur une fenêtre qui vient de se fermer.

Avant, et après mesuré le 26/07/2026
Avant le 21 juillet
Chaque résultat nomme son moteur. Les tokens Google Shopping sont lisibles en clair dans les carrousels.
Le 21 juillet
Le champ qui nomme le moteur disparaît du flux. Dans la foulée, les tokens Google Shopping quittent les carrousels produits : les champs de requête et de fournisseur ne contiennent plus que le mot deprecated.
Après
Plus aucune réponse ne dit d'où viennent ses résultats. Il faut désormais reconnaître un moteur à la forme de ce qu'il livre.
La preuve

Le champ result_source était porté par chaque objet résultat du flux serveur, avec quatre valeurs possibles : labrador, bright, oxylabs, serp. Sur les 1 249 réponses du corpus, 760 le portent et 489 ne le portent pas. Dernier flux étiqueté le 21 juillet, premier jour entièrement nu le 22 juillet.

OpenAI cherche à se défaire de Google mais ne le peut pas encore signature de format

Deux des quatre moteurs, bright et oxylabs, servent du Google scrapé. Nous l'avons établi en rejouant les mêmes requêtes sur les deux moteurs, puis en cherchant les URLs utilisées par ChatGPT dans leurs résultats. Une URL sur trois se retrouve dans le haut de page de Google. Une sur vingt seulement chez Bing. Et quand elle est dans Google, neuf titres sur dix sont identiques au caractère près, points de suspension compris, au même endroit.

Google
1 sur 3
des URLs bright retrouvées dans le haut de page
Bing
1 sur 20
des mêmes URLs
labrador
hors des deux
aucune empreinte de moteur

Ce qui rend l'écart concluant, c'est que Google et Bing ne se recouvrent presque pas entre eux sur ces requêtes. Être présent dans l'un et pas dans l'autre devient donc un signal fort, et non une coïncidence de classement. Quant à labrador, il n'appartient ni à l'un ni à l'autre : c'est un index maison, pas un scrape.

En mode thinking, ChatGPT tourne aux trois quarts sur bright. Donc sur du Google.

Le même mouvement se lit côté shopping. Les tokens Google ont quitté les carrousels produits, mais l'identifiant Google du produit survit en clair dans la requête envoyée quand un utilisateur clique sur une fiche, accompagné cette fois d'un bloc chiffré.

Google n'a pas disparu du shopping. Il a été chiffré.

Et la dépendance n'est pas résiduelle, elle est fonctionnelle. Les offres affichées dans les carrousels viennent bien du catalogue interne d'OpenAI, alimenté par les flux marchands. Mais ce catalogue ne sait pas tout faire : c'est Google qui reste l'oracle sur le meilleur prix, sur une partie des métadonnées produit et sur les avis. Autrement dit, OpenAI a rendu sa dépendance illisible dans le flux visible, tout en la gardant opérationnelle dans la couche qui ne se déclenche qu'au clic.

Une concordance de dates ?

Le retrait tombe à deux jours du rejet de la plainte de Google contre SerpApi. Nous le signalons comme une concordance de calendrier, pas comme un mécanisme de cause à effet. Rien dans nos mesures ne permet de relier les deux, mais avouez que c'est troublant ;)

2

Le vrai ChatGPT, c'est le gratuit

Le compte gratuit ne raisonne pas. Sur nos 493 réponses gratuites, pas une seule n'est passée en mode thinking. Or instant se contente d'une seule fan-out dans plus de huit cas sur dix, et n'ouvre jamais une page pour la lire.

Deux régimes, deux ordres de grandeur part mesurée
Gratuit, mode instant
Payant, mode thinking
Nombre de fan-outs search
1
6
Pages récupérées
11
100
Domaines distincts
8
28
Pages réellement ouvertes
0
1 conversation sur 6
Moteur dominant
labrador
Google scrapé (bright)

Valeurs médianes par réponse. Le mode thinking va chercher neuf fois plus large, et parfois jusqu'à plusieurs centaines de pages sur une seule question.

C'est votre question qui choisit le moteur

En mode instant, sur un compte gratuit, quatre familles de questions et deux comportements seulement.

Ce que vous demandez labrador Google Sans snippet
Une information stable100 %0 %1 %
Un commerce, un lieu100 %0 %25 %
Un produit à acheter100 %0 %1 %
Informations live50 %50 %8 %

La dernière ligne, ce sont les questions dont la réponse change dans la journée : qui a gagné le match hier, le classement du Masters en direct, la décision de la Fed aujourd'hui. Elles seules ouvrent la porte au Google scrapé. Tout le reste, et c'est la plus grande part de ce qu'on demande à ChatGPT, ne sort jamais de l'index maison.

Autrement dit, comprendre labrador n'est pas un sujet de spécialiste : c'est le fournisseur de presque tous les résultats, pour la population qui utilise réellement ChatGPT.

Les valeurs exactes

Résultats de recherche uniquement, snippets vides écartés du calcul de la part, sur 5 245 snippets et 424 réponses gratuites en mode instant. Information stable : 99,9 % labrador sur 2 136 snippets. Commerce et lieu : 100 % sur 310. Produit : 97,6 % sur 1 392. Informations live : 52,6 % labrador et 46,1 % Google sur 1 407. Le partage se lit sur la longueur du snippet servi, qui sépare les deux moteurs sans ambiguïté : au-delà de cent quatre-vingt-quinze caractères, la source est labrador dans 99,9 % des cas mesurés sur la période où le flux nommait encore son fournisseur.

La colonne des snippets manquants mérite d'être lue avec la première : sur les commerces et les lieux, un quart des résultats arrivent sans aucun snippet, avec seulement un titre et une adresse. La classe la mieux servie du tableau est aussi celle où le modèle reçoit le moins de matière.

En thinking, tout s'inverse

Le tableau de gauche vaut pour le mode instant. Reposez les mêmes questions en thinking et le rapport se retourne, sur les quatre familles à la fois.

La même question, en thinking labrador Google
Une information stable1 %99 %
Un commerce, un lieu3 %95 %
Un produit à acheter1 %99 %
Informations live0 %96 %

En instant, la famille de la question décide de tout. En thinking, elle n'a plus aucun effet : les quatre valeurs se resserrent là où l'instant les étale de 50 à 100 %. Le commerce et le lieu changent même d'architecture entre les deux régimes. En instant, la réponse est portée par une carte, et la liste de résultats n'est qu'un rappel de liens dont un quart n'a aucun snippet. En thinking, la carte disparaît complètement, la liste redevient un vrai support de grounding, et la part de résultats sans snippet tombe de 25 % à 4 %.

Labrador n'est ni du Bing rebadgé, ni un catalogue de licences

Deux lectures circulent sur labrador, et nos mesures les écartent toutes les deux. La première en fait du Bing servi sous un autre nom, au motif du partenariat entre OpenAI et Microsoft. Une seule mesure suffit à la renverser : Bing coupe les titres qu'il affiche à soixante-quinze caractères, jamais un de plus, et un quart des titres labrador dépassent ce plafond. Le plus long que nous ayons vu en fait neuf cent soixante-dix-sept.

Labrador n'est pas du Bing rebadgé. Un quart de ses titres sont trop longs pour l'être.
Au passage, une information que même les SEO n'ont pas

La longueur maximale des balises title affichées dans les pages de résultats de Bing est de soixante-quinze caractères, jamais un de plus. C'est ce plafond qui a permis d'écarter l'hypothèse selon laquelle labrador serait du Bing rebadgé : un quart des titres labrador le franchissent, ce qui est physiquement impossible pour un scrape de Bing.

Un cinquième pipeline, nommé bing, a été rapporté par d'autres chercheurs. Nous ne l'avons jamais observé, sur aucun compte, dans aucun régime, à aucune date. Notre hypothèse est qu'il ne serait exposé qu'aux comptes OpenAI Teams, du fait de la relation avec Microsoft.

Jérôme Salomon nous a transmis des captures de juin où ce pipeline apparaît massivement sur un compte Team, quand son propre compte gratuit n'en voit aucun le même jour (section collaboration).

Deux autres mesures vont dans le même sens. Les longueurs de snippet sont incompatibles : Bing coupe large et irrégulier, labrador s'arrête net à deux cent deux caractères, sur la totalité de ses résultats. Et le snippet labrador n'est le snippet d'aucun moteur : sur les URLs labrador qui ressortent aussi chez Google et chez Bing, la reprise de texte est nulle des deux côtés. La même mesure appliquée à bright retrouve le texte de Google quatre fois sur dix.

La seconde lecture fait de labrador le domaine réservé des éditeurs sous accord avec OpenAI. Nos mesures ne la soutiennent pas davantage. À moteur égal, la présence ou l'absence d'un accord de licence ne change rien au traitement : des centaines de médias hors accord reçoivent exactement le même format, la même longueur, la même fraîcheur que les partenaires.

Labrador se décrit mieux comme un repository d'accès immédiats.

Labrador = un index maison, complété de flux de presse, de dépôts scientifiques ouverts et de plateformes partenaires.

Ce qui le définit n'est pas le contrat, c'est le fait qu'OpenAI l'interroge sans payer un tiers et sans attendre un scrape.

La preuve

Toutes les parts de moteur de cette section sont calculées sur les seuls résultats de type search, sur les 373 réponses antérieures à la césure, et à partir du champ result_source lu tel quel, sans classifieur.

Ce filtre est indispensable. Compté tous types confondus, oxylabs semble représenter 12,7 % du mode instant. Sur les résultats de recherche seuls, il tombe à zéro : oxylabs est un pipeline d'actualités et rien d'autre, ses résultats sont tous de type news. Symétriquement, les résultats scientifiques et les forums sont servis à 100 % par labrador, si bien que les inclure gonfle mécaniquement sa part.

Valeurs exactes, résultats de recherche uniquement. Gratuit et instant : labrador 63,6 %, bright 34,7 %, serp 1,6 %, sur 1 793 résultats et 158 réponses. Payant et thinking : bright 74,6 %, labrador 23,6 %, serp 1,9 %, sur 16 407 résultats et 176 réponses.

Ces deux moyennes tiennent, mais elles dépendent entièrement de ce qu'on demande. Le batch qui les produit était composé pour moitié de questions d'actualité, la seule famille qui parte sur du Google. Sur un batch de questions stables, la part de labrador au gratuit monte à 100 %. Une moyenne de moteurs n'a donc de sens qu'accompagnée du mélange de questions qui l'a produite : c'est le tableau par famille, plus haut, qui décrit le comportement du système.

3

Ce que le modèle voit de vous

En mode instant, tout tient dans un titre et deux cents caractères. Et ces deux cents caractères ne sont pas ceux que vous croyez.

Un rappel avant d'entrer dans le détail

Une fois ses fan-outs lancés, ChatGPT reçoit une liste de résultats exactement comme celle que vous obtenez en tapant une requête dans un moteur : pour chaque page, un titre, un snippet et une URL. Rien de plus. C'est sur ce grounding, et sur lui seul, que le modèle s'appuie pour rédiger sa réponse et décider qui il va citer.

Autrement dit, ces trois champs sont votre unique représentation auprès du modèle dans l'immense majorité des cas. D'où l'importance de savoir précisément comment ils sont fabriqués.

Le titre : entier, ou coupé à soixante caractères signature de format

Selon le moteur qui la ramène, une même page arrive avec son titre complet ou avec un titre déjà tronqué par une page de résultats. Via labrador, la balise title passe entière : un quart des titres dépasse soixante-quinze caractères et pratiquement aucun ne se termine par des points de suspension. Via Google scrapé, le titre est coupé à la longueur d'affichage d'un moteur, et près d'un sur quatre porte la marque de la coupe.

labrador
Titres de plus de 75 caractères24 %
Titres coupésquasi zéro
Google scrapé (bright)
Titres de plus de 75 caractères1,5 %
Titres coupés23 %
À quoi ressemble un résultat, selon le pipeline qui l'apporte

Voici les trois formats réellement transmis au modèle, du plus court au plus long. Même structure à chaque fois, une URL, un titre et un snippet, mais des budgets qui varient du simple au septuple.

Résultat servi par le pipeline bright
bright, le scrap de Google. Titre de 48 caractères en médiane, coupé net à 60, avec des points de suspension une fois sur quatre. Snippet de 159 caractères, au format d'une page de résultats.
Résultat servi par le pipeline labrador
labrador, l'index maison. Le titre passe entier, jamais tronqué, 58 caractères en médiane et jusqu'à plusieurs centaines. Le snippet est ancré sur le H1 de la page et coupé à 202 caractères.
Résultat d'actualité servi par labrador
labrador, actualités. Même tuyau, tout autre régime : environ 1 100 caractères en médiane, soit sept fois le format précédent, et un plafond net à deux cents mots. Ce n'est pas un snippet de la page mais un résumé réécrit, introuvable mot pour mot sur le web.
Le snippet labrador : deux cents caractères pris au début de votre corps de page signature de format

Le snippet stocké par l'index maison de labrador est coupé net un peu au-delà de deux cents caractères, et il est pris au début du corps rendu de la page, pas dans vos métadonnées. Votre meta description est ignorée. Elle reste utile pour les résultats bright, le scrap de Google, qui la reprend une fois sur trois.

Quand une page possède un titre H1, le snippet le contient huit fois sur dix.

La coupure ne tombe presque jamais au milieu du H1 : sur près de quatre cents snippets qui le contiennent, quatre seulement le tronquent. Votre budget de grounding est donc parfaitement calculable. Il se compose de trois blocs qui se suivent toujours dans le même ordre : ce qui traîne avant le H1, le H1 lui-même, et ce qui reste ensuite pour votre contenu réel.

7
51 car. de H1
146 caractères pour convaincre
7 car. avant le H1, en moyenne 51 car. de H1 médian 146 car. de contenu réel

Ce qui mange le début du snippet n'est pas ce qu'on croit. Le fil d'Ariane et la signature d'auteur sont marginaux. Les deux vrais postes de perte sont le surtitre de rubrique et le texte alternatif de la première image, celle qui suit immédiatement le titre, qui peut à elle seule consommer cinquante caractères.

Ce qui s'intercale avant le H1FréquenceCaractères perdus
Surtitre, rubrique, catégorie29 %18
Date de publication ou de mise à jour11 %25
Texte alternatif de la première image, juste sous le titre9 %50
Nom du site ou de la marque7 %44
Fil d'Ariane7 %23
Signature d'auteur3 %45

Le premier levier n'est pourtant pas là. Sur les pages que nous avons examinées, une sur sept n'a tout simplement aucun H1 balisé. Dans ce cas l'ancrage devient imprévisible : le snippet démarre sur un intertitre choisi au hasard du gabarit, et vous ne contrôlez plus rien.

La preuve

Méthode : 534 pages effectivement citées par ChatGPT ont été récupérées puis comparées au snippet que l'index en avait stocké. Sur les 463 qui possèdent un H1, 387 snippets le contiennent, soit 83,6 %. Sur ces 387, le H1 est le tout premier caractère dans 297 cas, soit 77 %. Le préfixe, quand il existe, mesure 20 caractères en médiane.

Le snippet n'est pas choisi en fonction de la question posée : sept variantes régionales d'un même communiqué de presse, interrogées avec la même requête, donnent sept ancrages différents. Et il n'est pas fabriqué au moment de la recherche : la grande majorité des pages revues sous plusieurs requêtes différentes rendent un snippet strictement identique. Il est figé au moment du crawl, et il vieillit.

Ce qu'il faut en faire. Votre budget de grounding en mode instant, c'est votre titre entier plus environ cent cinquante caractères utiles à partir de votre H1. Balisez un H1, dégagez la piste entre lui et le premier paragraphe, et surveillez le texte alternatif de la première image, celle qui suit immédiatement le titre.

4

Ce que ChatGPT trouve, ce que ChatGPT lit

OpenAI garde vos pages dans deux stocks distincts, écrits par deux robots différents. La copie que vous y avez a un âge. Vous ne le choisissez pas, et vous ne le voyez pas dans vos logs.

L'index et le cache de lecture

Tout le reste de cette section se lit à travers cette distinction. L'index sert à vous trouver, le cache de lecture sert à vous lire. Ce ne sont ni les mêmes contenus, ni les mêmes robots, ni les mêmes délais.

L'index Le cache de lecture
Ce qu'il contient un snippet court, figé au moment du crawl la page entière, déjà convertie en Markdown
On y accède par une requête, des mots-clés une adresse, l'URL exacte
À quoi il sert trouver votre page la lire
Qui l'écrit OAI-SearchBot ChatGPT-User, et OAI-SearchBot aussi
Ce qui le met à jour le passage de SearchBot, et lui seul une demande d'utilisateur, passé trente minutes
Durée de vie aucune expiration observée ; 13 % des snippets ont plus d'un mois de retard sur le crawl aucune expiration observée ; plusieurs semaines, voire mois
Comment le mesurer le champ Crawled de l'API, qui ne laisse aucune trace dans vos logs le passage de ChatGPT-User dans vos logs serveur

Les deux ne contiennent pas les mêmes pages. Jérôme a constaté que toutes les URLs de l'index ne se retrouvaient pas dans le cache de lecture. Être trouvable et être lisible ne sont pas la même chose.

Comment vieillit le cache de lecture signature de format
Fraîcheur
30 minutes

En deçà de cette fenêtre, la page n'est pas rouverte du tout. Un utilisateur demande votre page à 14 h, un autre la demande à 14 h 29 : c'est la copie de 14 h qui est servie au second, et ChatGPT ne prend même pas la peine de retourner voir si la page a changé.

Rétention
Plusieurs mois

Sans nouvelle demande, la copie ne s'efface pas. Nous n'avons observé aucune expiration.

Le mécanisme est celui d'un cache qui sert d'abord et vérifie ensuite. Quand la copie a dépassé la demi-heure, ChatGPT vous montre quand même l'ancienne version, puis part rafraîchir en arrière-plan. La version fraîche ne sera servie qu'à la demande suivante. Autrement dit, quand vous voyez passer ChatGPT-User dans vos logs, ce n'est pas une lecture pour l'utilisateur en cours : c'est un rafraîchissement du cache d'OpenAI, dont le prochain visiteur bénéficiera.

La chaîne de preuve

Sur notre site de test, une empreinte aléatoire est écrite au même instant dans la page servie et dans nos logs serveur. Quand le modèle la recrache, on sait exactement quelle visite a fabriqué la copie qu'il vient de lire.

Voici la séquence qui a établi que le cache est mutualisé entre utilisateurs. Une page neuve, jamais lue par personne, et deux comptes payants sans aucun lien entre eux.

1. Le compte A demande la page notre log : une visite ChatGPT-User
empreinte écrite = 2a2b

La copie vient d'être fabriquée.

22 min plus tard →
2. Le compte B, autre session, autre pays réponse du modèle :
« ... 2a2b ... »

Il restitue mot pour mot l'empreinte du compte A.

3. Ce que notre serveur a vu entre les deux aucune visite

Le compte B n'a jamais touché notre serveur. Il a lu la copie du compte A.

Double preuve : l'empreinte est identique, et le compteur de visites reste à zéro. L'une sans l'autre ne prouverait rien.

1
Le cache est mutualisé entre utilisateurs

La copie créée par un compte est resservie à un autre compte, dans un autre pays, sur un autre abonnement, sans qu'aucune visite n'atteigne le serveur d'origine. La clé du cache est l'adresse de la page, pas l'utilisateur.

Autre point à connaître : nos pages de test envoyaient un header Cache-Control: no-store, qui interdit explicitement toute mise en cache. Elles sont mises en cache quand même.

2
Trois robots, un index et un cache

ChatGPT-User fabrique le cache de lecture, celui de la page entière : c'est lui qui se déclenche quand le modèle ou l'utilisateur demande explicitement une page. OAI-SearchBot, le robot de recherche, fabrique l'index, celui du snippet, et il alimente aussi le cache de lecture, mais pas systématiquement. Des pages qu'il a visitées seul, sans qu'aucune lecture à la demande soit jamais passée, y sont bien présentes.

3
ChatGPT-User ne met jamais le snippet à jour

L'inverse n'est pas vrai, et c'est le point contre-intuitif. ChatGPT-User ne touche jamais à l'index. Sur les pages datées à la fois par l'index d'OpenAI et par des logs serveur, le snippet servi suit le passage de SearchBot à quelques jours près ; ChatGPT-User est pourtant le plus récent des deux robots dans la plupart des cas. Il revient donc lire vos pages, il rafraîchit sa copie entière, et cela ne change rien au snippet que la recherche affiche.

4
Le robot d'entraînement n'entre dans aucune des deux

La quasi-totalité des entrées d'index sont plus récentes que la dernière visite de GPTBot, donc rafraîchies après son passage et pas par lui, et nous avions vérifié la même chose sur le cache de lecture. La conséquence pratique mérite d'être posée : être crawlé et être disponible sont deux choses différentes. Le détail de la mesure est dans la section collaboration.

Les caches annexes

Au-delà des deux stocks principaux, ChatGPT conserve aussi des objets qu'il a lui-même fabriqués. Ils ne se lisent pas comme des pages, mais ils vieillissent de la même manière.

Ce qui est mis en cacheDurée observéeConséquence
Le résumé d'un article de pressestable entre capturesGénéré une fois, resservi ensuite
La fiche produit ou la fiche entité (sidebar ChatGPT)plusieurs semaines voire moisIdentique d'un compte à l'autre, y compris entre pays

Sur la fiche produit, la démonstration est spectaculaire : le même produit cliqué depuis un compte payant français et depuis un compte gratuit américain renvoie exactement le même texte, généré une seule fois.

La preuve

Nous avons borné la fenêtre de fraîcheur par dichotomie sur deux pages différentes et deux jours différents, en lisant l'empreinte servie et en vérifiant en parallèle la présence ou l'absence d'une visite serveur. Pas de rafraîchissement à 3, 16 et 25 minutes. Rafraîchissement à 31 et 33 minutes, puis à 1 heure, 9 heures et 10 jours. Le seuil se situe donc entre 25 et 31 minutes, et 30 est une valeur ronde plausible plutôt qu'une valeur lue quelque part.

La rétention est une borne inférieure : une copie du 11 juillet était encore servie le 23. Nous n'avons jamais observé d'expiration, ce qui ne prouve pas qu'il n'y en a pas. Sur le terrain de Jérôme Salomon, des pages étaient encore servies depuis ce cache plus de quatre-vingt-dix jours après leur récupération, log serveur à l'appui.

Collaboration

Regards croisés avec Jérôme Salomon

Deux enquêtes menées en parallèle sur les mêmes objets, l'une chez Oncrawl, l'autre chez nous. Voici ce que leur croisement a établi.

Jérôme Salomon

Pendant toute la durée de ces investigations, nous avons travaillé en dialogue avec Jérôme Salomon, expert SEO technique chez Oncrawl. Chacun menait ses mesures de son côté, avec ses propres outils et ses propres terrains ; à chaque échange, les découvertes de l'un corrigeaient ou prolongeaient celles de l'autre. Voici ce que cette collaboration a établi, entre confirmations croisées et trouvailles complémentaires.

Le dossier cache mesures croisées, juillet 2026

La section précédente doit à peu près tout à cette partie du dialogue. Deux protocoles indépendants s'y répondent : les logs serveur et l'API d'un côté, les pages tatouées et le parc de comptes de l'autre. Cinq faits, établis par Jérôme.

  1. Un paramètre interroge le cache sans accès web. En passant à l'API external_web_access: false, on demande au modèle de répondre sans sortir sur le web. Ce qu'il restitue alors vient forcément de ce qu'il a en stock. C'est une preuve concrète que l'index de découverte et le cache de lecture existent, et le point de départ de toute la section précédente.
  2. L'index est daté par OAI-SearchBot, et les deux stocks ne contiennent pas les mêmes pages. Sur une section du site d'Oncrawl, des dizaines de pages ont été datées à la fois par l'index d'OpenAI et par les logs serveur : le snippet servi suit le passage de SearchBot à quelques jours près. Ce robot alimente les deux stocks, puisque des pages qu'il a visitées seul se retrouvent aussi dans le cache de lecture, environ la moitié de l'échantillon. Elles ne contiennent pas les mêmes pages pour autant : des pages bien présentes dans l'index étaient absentes du cache de lecture, ce qui confirme que la recherche sert depuis l'index. Celui-ci n'est donc pas vide, il est sélectif : alimenté par SearchBot et par les flux partenaires. Un bémol : le rafraîchissement au passage de SearchBot est la règle, pas une loi. Une minorité de snippets accuse plusieurs mois de retard, et un snippet peut continuer de vieillir même après un re-crawl.
  3. La directive noindex est ignorée. Les analyses menées par Jérôme le confirment : des pages portant meta robots: noindex et visitées par les robots d'OpenAI se retrouvent tout de même dans le cache. Interdire l'indexation n'empêche donc pas d'être mis en cache.
  4. Être lu ne garantit pas d'être stocké. Un passage de ChatGPT-User ne garantit pas d'être intégré au cache, du moins pas dans ce que nous savons observer. Sur les pages effectivement visitées par ce robot, la moitié au moins s'y retrouvent bien. Nous n'avons pas la preuve que la totalité y soit, et la limite vient de notre instrument : c'est le modèle qui décide d'aller ouvrir une page ou non, donc un test produit un faux négatif dès qu'il ne tente pas l'ouverture. Cette moitié est un plancher, et il est probable que le passage du robot déclenche mécaniquement la mise en cache. Le hack décrit plus bas permet désormais de refaire la mesure sans interroger le modèle.
  5. Une rétention datée à plus de quatre-vingt-dix jours. Des pages dont le dernier passage de robot OpenAI enregistré remontait à quatre-vingt-onze jours étaient toujours servies depuis le cache. Contrairement aux autres mesures de rétention, le point de départ n'est pas estimé : c'est une ligne de log serveur, pas une déduction. À ne pas confondre avec la fenêtre de fraîcheur de trente minutes de la section précédente. Ici il s'agit du temps pendant lequel une copie survit, pas du délai avant qu'elle soit revérifiée.
L'API web_search comme instrument de mesure non contractuel

L'intuition de Jérôme était la bonne : l'API expose la même machinerie que l'application, jusqu'à ses marqueurs internes. Le pipeline de retrieval, lui, ne se choisit pas depuis l'API, mais la piste désignait le bon endroit : en la creusant, on a trouvé le champ que personne ne regarde.

Le levier tient en une ligne. Sur POST /v1/responses, avec l'outil web_search, on demande include: ["web_search_call.results"]. Chaque résultat arrive alors précédé de métadonnées internes que le flux de l'application n'expose jamais.

[wordlim: 200] Published: today; Crawled: 6 days ago; <contenu de la page>

Trois informations, sur les 7 782 résultats que nous avons analysés via l'API. Crawled donne l'âge de la copie servie, URL par URL, sans aucun accès aux logs du site : c'est un oracle d'audit qui n'existe nulle part ailleurs. wordlim donne le budget en mots alloué au domaine. Et le marqueur de citation nomme le canal d'origine : recherche, actualités, science, forum, page ouverte. Rien de tout cela n'est documenté, et rien n'empêche OpenAI de le retirer demain, comme le champ qui nommait les pipelines a été retiré le 21 juillet.

La carte des budgets en mots, ce sont les contrats d'OpenAI avec les éditeurs, mesurés de l'extérieur.
Budget par source Qui est concerné Lecture
25 mots Guardian, ESPN, Washington Post, Bloomberg, Corriere, Spiegel… Cause indéterminée
100 mots 11 domaines identifiés, tous licenciés connus : Le Monde, WSJ, Politico, Bild, Condé Nast, Hearst… Ressemble à une clause de contrat
200 mots Le défaut, tout le reste du web Le régime normal

La valeur est une constante par couple nom de domaine et canal, sans aucune variance résiduelle une fois la bonne clé trouvée, et les PDF d'un domaine héritent du budget du domaine. La classe à 100 se lit sans effort. La classe à 25 reste une énigme : elle mélange des éditeurs sous accord et des éditeurs sans accord, et l'explication par le fichier robots.txt est réfutée par des contre-exemples dans les deux sens.

La consigne était écrite noir sur blanc dans le system prompt de ChatGPT

Ce plafond en mots n'est pas une invention de l'API. Il figurait dans le system prompt de ChatGPT que nous avions publié en mars : la consigne [wordlim N], avec deux cents mots par source par défaut, est présente dans la version GPT-5.3. L'API la confirme aujourd'hui côté serveur, source par source. La boucle est bouclée entre ce que le prompt ordonnait hier et ce que le flux mesure aujourd'hui.

### Copyright and word limits - If you derived any information from a webpage source, you MUST cite it. Any part of your response that used information from sources must have citations. Do NOT miss any citations, otherwise it would result in copyright violations. - You must cite all the trustworthy sources that support a claim or statement in one cite block, and order them by how well they support the point. - Quotes: ≤10 words for lyrics; ≤25 words from any single non-lyrical source. - Per-source paraphrase cap: respect `[wordlim N]` (default 200 words/source). Do not exceed; caps add across cited sources. - Don't reproduce full articles/long passages; use brief quotes + paraphrase/summaries. - Exception: these quote/paraphrase caps do not apply to reddit.com.

Extrait du system prompt de ChatGPT, publié dans notre étude de mars.

L'oracle d'âge, lui, réserve deux surprises grand public. Sur le web vivant il date bien une lecture réelle, découplée de la date de publication. Mais sur les corpus ingérés en masse, il date le contenu de la copie, et cette copie n'a jamais été rafraîchie.

Wikipédia a deux mois de retard

Une page Wikipedia que nous avons analysée, éditée plusieurs fois par jour, est servie avec la mention « Crawled: 2 months ago ». Sur 308 résultats Wikipédia, 209 sont datés de huit à quatre-vingt-dix jours : l'encyclopédie la plus citée des modèles est servie depuis un instantané périodique, pas depuis le site. Ces âges cadrent avec le rythme de l'encyclopédie elle-même, dont les exports complets sont produits une fois par mois : la copie suit la cadence des dumps, pas celle des éditions.

Reddit est figé depuis la création du fil

Sur Reddit, la date de collecte est celle de la création du fil de discussion, à zéro jour d'écart en médiane, et elle remonte jusqu'à sept ans. Un fil ouvert en 2019 est servi tel qu'il était à sa création, ou quelques semaines après : les réponses ajoutées ensuite ne figurent pas dans la copie.

Les éditeurs de presse, vus des deux côtés

C'est le terrain où nos deux positions d'observation diffèrent le plus, et où elles se recoupent le mieux. Trois points.

  1. Reuters, ou la preuve d'un canal qui fonctionne à crawl nul. Reuters est le premier domaine d'actualité servi dans l'application, avec 120 occurrences dans notre corpus. Dans l'API, il est introuvable : dix appels dédiés, zéro source, zéro page ouverte, le modèle répondant qu'il ne peut pas y accéder. Le trou est chirurgical, tous les domaines satellites de Reuters sortent normalement. Et la demande, elle, ne disparaît pas : le modèle émet spontanément 47 requêtes site:reuters.com, toutes à vide. Il existe donc un canal d'ingestion directe des contenus de presse, qui ne dépend pas du crawl. Jérôme en donne le mécanisme : les partenaires disposent d'une API pour pousser leurs articles chez OpenAI, et ces articles sont disponibles sans avoir eu besoin d'être crawlés une première fois. Ils le sont quand même ensuite, par ChatGPT-User et par SearchBot, mais moins que les articles qui ne passent pas par ce canal. Conséquence concrète pour les éditeurs : les mieux intégrés sont aussi les moins crawlés, et l'absence de ChatGPT dans vos logs ne signifie pas l'absence de ChatGPT dans les réponses.
  2. Les snippets d'actualité sont des résumés fabriqués par une machine. Environ mille cent caractères en médiane, plafonnés à deux cents mots, avec un palier à cent chez quelques hôtes, et jamais retrouvables mot pour mot sur le web. Nous l'avons mesuré sur le flux de l'application ; la connaissance qu'a Jérôme de ce secteur conforte cette lecture. Elle donne même de quoi lire la voie d'entrée d'un article : poussé par l'API partenaire, il arrive avec le flag news ; récupéré par le crawl, il arrive avec le flag search. Une capture du 30 juillet montre les deux côtés dans la même réponse, chez le même éditeur : Le Monde y apparaît sept fois en news avec un résumé de 180 mots, et une fois en search avec un snippet de 32 mots. Le flag ne décrit pas le sujet, il décrit la porte d'entrée.
  3. Bing existe, et la meilleure piste reste les comptes Team. En juin, sur un compte Team, Jérôme a observé le pipeline bing massivement, sur 93,7 % des sources ramenées. Le même mois, sur nos comptes, zéro. Nous avons écarté deux explications : ce n'est ni la région de serveur qui traite la réponse, ni le gratuit contre le payant. Reste le plan Team : l'hypothèse la plus probable. Nous soupçonnons un accord entre OpenAI et Microsoft ouvrant un accès Bing aux utilisateurs de ChatGPT Team, sans être en mesure de le vérifier.
5

Listées, promues, citées

Tout ce que ChatGPT récupère finit listé quelque part. Mais entre être listé et être cité, il y a trois marches, et presque personne ne les franchit.

Rien dans les données ne marque un résultat comme retenu. La notion de citation n'existe qu'au moment de l'affichage, ce qui explique que les chiffres publiés sur le sujet divergent autant d'une étude à l'autre : chacun compte à un étage différent sans le dire. Nous avons reconstruit les étages depuis le flux brut, puis vérifié leur correspondance avec l'interface sur deux sessions réelles où le client nomme lui-même chaque zone d'affichage.

Une correction que nous devons à cette vérification

Il est tentant d'écrire que la plupart des pages récupérées ne sont jamais vues. C'est faux, et nous l'avons cru un moment. Toutes les pages ramenées par le retrieval sont bien listées dans le panneau qui s'ouvre en cliquant sur « Sources », sous la réponse. Sur plus de soixante mille couples réponse et page, aucune n'est absente de toutes les surfaces d'affichage.

Ce qui est vrai est plus subtil : neuf sur dix restent au fond de ce panneau, dans la section « Plus », derrière un clic, sans jamais être promues en tête ni reprises dans le texte. Techniquement visibles, pratiquement invisibles.

Être cité n'est pas binaire

Un appel de citation dans le texte peut porter plusieurs sources. La pastille affiche le nom de la première et signale les autres par un « +1 », consultables en ouvrant l'infobulle. Toutes sont rattachées à la citation, mais une seule donne son nom.

C'est tout l'écart entre les deux étages ci-dessous : environ 1/3 des URLs sont rattachées à une citation sans en être la source principale. Elles existent, elles sont cliquables, mais ce n'est pas elles que le lecteur voit en premier.

La première colonne suit le panneau Sources, étage par étage. La deuxième colonne dit ce que le modèle a réellement fait des pages. Les filtres croisent le mode, la nature du résultat et le moteur ; les combinaisons trop peu peuplées sont signalées.

Le panneau latéral, étage par étage
Toutes les URLs du panneau latéral61 332
Rattachées à une infobulle de citation 7 616
Première citation visible dans l'infobulle 5 032
Infobulle de citation ChatGPT affichant 1/2
La pastille porte le nom de la première source et un « +1 ». L'infobulle indique « 1/2 » : une seconde source est rattachée au même appel de citation, atteignable par les flèches.
Ce que le modèle en a fait
759
pages ouvertes et lues par le modèle, en mode thinking uniquement
53 716
restent au fond du panneau, sous « Plus », sans jamais être promues ni citées
La grande majorité des pages sont citées sans avoir jamais été ouvertes par le modèle. Ouvrir reste l'exception.
Par réponse, l'ordre de grandeur

Une réponse médiane liste une vingtaine de pages au fond du panneau latéral des sources, en promeut cinq en tête, en cite trois dans son texte et n'en ouvre aucune. La médiane des pages ouvertes est zéro : neuf réponses sur dix n'ouvrent jamais rien.

Neuf pages sur dix ne quittent jamais le fond du panneau. Elles ont été sélectionnées, transmises au modèle, elles ont potentiellement contribué à la réponse, mais très peu mises en valeur par ChatGPT.

Deux systèmes rivaux, la même idée

ChatGPT encode ses citations sous la forme turn0search11 : tour zéro, famille recherche, onzième résultat. Gemini encode les siennes en PerQueryResult(index='6.2'), soit sixième requête lancée, deuxième résultat de cette requête, comme l'a montré Dan Petrovic.

Deux entreprises rivales, deux architectures, la même décision d'ingénierie : une citation n'est pas une adresse, c'est une coordonnée dans un cache ordonné. Ce qui a été mis en réserve au moment de la recherche détermine ce qui pourra être cité au moment de la rédaction. Le reste, la qualité de votre page, sa fraîcheur, n'entre dans l'équation que s'il a survécu à l'étape d'avant.

6

Ce qui est ouvert est cité

C'est rare, mais ça change tout. Quand ChatGPT ouvre vraiment une page, il la cite trois fois sur quatre.

Un facteur dix entre les deux part mesurée
Une page ouverte par le modèle finit citée74 %
Une page simplement présente dans les URLs de grounding finit citée7 %

Mais c'est rare. Sur quatre-vingts pages récupérées, une seule est ouverte. Et cette ouverture est réservée au mode thinking sur compte payant : sur les 759 ouvertures de notre corpus, 757 s'y concentrent, et deux conversations gratuites seulement en ouvrent une.

Ce que ChatGPT ouvre pour accéder à la page complète est très typé : du réglementaire, de l'officiel, de la source primaire. Des pages profondes dans l'arborescence, presque jamais des pages d'accueil.

Les domaines les plus ouverts de notre corpus francophone : service-public.fr, economie.gouv.fr, diplomatie.gouv.fr, la CNIL, Légifrance, ameli.fr, france-renov.gouv.fr, la Commission des sondages.

La preuve

Sept cent cinquante-neuf pages ouvertes ont été recensées sur les 1 249 réponses, soit 1,2 % des URLs du panneau latéral. Elles se concentrent sur 176 réponses, dont 174 en mode thinking sur compte payant, soit 31 % des conversations de ce régime.

Les deux taux de citation ci-dessus ne sont pas calculés sur ces 759 pages, mais sur les 440 qui sont exposées comme objets de résultat : 326 citées sur 440 ouvertes, contre 4 303 sur 57 853 simplement récupérées. Les autres ouvertures ne se retrouvent que par les références portées par les citations, donc elles sont citées par construction et gonfleraient le premier taux sans rien mesurer.

Note pour qui voudrait reproduire : depuis la disparition du champ result_source, les pages ouvertes ne sont plus exposées comme des objets de résultat. On peut encore les retrouver par les références portées par les citations, ce qui reste fiable pour dire si le modèle a ouvert des pages et lesquelles, mais sous-estime le total. Une page ouverte puis écartée ne laisse aucune trace.

Certaines URLs sont citées de mémoire

En mode instant, 85 % des citations pointent vers une URL qui n'apparaît nulle part dans le grounding reçu, contre 31 % en thinking. Une part vient des widgets, carte, fiche produit, fiche entité, qui portent leurs propres liens hors du canal de recherche. Le reste ressemble à des pages d'accueil de marque écrites depuis la mémoire du modèle. Nous ne savons pas encore faire le partage entre les deux.

Le cas arXiv, et l'avertissement qui va avec

arXiv est remonté plus de deux mille six cents fois dans notre corpus. Il est cité dix fois. Il n'est jamais ouvert. On pourrait croire que c'est parce qu'il arrive sans snippet, et il l'est presque toujours, mais la contre-épreuve est sans appel : sur les cent dix-sept occasions où arXiv est arrivé avec un snippet, il n'a été cité aucune fois. Il n'est pas ignoré parce qu'il est nu, il est ignoré tout court.

Le même schéma vaut pour Reddit, massivement récupéré et très peu affiché. ChatGPT lit des preprints et des fils de discussion Reddit pour se faire une idée, et n'expose au lecteur que des pages web ordinaires.

Méfiez-vous des classements de visibilité

Quand une étude présente arXiv ou Reddit parmi les sites les plus visibles dans ChatGPT, cela signifie que l'outil derrière ne fait pas la différence entre une page récupérée et une page citée. Ces domaines sont massivement récupérés et pratiquement jamais montrés à l'utilisateur. C'est exactement la distinction que mesure la pyramide de la section précédente, et c'est ce qui sépare une mesure de visibilité d'une mesure de trafic potentiel.

7

Cinq verticales, cinq systèmes séparés

Ce qui vaut pour la recherche web ne vaut pour aucune des autres surfaces. Chacune a son propre approvisionnement, et quatre sur cinq n'ont aucun lien avec les moteurs.

Recherche web

Un titre et deux cents caractères

Le socle, traité dans les sections précédentes de notre étude. Index maison en mode gratuit, Google scrapé en mode thinking. C'est la seule surface où votre travail sur la page compte directement.

Actualités

Votre article, réécrit par une machine

Deux régimes sous une même étiquette. Via l'index maison, ChatGPT reçoit un résumé d'environ mille cent caractères, soit six à huit fois plus long que les snippets scrapés servis par l'autre voie. Ce résumé est plafonné à deux cents mots, avec un palier à cent chez quelques hôtes : le même plafond que celui mesuré côté API pour les éditeurs sous licence.

Ce résumé long n'est pas une contrepartie de licence : des centaines de médias sans accord reçoivent le même traitement. Et il est bien réécrit, pas extrait : aucun ne commence par le titre de l'article, aucun n'est retrouvable mot pour mot.

Local et cartes

La forme de l'identifiant trahit la source

Ici la copie ne vient pas de votre site du tout, mais de flux : Yelp, TripAdvisor, Google Maps. On reconnaît chaque fournisseur à la forme de son identifiant.

Le fait le plus parlant : près d'une fiche estampillée Yelp sur cinq porte un lien copié depuis la fiche Google Business du commerce, alors que Yelp affiche l'adresse nue. C'est OpenAI qui recoud. L'étiquette d'un fournisseur ne dit pas d'où vient chaque champ.

Achat

Aucun lien avec la recherche web

Le carrousel produits ne partage pas une seule adresse avec les moteurs. Être bien placé dans les liens de ChatGPT n'aide en rien à apparaître dans les cartes produit : ce sont deux métiers différents.

Amazon est totalement absent des offres, y compris sur les questions qui le nomment. Et la fiche produit est un objet mis en cache pendant des semaines, identique pour tout le monde : être dans le premier relevé d'un produit vaut plus que d'être bien classé ensuite.

Images

Servies sans jamais toucher votre serveur

Vos images sont re-hébergées chez OpenAI. Elles s'affichent dans les réponses sans qu'une seule requête n'atteigne votre infrastructure, donc sans aucune trace dans vos logs.

Détail contre-intuitif : en mode thinking, les vignettes transitent par le réseau de diffusion d'images de Bing. C'est la seule empreinte Microsoft de tout notre corpus.

Ce qu'il faut retenir de cette section

Un seul de ces cinq systèmes est relié au search classique. Les quatre autres sont alimentés par des flux, des catalogues et des index dédiés, sur lesquels ce sont les techniques SEO propres à chaque verticale qui s'appliquent : SEO image, SEO local et fiche Google Business, flux shopping. Une stratégie de visibilité dans ChatGPT qui ne traite que la recherche web laisse quatre portes fermées.

Une question qui mérite d'être posée

Sur les actualités, OpenAI fabrique un résumé de votre article, le conserve, le sert à ses utilisateurs pendant des jours, et l'article lui-même n'est cité qu'environ une fois sur huit. La valeur est captée à l'ingestion. Elle n'est pas restituée à l'affichage. Nous posons les faits, chacun en tirera ses conclusions.

8

Ce qu'on ne sait pas encore

Trois questions ouvertes, avec pour chacune un protocole en cours ou prêt à lancer.

  1. Par quel chemin une page neuve entre-t-elle dans l'index d'OpenAI ? Nous savons comment ChatGPT va chercher une page qu'il connaît déjà. Nous ne savons pas ce qui l'y fait entrer. Sur un domaine suivi seize jours, aucune page n'y est entrée. Quatre déclencheurs sont testés en parallèle : page orpheline, page lue une seule fois, page liée depuis une page connue, page inscrite au sitemap. Il est possible que la réponse soit qu'aucun des quatre ne suffit. Un résultat est déjà acquis, mais il porte sur le crawl et pas sur l'index. GPTBot télécharge notre sitemap environ une fois par jour et n'a suivi aucune des URLs qui n'y figuraient que par là : zéro page sur huit. Le même matin, il a crawlé les huit pages atteignables par un lien, y compris des liens servis aux seuls robots d'OpenAI. Bingbot, ClaudeBot et GoogleOther ont fait exactement l'inverse : ils ne sont venus que par le sitemap. Chez OpenAI, la découverte passe par le lien. Reste que crawler n'est pas indexer.
  2. Demander une réponse longue fait-il chercher plus ? En mode thinking, le nombre de citations suit nettement la longueur de la réponse. En mode instant, la relation est nulle. Nous ignorons si la consigne de longueur cause un budget de recherche plus élevé, ou si les questions difficiles appellent simplement les deux à la fois.
  3. Pourquoi tant de citations sans snippet en mode instant ? Une citation sur deux en instant arrive sans snippet, contre moins de 1 % en thinking. Nous avons deux pistes. La première, dominante dans nos mesures : l'URL ne vient d'aucune recherche, elle est écrite depuis la mémoire paramétrique du modèle, et 95 % de ces citations n'apparaissent nulle part dans le grounding reçu. La seconde, marginale : certains canaux ne transportent pas de snippet, forum, scientifique et vidéo, mais ils ne pèsent que 5 % des cas. Reste 5 % d'URLs rapportées et servies avec un snippet vide, que ni l'une ni l'autre n'explique. Nous ne savons pas trancher.
Un défi ouvert : les URLs nues qui se font citer

Voici la question que nous n'arrivons pas à résoudre, et sur laquelle nous aimerions des mesures indépendantes.

Une partie des résultats de recherche arrive avec un titre, une URL, et rien d'autre. Pas même un snippet tronqué : un snippet vide. On écarte d'emblée YouTube, Reddit et arXiv, qui n'en portent quasiment jamais. Restent des pages ordinaires, sur des domaines ordinaires : la NBA, Costco, CBS News, des annuaires de commerces.

On s'attendrait à ce que le modèle les ignore, faute de matière pour juger. C'est l'inverse. En mode instant, un résultat sans snippet est cité dans 14,9 % des cas, contre 8,2 % pour un résultat qui en porte un : il est cité près de deux fois plus souvent alors que le modèle en sait deux fois moins.

Nos pistes ne suffisent pas. Sur les questions locales, l'absence de snippet est totale par conversation et coïncide avec l'affichage d'une carte, comme si la liste de liens n'était plus qu'un décor et que la carte portait la réponse : cela expliquerait la citation, pas l'absence de snippet. Sur les questions d'actualité, le mécanisme est différent, l'absence est attachée à l'URL et suit la même page d'une conversation à l'autre.

Si vous savez reproduire le phénomène, ou si vous avez une explication, écrivez-nous. Le protocole tient en peu de choses : capturer le flux serveur en mode instant, isoler les résultats de type search, écarter YouTube, Reddit et arXiv, puis comparer le taux de citation avec et sans snippet. Le mode thinking ne se compare pas de la même façon, il ramène tant d'URLs que le taux de citation y perd son sens.

9

En vrac, ce qu'on a aussi trouvé

Des observations qui ne méritaient pas leur chapitre, mais qui méritaient d'être écrites.

OpenAI écrit le nom de Bright Data dans son propre code. Les carrousels produits transportent un bloc de mesure qui nomme l'expérience serveur allouée au moteur shopping. Sur trois conversations du 22 juillet, cet identifiant contient le nom du fournisseur en clair. "analytics_meta": { "ab_test.search_engine_all.layer_name": "sonic_search_engine_all", "ab_test.search_engine_all.group_name": "", "ab_test.search_engine_all.allocated_experiment": "shopping_brightdata_new_feed_serving_week_2026_06_22" } Ce nom n'apparaît nulle part dans la configuration envoyée au navigateur : l'allocation est purement serveur, et elle ne fuit que par ce bloc de mesure. Rapproché du champ result_source, dont l'une des quatre valeurs est justement bright, la lecture la plus simple est que ce moteur est Bright Data.
Le routage d'un prompt n'est pas déterministe. La même question, deux jours plus tard, sur le même compte, peut changer complètement de moteur. Un tiers des prompts rejoués basculent franchement. Aucune conclusion ne tient sur une capture unique.
Les mots de fraîcheur n'ont aucun effet. Écrire aujourd'hui, en ce moment ou ce week-end dans votre question ne change rien de mesurable. Ce qui déclenche une recherche live (via bright), c'est la verticale et la volatilité réelle du fait demandé.
Le texte caché en CSS est lu quand même. Lors d'une lecture à la demande, tout ce qui est masqué par une règle de style est transmis au modèle. Nous le documentons comme une capacité observée, pas comme une tactique à employer.
Vos données structurées ne sont pas transmises. Lors d'une lecture à la demande, le JSON-LD est retiré du document avant qu'il n'atteigne le modèle. Attention toutefois : cela ne dit rien de ce que l'index en fait, et c'est une étape différente.
Vos pages arrivent au modèle en Markdown. Lors d'une lecture à la demande, le HTML est converti en Markdown avant d'atteindre le modèle. Nuance importante : à cette étape, la conversion ne nettoie rien, le menu et le pied de page passent avec le reste. C'est à l'étape d'indexation, celle qui fabrique le snippet, que le boilerplate est retiré. Et ce qui est conservé, aussi bien dans l'index que dans le cache de lecture, ne l'est pas en HTML : les pages y sont stockées en Markdown, déjà converties.
Au-delà de quatre mégaoctets, une page n'est pas lue du tout. Pas de lecture partielle, pas de troncature : la page est rejetée en bloc. En pratique presque aucune page n'atteint cette taille.
Vos meilleures citations arrivent sans étiquette. ChatGPT accole utm_source=chatgpt.com à 95 % des liens qu'il affiche, et en mode instant à la totalité d'entre eux. Une famille y échappe pourtant systématiquement : les pages que le modèle a ouvertes et lues lui-même ne portent jamais ce paramètre. Autrement dit, les citations qui valent le plus, celles qui viennent d'une page réellement lue, sont précisément celles que votre outil de mesure d'audience ne saura pas rattacher à ChatGPT.
Un cache de réponses court-circuite la recherche. La configuration serveur décrit un cache de réponses instantanées, valable vingt-quatre heures, interrogé en moins d'une demi-seconde, et déclenché par similarité sémantique. Si votre question ressemble assez à une question déjà posée, aucune recherche n'a lieu. Le détail ici.
10

Méthodologie : comment on le sait

Nous avons mesuré ce que ChatGPT a fait de nos pages.

1 249
réponses avec retrieval
88 000
résultats de recherche
26 900
pages distinctes récupérées
6 400
domaines distincts
Le corpus

Mille deux cent quarante-neuf réponses ChatGPT capturées en conditions réelles. Six cent quatre-vingt-deux en mode instant et cinq cent soixante-sept en mode thinking. Un peu moins de cinq cents sur des comptes gratuits, un peu plus de sept cent cinquante sur des comptes payants.

L'unité de compte de toute l'étude est le couple réponse et page. Une même page vue dans deux réponses compte deux fois, une même page vue deux fois dans la même réponse compte une fois. Les adresses sont normalisées avant comptage, paramètres de tracking retirés.

Pourquoi mille deux cents réponses valent mieux qu'un million

Ce ne sont ni des appels d'API, ni du monitoring d'interface. Ce sont de vraies conversations sur de vrais comptes : gratuits, payants, plusieurs comptes payants distincts, dans plusieurs pays, et même en non logué.

La plupart des outils du marché surveillent l'interface en non logué. Ils observent donc un seul régime, et c'est un des moins représentatifs. C'est précisément l'écart entre nos comptes qui a permis d'isoler le rôle de chaque moteur : sans comparaison gratuit contre payant à prompt identique, il est impossible de voir que le routage dépend du couple modèle et effort, et non de l'abonnement.

Les six instruments

Les quatre premiers sont les nôtres. Les deux derniers viennent de Jérôme Salomon (Oncrawl), et regardent la même machine par l'autre bout : le serveur qui reçoit les robots, et l'API qui répond au même moteur que l'application.

01

Un labo de pages piégées sur un de nos sites. Chaque page servie porte une empreinte aléatoire, écrite au même instant dans la page et dans notre log. On sait donc quelle visite précise a produit la copie que le modèle recrache, et quand.

02

Une extension Chrome de capture, que nous développons et distribuons librement. Elle enregistre le flux serveur brut de chaque réponse, avant tout rendu à l'écran.

think.resoneo.com/scrap-chatgpt-plugin

03

Un parc de comptes ChatGPT : gratuits, payants, plusieurs comptes payants distincts, plus le mode non logué. Le tout derrière un VPN, pour changer d'adresse et de pays à volonté.

04

Un tracker de feature flags, qui archive chaque jour la configuration embarquée dans le HTML public de chatgpt.com. Il date les bascules serveur au jour près.

think.resoneo.com/chatgpt-experiments

05 · Oncrawl

L'analyse des logs serveur, sur trois mois et 325 000 URLs. Chaque passage de GPTBot, d'OAI-SearchBot et de ChatGPT-User y est daté, à l'échelle d'un site entier. C'est ce qui permet de dire quel robot est passé quand, de mesurer les rythmes de chacun, et de dater une rétention de cache sur une ligne de log plutôt que sur une déduction.

06 · Oncrawl

L'API de recherche instrumentée. Sur POST /v1/responses avec l'outil web_search, le paramètre include: ["web_search_call.results"] fait apparaître les métadonnées internes que l'application n'affiche jamais : Crawled, l'âge de la copie servie URL par URL, et wordlim, le budget en mots accordé au domaine. Et external_web_access: false interroge les stocks sans sortir sur le web. 7 782 résultats analysés.

détail en section collaboration

Le protocole, puis la validation croisée

Les conversations ne sont pas prises au hasard. Les mêmes prompts, mot pour mot, ont été rejoués sur chaque type de compte. C'est la seule façon de séparer ce qui vient de l'abonnement de ce qui vient du mode de réponse. Et les jeux de prompts sont découpés par thématique, pour couvrir toutes les surfaces plutôt qu'une seule : recherche généraliste, actualités, achat, local et cartes, images, sport, culture, administratif et santé.

Ensuite seulement, pour savoir quel moteur se cache derrière chaque pipeline, nous avons rejoué les requêtes que ChatGPT s'écrit à lui-même, les fameuses fan-outs, sur Google et sur Bing, puis cherché les URLs qu'il avait servies dans les résultats des deux moteurs.

Petite ironie assumée : pour savoir si OpenAI scrappe Google, nous avons scrappé Google. Mêmes armes ^^

Notre étude de mars décrivait l'outil et ses commandes. Celle-ci décrit ce qui circule dedans. think.resoneo.com/chatgpt/5.3-5.4

11

Remerciements, sources et outils

Ce travail est une suite. Il ne serait pas possible sans plusieurs personnes qui ont publié avant nous, et qui ont publié leur méthode en même temps que leurs résultats.

Suganthan
Mohanadasan
A mis le champ qui nomme les moteurs sur la place publique, en lisant le trafic réseau plutôt que les réponses, et en établissant ses quatre valeurs. C'est le point de départ de ce travail, y compris du seul endroit où nous le contredisons : nos mesures ne soutiennent pas la lecture de labrador comme un catalogue de contenus sous licence.
Mark Williams-Cook
Metehan Yeşilyurt
Nous ont mis sur cette piste. Le premier a documenté que ChatGPT lance en sous-main de vraies recherches Google et a rendu ces requêtes lisibles, ce que notre validation croisée confirme par un autre chemin. Le second poursuit un travail de fond sur le classement interne de ChatGPT.
Chris Green A fourni le seul jeu de données public à grande échelle sur la répartition des moteurs, près de dix mille exécutions de recherche. Nos propres distributions se lisent contre les siennes.
David Konitzny A le premier documenté l'infrastructure locale de ChatGPT et repéré les identifiants de fournisseurs anonymisés. Nous partons de son constat pour montrer que ces identifiants partagent le schéma des flux nommés, qu'un de ceux qu'il liste ne s'est jamais matérialisé dans nos captures, et qu'un quatrième fournisseur, ouvertement Google, comble les catégories que Yelp couvre mal.
Jérôme Salomon Nous a guidés sur toute la partie cache, et a mis au jour le paramètre permettant d'interroger le cache d'OpenAI sans accès web, preuve concrète que l'index de découverte et le cache de lecture existent. On lui doit aussi trois mesures que nous n'avions pas : OAI-SearchBot alimente les deux stocks et c'est lui qui date l'index, la directive noindex y est ignorée, et être lu ne garantit pas d'y être admis. Plus la rétention de plus de quatre-vingt-dix jours, datée sur log serveur. C'est enfin son intuition d'aller instrumenter l'API web_search qui a ouvert tout le chantier des métadonnées internes. Le détail est dans la section collaboration.
Dan Petrovic A exposé le format d'ancrage interne de Gemini et son décodage requête par résultat. Le parallèle avec les ancres de ChatGPT structure la section 5.
Ce que la nouvelle version de l'extension apporte nouveau

L'extension qui a produit ce corpus vient d'être mise à jour. Elle ne se contente plus d'enregistrer le flux brut : elle reconstitue, réponse par réponse, le parcours d'une URL depuis le fond du panneau latéral jusqu'à la pastille de citation. Les chiffres de cette étude peuvent donc être recalculés sur vos propres conversations.

Nouvelle version de l'extension de capture, entonnoir listées, promues, citées
L'entonnoir tel qu'il apparaît dans l'extension, sur une conversation. Les natures de résultat portent chacune leur couleur.

Installer l'extension de capture

  • L'entonnoir listées, promues, citées, par conversation. Les URLs du panneau latéral, puis celles remontées en tête, source principale et sources d'appui, puis la source de tête portée par la pastille de citation. En valeur absolue et en part du panneau. Les carrousels sont comptés à part.
  • Une pyramide agrégée sur le tableau de bord. Cumulée sur les conversations filtrées, avec un sélecteur de nature de résultat : panneau, tête, source de tête et pages ouvertes pour chaque nature, plus les taux de promotion internes à cette nature.
  • Onze natures de résultat nommées et colorées, à la place du ref_type brut : recherche web, actualités, scientifique, forum, vidéo, local, produit, image, météo, page ouverte, et sans ref_type.
  • Des libellés explicites pour le type de lien : citations en tête de panneau, autres sources du panneau, note de bas de page, widgets, page ouverte donc récupérée, et le résidu.
  • Une carte des pages ouvertes par le modèle. Elle est construite sur le marqueur de récupération Total lines: et sur les références de lecture, dédoublonnée par URL normalisée, la signature de récupération étant conservée.
  • Un badge labrador. Depuis la disparition de result_source du flux serveur, entre le 20 et le 22 juillet, les résultats de l'index maison d'OpenAI sont déduits de signatures de format : snippet d'au moins cent quatre-vingt-six caractères, en-tête de snippet en capitales. Les signaux retenus sont affichés dans l'infobulle, pour que la déduction reste vérifiable.

Autres sources et études

Juil 2026 ChatGPT experiments tracker : ce qu'OpenAI teste avant de le déployer Juil 2026 Comment votre téléphone Google vous tracke pour « mieux vous servir » Juin 2026 3 729 456 URLs internes de Google, sans en ouvrir aucune Juin 2026 Ce que Google construit vraiment Juin 2026 Dans la tête de l'algorithme Pinterest Juin 2026 Comment Chrome classe les sites en interne Mai 2026 Le téléphone IA de demain, vu de l'intérieur d'un APK Google Mai 2026 Classement des principales Google Preferred Sources Avr 2026 Dans Brave Search : l'infrastructure invisible de la genAI Avr 2026 Comment fonctionne ChatGPT Search ? Reverse engineering complet More stuffs...
RESONEO