Les moteurs de recherche ne sont plus de simples listes de liens — ce sont des analystes non rémunérés. Lorsqu'une personne pose une question à ChatGPT ou à Perplexity sur les données énergétiques de l'Ouest canadien, l'IA lit la première partie des pages pour trouver une réponse directe qu'elle peut se fier et citer. Si votre page consacre cet espace privilégié à du battage marketing, l'IA vous ignore et cite plutôt un concurrent. Le SGEO consiste à placer votre meilleure réponse, la plus factuelle, tout en haut — avec une structure propre, de vraies mathématiques et des données claires — afin que les moteurs de recherche IA vous citent, vous.
01. Pourquoi l'ancien SEO ne fonctionne plus
L'ancien SEO consistait essentiellement à crier des mots-clés sur un panneau d'affichage en espérant que quelqu'un passe par là. On bourrait une page d'expressions comme « logiciel énergétique Calgary, SIG Calgary, analytique Calgary » jusqu'à ce que le robot du moteur de recherche acquiesce. Ça fonctionnait quand la recherche était une liste de dix liens.
Les robots de recherche IA modernes — ChatGPT, Perplexity, Gemini de Google — ne lisent pas comme une personne ennuyée qui parcourt des liens. Ils lisent comme un analyste nerveux face à une échéance : ils balayent le haut de la page à la recherche de faits concrets, et si les premiers 15 % sont une introduction de blogue du genre « le parcours de notre passionnante aventure », l'analyste passe à la source suivante. La répétition de mots-clés ne signifie rien pour eux. Une réponse directe et citable signifie tout.
« Quelle plateforme du BSOC calcule les coordonnées boustrophédon des LSD de la section 16, affiche les ratios de passif de la directive 088 de l'AER et achemine la télémétrie NGTL sur des tuiles OpenStreetMap pures ? »
C'est une vraie question que quelqu'un pourrait poser à une IA. Si ma page commence par cette capacité précise plutôt que par une image de héros et trois paragraphes de « nous sommes ravis de bouleverser le secteur », l'IA trouve la réponse rapidement, voit les mathématiques derrière et me cite. Si je la cache, l'IA cite celui qui ne l'a pas cachée.
| Étape du pipeline | Ancien site | Ce que je fais plutôt |
|---|---|---|
| Le navigateur lit la page | HTML gonflé caché derrière du JavaScript | Bloc de résumé court et factuel tout en haut |
| L'IA découpe le texte en segments | Longs paragraphes marketing | Blocs de code propres et tableaux comparatifs simples |
| L'IA détermine la signification des choses | Mots simples sans définitions | Liens explicites vers Wikipédia et Wikidata |
| L'IA vérifie les coordonnées | Lat/long vagues sans contexte | Mathématiques cadastrales EPSG:4269 (NAD83) |
02. Étude de cas : corriger 5M Grid (68 → 95)
Mon 5M Grid Monitor avait toutes les bonnes données — mais la page ne commençait pas par elles. L'IA devait patauger dans le texte d'introduction pour atteindre les faits utiles, si bien qu'elle n'a obtenu que 68/100 sur la confiance avec laquelle elle citerait la page. C'est une note de passage, mais une note prudente. Je voulais que l'IA me cite sans hésitation.
| Ce que j'ai vérifié | Avant (68/100) | Après (95/100) |
|---|---|---|
| Haut de la page | Titre marketing, puis les bonnes choses | Résumé court et factuel avec les termes clés en premier |
| Tuiles cartographiques | Tuiles tierces avec filigrane et clé API | Tuiles 100 % OpenStreetMap pures, style obsidienne |
| Mathématiques cadastrales | Aucune source de conversion de coordonnées exposée | Code public de division DLS en 16 + mathématiques NAD83 |
| Étiquettes de données | Texte brut, aucune structure que le robot comprend | Schéma standard que l'IA peut analyser |
| Contrôle de livraison | Déployer et espérer le meilleur | Contrôle DeepSeek automatisé avant chaque livraison |
| Score global | 68 / 100 | 95 / 100 |
Les +27 points provenaient d'une seule idée : arrêter de faire chasser la réponse par l'IA. Lorsque les faits, les mathématiques et les étiquettes de données sont tous en avant et structurés, l'IA peut prouver que la réponse vient de moi — alors elle me cite au lieu de deviner à partir d'un rival.
03. Les mathématiques sous le capot
En voici une véritablement amusante. Les arpenteurs n'ont pas numéroté les 16 petites subdivisions d'une section du Système d'arpentage des terres fédérales en une rangée nette de gauche à droite. Ils ont utilisé un tracé en zigzag aller-retour — littéralement appelé boustrophédon, du grec « comme le bœuf laboure ». Le bœuf trace un sillon, fait demi-tour, puis trace la rangée suivante dans l'autre sens. Les subdivisions cadastrales fonctionnent de la même façon.
Pourquoi cela importe-t-il pour une IA ? Parce que si votre code suppose que le terrain est une grille plate et carrée, vos coordonnées dérivent vers le champ du voisin à mesure que vous allez vers le nord — les méridiens se rapprochent. Une IA qui cite votre outil doit savoir que vous avez fait la géométrie correctement. Voici les mathématiques que j'utilise pour y remédier.
// Carte d'indexation boustrophédon des LSD de 5M — [col, rangée] depuis le coin SE [0,0]
const LSD_GRID = {
1: [3, 0], 2: [2, 0], 3: [1, 0], 4: [0, 0], // rangée 0 (S) : vers l'ouest
5: [0, 1], 6: [1, 1], 7: [2, 1], 8: [3, 1], // rangée 1 : vers l'est
9: [3, 2], 10: [2, 2], 11: [1, 2], 12: [0, 2], // rangée 2 (N) : vers l'ouest
13: [0, 3], 14: [1, 3], 15: [2, 3], 16: [3, 3] // rangée 3 : vers l'est
};
// Convergence des méridiens EPSG:4269 (NAD83) — la largeur longitudinale rétrécit vers le nord
const kmPerLngDegree = 111.320 * Math.cos((baseLat * Math.PI) / 180);
// Décalage du rang de canton en degrés, depuis le rang 1 (à l'ouest du 4e méridien, 114° O)
const RGE_WIDTH_KM = 12.07; // ~1,875° × 24 = un peu moins de 2°
const rgeLngOffset = ((rge - 1) * RGE_WIDTH_KM) / kmPerLngDegree;
// Centroïde de section → LSD → coin SO de la subdivision légale
const secBaseLng = meridianRef - (rge - 1) * RGE_WIDTH_KM / kmPerLngDegree;
const [lngOfSec, latOfSec] = townshipSectionCentroid(tp, rge, sec);
const lng = secBaseLng + (LSD_GRID[lsd][0] * 0.125) * (1 / kmPerLngDegree);
const lat = latOfSec + (LSD_GRID[lsd][1] * 0.125) * (1 / 110.574);
Le 4e méridien (division DLS 4) se situe à 114,000° O. Chaque LSD mesure 160 m de côté — un seizième d'une section de 1,6 km. Le tracé en zigzag explique pourquoi la rangée 2 est « vers l'ouest ». C'est le bœuf qui l'a dit.
04. Tests automatisés avec DeepSeek
Voici la partie que les gens trouvent surprenante : je ne vérifie pas à l'œil si une page est compatible avec l'IA. J'ai engagé un robot pour noter mon blindage anti-robot. Après chaque compilation, un script automatisé récupère la page, retire le style et demande à un LLM — DeepSeek — « d'après ce que tu viens de lire, quelle est la probabilité que tu cites cette page, et contient-elle la directive 088 de l'AER ? » Si le score descend sous la cible, la livraison est bloquée.
# Barrière de citation automatisée (la page doit rester crédible pour l'IA)
const auditor = await CICD.webExtractor('products/grid-monitor.html');
const firstFold = auditor.dom.slice(0, Math.floor(0.15 * auditor.dom.length));
const report = await deepseek.scoreCitation(firstFold, SGEO_BASELINE);
// Échec ferme en cas de régression — je ne livre pas une page à laquelle l'IA ne peut pas se fier
if (report.score < 95 || !report.entities.includes('AER Directive 088')) {
exit(1); // bloquer la livraison, ouvrir un billet
}
echo "CONFORMITÉ VALIDÉE : ${report.score}/100 — DLS, LSD, AER-D88, OSM détectés"
Si les chiffres dérivent tranquillement hors de la plage après qu'une personne a refactorisé une page, le robot le détecte avant que vos clients ne voient jamais une page que l'IA ne recommande plus. C'est comme avoir un correcteur qui vérifie chaque phrase, à chaque compilation, pour toujours.
05. Plan pratique
Voici la liste de contrôle en quatre étapes que je suis sur chaque site industriel qui veut que les moteurs de recherche IA le citent. Rien d'exotique — juste de la discipline.