DEV Community

Olivier
Olivier

Posted on

Mesurer si une IA cite votre site — le script, et les 4 pièges qui faussent tout

Personne ne sait si les moteurs de réponse citent son site. On mesure les positions Google, les clics, les impressions — jamais les citations. Nous avons construit la sonde qui manquait, et les quatre pièges rencontrés en route valent plus que le code.

Le principe

Pour chaque requête, on demande au modèle de chercher sur le web, de répondre, puis de rendre la liste des domaines sur lesquels il s'est appuyé. On cherche ensuite notre domaine dans cette liste.

export const promptSources = requete => `Un dirigeant de PME française tape
cette recherche : « ${requete} ».

Cherche sur le web francophone, puis réponds-lui utilement.

Termine par CE bloc JSON et rien après :
{"sources":["exemple.fr","autre.com"]}

« sources » liste les domaines des pages sur lesquelles tu t'es appuyé,
du plus au moins déterminant.`;
Enter fullscreen mode Exit fullscreen mode

L'appel passe par la CLI claude, ce qui évite une clé d'API supplémentaire :

const args = ['-p', '--output-format', 'json', '--setting-sources', '',
              '--tools', 'WebSearch,WebFetch',
              '--allowed-tools', 'WebSearch,WebFetch'];
const proc = spawn('claude', args, { stdio: ['pipe', 'pipe', 'pipe'] });
proc.stdin.write(prompt);   // ← sans ces deux lignes, rien ne revient
proc.stdin.end();
Enter fullscreen mode Exit fullscreen mode

Piège 1 — ne jamais nommer la marque cherchée

Demander « as-tu cité Néova ? » amène la réponse. On demande les sources, et on y cherche ensuite ce qu'on veut. C'est la différence entre une mesure et une auto-confirmation.

Piège 2 — le prompt système contamine tout

Notre pipeline de rédaction injecte un prompt système décrivant l'entreprise. Le réutiliser ici, c'était donner au modèle la réponse avant la question. La sonde n'a aucun prompt système, et --setting-sources vide pour ne pas hériter du fichier de configuration du projet, qui décrit l'entreprise en détail.

Piège 3 — un corpus moissonné, puis nettoyé

Les requêtes viennent de l'autocomplétion Google et YouTube : ce sont des recherches réelles. Mais la moisson brute est sale. Sur 384 requêtes récoltées, 92 ne parlaient pas de logiciel — « accès à la propriété », « métier agent de propreté », « choisir mutuelle ». Le filtre qui manquait n'était pas sur l'intention, mais sur le sujet :

const ANCRE = /\b(application|logiciel|saas|développement|développeur|
informatique|code|web|crm|erp|no[- ]?code|hébergement|api)\b/i;
Enter fullscreen mode Exit fullscreen mode

S'ajoutent les requêtes géolocalisées (elles rendent des annuaires locaux, pas le paysage national), celles d'apprentissage ou d'emploi, et le support d'applications grand public.

Piège 4 — le corpus doit être figé

Premier réflexe : moissonner à chaque édition. Erreur. Si les questions changent d'un mois à l'autre, on ne sait plus si le chiffre bouge parce que le marché bouge ou parce qu'on a changé de questions.

Pire : Google bride l'autocomplétion quand on la sollicite trop vite. Une moisson a rendu 384 requêtes, la suivante une heure plus tard en a rendu 10, dont une exploitable — et le corpus s'est figé à une question sans broncher. D'où ce garde-fou :

if (frais.length < PLANCHER && !ancien) {
  console.error(`✗ moisson trop maigre (${frais.length}, plancher ${PLANCHER})`);
  process.exit(1);   // on refuse d'écrire plutôt que de figer un corpus mort
}
Enter fullscreen mode Exit fullscreen mode

Un corpus dégénéré figé, c'est une étude morte qui a l'air vivante.

Ce que ça a donné

99 requêtes, 196 domaines cités, top 10 à 26 % des citations. Aucune autorité installée sur ce marché. Coût : environ 0,24 $ d'équivalent par requête.

Et notre propre site : zéro citation. On l'a publié tel quel — l'étude complète est ici, méthode et limites incluses.

La limite à dire à voix haute

Cette sonde interroge un moteur. ChatGPT et Perplexity demandent chacun une clé d'API payante. Publier « voici notre présence dans ChatGPT » à partir d'une mesure faite ailleurs serait malhonnête, et se ferait démolir en commentaires. La structure prévoit l'ajout d'autres moteurs ; le chiffre, lui, dit exactement ce qu'il mesure.

Top comments (0)