Méthodologie · version 1.0 · mise à jour le 8 septembre 2026
Tout ce qui est affiché vient de vraies réponses, gardées et datées. Cette page explique chaque étape, avec les chiffres, pour que vous puissiez refaire la mesure vous-même et nous contredire si nous nous trompons.
On teste 30 recherches qu'un client pourrait faire pour trouver un professionnel comme vous. Chaque recherche est posée à ChatGPT, Gemini et Perplexity. On compte si votre nom sort, à quelle place, et à quelle fréquence. Puis on compare votre compte à celui des autres entreprises citées dans votre ville : c'est votre place. Le détail du calcul, chiffres compris, est plus bas.
30
requêtes par IA
6 familles × 5 formulations
3
IA interrogées
ChatGPT, Gemini, Perplexity
90
réponses par scan
avant répétitions
10
métiers dans l'Index
tout métier peut être scanné
Six familles de questions, cinq formulations chacune, identiques pour tous les métiers. Les formulations sont fixes : la même question est posée à chaque scan, dans chaque ville, ce qui rend les scores comparables entre eux et dans le temps.
Exemple généré pour « plombier » à Bordeaux (c'est exactement ce que reçoivent les IA) :
Général
Urgence
Prix
Avis / confiance
Problème précis
Comparatif
La famille « Problème précis » remplace [problème] par une situation concrète, propre au métier :
| Métier | Mot utilisé dans les requêtes | [problème] |
|---|---|---|
| Plombier | plombier / plombiers | fuite d'eau |
| Serrurier | serrurier / serruriers | porte claquée |
| Électricien | électricien / électriciens | panne de courant |
| Chauffagiste | chauffagiste / chauffagistes | chaudière en panne |
| Climatisation / pompe à chaleur | installateur de climatisation / installateurs de climatisation et pompe à chaleur | climatisation qui ne refroidit plus |
| Couvreur | couvreur / couvreurs | fuite de toiture |
| Dératisation | entreprise de dératisation / entreprises de dératisation | rats dans la maison |
| Garagiste | garagiste / garagistes | voiture qui ne démarre pas |
| Déménageur | déménageur / déménageurs | déménagement d'un appartement |
| Entreprise de nettoyage | entreprise de nettoyage / entreprises de nettoyage | nettoyage de fin de chantier |
Nous passons par les interfaces de programmation officielles de chaque IA, avec la recherche web activée et la localisation fixée sur la ville testée. Chaque réponse est conservée intégralement (texte, sources citées, modèle, date, durée).
ChatGPT
OpenAI Responses API + outil de recherche web
Chaque requête est envoyée à l'API Responses avec l'outil de recherche web activé. Nous vérifions que la recherche a bien eu lieu dans la réponse ; sinon la réponse est rejouée.
Localisation. Le paramètre de localisation de l'utilisateur est fixé sur la ville testée : pays FR, ville, région. Rien d'autre n'est personnalisé.
Gemini
Gemini API + ancrage Google Search
Chaque requête passe par l'API Gemini avec l'ancrage sur la recherche Google activé (« grounding »). Les URL consultées sont récupérées depuis les métadonnées d'ancrage.
Localisation. L'API Gemini n'a pas de champ de localisation pour la recherche : nous ajoutons une instruction explicite « L'utilisateur se trouve à [ville] ([région]), France » et, quand l'API l'accepte, les coordonnées de la ville.
Perplexity
Perplexity API, modèle sonar
Chaque requête est envoyée au modèle sonar avec la recherche web ; les citations retournées par Perplexity sont conservées telles quelles.
Localisation. Le champ « user_location » de l'API est renseigné avec le pays, la ville et la région.
Les modèles exacts (par exemple la version de ChatGPT utilisée) sont enregistrés avec chaque réponse et indiqués dans le rapport complet.
Les questions du type « plombier près de moi » n'ont de sens que si l'IA connaît la position réelle de la personne. Par une interface de programmation, cette position est simulée ; la réponse dépendrait alors davantage de notre réglage que de la réalité. Nous les excluons donc du score. Nous nommons toujours la ville dans la requête, ce qui correspond à ce que tape la majorité des gens qui cherchent un artisan. Ces cinq formulations existent dans un mode séparé, jamais compté dans le score :
Posez deux fois la même question à une IA : la réponse change parfois. Pour distinguer une recommandation stable d'un hasard, nous pouvons poser chaque question plusieurs fois (R répétitions) et compter, pour chaque couple IA × requête, dans combien de répétitions une entreprise apparaît.
Reproduite mot pour mot depuis le code qui la calcule (packages/engine/src/scoring/score.ts). Si le code change, cette page change.
Pour une entreprise E, un moteur M et une requête Q, on regarde les R répétitions :
presence(E, M, Q) = (1/R) · Σ_r poids_position(rang de E dans la réponse r) ∈ [0, 1]
poids_position : 1er cité = 1.00 · 2e = 0.85 · 3e = 0.70 · 4e et au-delà = 0.55 · absent = 0
Score par moteur :
score_M(E) = 100 · Σ_Q w_Q · presence(E, M, Q) / Σ_Q w_Q
w_Q = poids de la famille de Q (toutes = 1 par défaut ; voir FAMILY_WEIGHTS)
Score global :
score(E) = moyenne des score_M sur les moteurs interrogés (chaque moteur pèse pareil).
Lecture : 100 = cité en premier par tous les moteurs sur toutes les requêtes, à chaque répétition.
Un score de 12 ≈ "cité dans ~1 réponse sur 8, pas en premier".Poids de position
Lecture du score
Le badge public « Recommandé par les IA » n'est proposé qu'à partir de 65.
Une réponse d'IA est du texte libre. Pour en tirer une liste d'entreprises et de sources, nous ne cherchons pas de mots-clés : un second modèle lit chaque réponse et doit rendre un JSON au format imposé (liste ordonnée des entreprises locales nommées, domaine et type de chaque URL citée, et un indicateur « l'IA a refusé de nommer qui que ce soit »). Le format est validé strictement des deux côtés — par l'API du modèle et par notre code — et toute sortie non conforme est rejetée puis rejouée.
Les règles données à ce modèle excluent les annuaires et plateformes (PagesJaunes, StarOfService, Google Maps…), les marques nationales citées sans agence locale, les organismes et les exemples fictifs. Les domaines connus (annuaires, plateformes d'avis, réseaux sociaux) sont typés par une liste fixe qui prime sur l'avis du modèle.
Contrôle manuel. À chaque passe de l'Index, nous relirons un échantillon de 200 réponses tirées au hasard et comparerons, ligne par ligne, ce que le modèle a extrait avec ce que la réponse dit. La grille et le taux d'exactitude sont produits par les commandes extract:audit et extract:audit:score du moteur, et seront publiés ici. Aucune passe réelle n'a encore eu lieu : il n'y a donc rien à afficher pour l'instant, et nous préférons le dire.
Les noms d'entreprises sont ensuite normalisés (accents, ponctuation, formes juridiques) et regroupés quand deux graphies désignent visiblement la même société. Votre nom est comparé aux noms extraits de la même façon ; le rapport montre les graphies retenues.
Une réponse est identifiée par IA × requête × ville × jour × répétition. Elle n'est demandée qu'une fois par jour : si deux plombiers de Bordeaux se scannent le même jour, la deuxième mesure réutilise les 90 réponses de la première, gratuitement, et n'appelle aucune IA. Les scores des deux entreprises sont calculés sur exactement les mêmes réponses, ce qui les rend comparables.
Le lendemain, les réponses sont redemandées : le cache n'est jamais utilisé pour faire passer une mesure ancienne pour une mesure du jour. La date affichée sur un résultat est la date réelle des réponses.
Ce qu'un particulier voit dans l'application ChatGPT ou Gemini peut différer de ce que renvoie l'interface de programmation : mémoire des conversations précédentes, personnalisation, géolocalisation réelle de l'appareil, version du modèle. Nous mesurons un utilisateur « neutre » dans la ville, sans historique.
Aujourd'hui : localisation explicite dans chaque requête et dans les paramètres de l'API, et répétitions pour lisser le hasard. Prévu, dès la première passe réelle : une comparaison manuelle entre les réponses de l'API et celles de l'application grand public sur un échantillon de requêtes, dont nous publierons les écarts.
Une réponse de ce matin peut être différente ce soir. Un score est une photographie datée, pas une propriété stable de votre entreprise. C'est pour cela que chaque résultat porte sa date et expire au bout de 30 jours.
Il ne mesure ni votre chiffre d'affaires, ni votre référencement Google classique, ni la qualité de votre travail. Il mesure une seule chose : si les IA vous nomment quand on leur pose ces 30 questions dans votre ville, et à quelle place.
Sur certaines questions (les tarifs, surtout), les IA refusent de nommer une entreprise. Ces réponses comptent comme « absent » pour tout le monde et sont comptabilisées à part dans l'index (part des réponses qui refusent).
Deux entreprises aux noms très proches peuvent être confondues par le regroupement. Le rapport affiche les graphies regroupées pour que vous puissiez le vérifier ; signalez-nous toute erreur, nous corrigeons et republions.
Un résultat est daté et reste consultable, mais il est affiché comme expiré 30 jours après la mesure. Nous ne prolongeons pas artificiellement sa validité. Le Suivi relance un scan chaque semaine ; un scan ponctuel peut être relancé à la demande. L'Index France est remesuré chaque trimestre et chaque cellule porte la date de sa passe.
Tarifs publics des fournisseurs au 8 septembre 2026, coût typique par appel constaté sur nos mesures. Le cache fait baisser ces coûts dès que deux entreprises partagent une ville.
0.022 $
par réponse ChatGPT
recherche web incluse
0.020 $
par réponse Gemini
recherche web incluse
0.007 $
par réponse Perplexity
recherche web incluse
0.0010 $
par extraction
second modèle, lecture d'une réponse
≈ 1.56 $
par scan réel
90 réponses + 90 extractions, sans cache
≈ 4.68 $
par cellule de l'index
3 répétitions, 270 réponses
C'est ce coût, multiplié par le nombre de scans gratuits, qui explique que le détail soit payant. Détail des prix sur la page Tarifs.
Votre classement gratuit applique exactement ce qui est décrit ici. Vous pouvez lire chaque réponse.
Voir ma place