GEO vs AEO : comment vérifier si votre site est vraiment visible pour l'IA (et corriger le problème)
Guide pratique pour diagnostiquer si votre site est invisible pour ChatGPT, Claude et Perplexity. Méthode de test en 2 minutes, correctifs et audit concret du site Bauhem.

La plupart des entreprises assument qu'un bon positionnement Google suffit. C'était vrai il y a deux ans. Ce ne l'est plus.
Aujourd'hui, vos clients ne passent pas tous par une barre de recherche Google. Ils posent des questions à ChatGPT. Ils utilisent Claude pour comparer des fournisseurs. Ils interrogent Perplexity avant de visiter un site.
Et si votre site est techniquement invisible pour ces moteurs de réponse, vous n'existez tout simplement pas dans leurs résultats.
Le pire? Vous ne le saurez jamais en naviguant normalement sur votre propre site. Tout semble parfait dans un navigateur. Le problème est ailleurs.
Les deux couches de découvrabilité IA
Il faut distinguer deux choses que presque tout le monde confond.
GEO (Generative Engine Optimization) : c'est l'optimisation pour les AI Overviews de Google et les réponses intégrées aux résultats de recherche. Google possède un index massif, exécute le JavaScript de votre page dans une seconde passe, et finit par comprendre votre contenu même s'il est chargé dynamiquement.
AEO (Answer Engine Optimization) : c'est l'optimisation pour les assistants autonomes — ChatGPT, Claude, Perplexity. Ces outils ne fonctionnent pas du tout de la même manière. Leurs crawlers récupèrent votre HTML brut, sans exécuter le JavaScript. Si votre contenu est injecté par du JS après le chargement initial, ces crawlers voient une coquille vide avec votre logo et votre navigation, et rien d'autre.
Le résultat? Google peut très bien vous citer dans un AI Overview pendant que ChatGPT n'a absolument aucune idée de ce que vous faites. Même site. Même URL. Deux résultats complètement différents.
Pourquoi ça arrive
Les sites modernes construits avec React, Vue ou des frameworks similaires chargent souvent leur contenu côté client. Le HTML qui arrive en premier est un squelette presque vide — une div racine et quelques scripts. Le navigateur exécute ensuite le JavaScript pour remplir la page.
Google a les ressources pour exécuter ce JavaScript dans une seconde passe de rendu. La plupart des crawlers d'IA ne le font pas. Ils prennent la première réponse HTML et passent au site suivant.
Ce problème est invisible en test normal parce que vous visitez votre site dans un navigateur, le JavaScript s'exécute, et tout semble parfait. Le problème n'apparaît que quand quelque chose lit la réponse brute sans exécuter les scripts — exactement ce que font les crawlers IA.
Le test en 2 minutes (aucun outil requis)
Vous pouvez diagnostiquer ça manuellement, tout de suite.
1. Ouvrez une page importante de votre site dans un navigateur.
2. Faites un clic droit et choisissez « Afficher le code source de la page » — pas « Inspecter l'élément », qui montre la version rendue et masque le problème.
3. Dans cette source, cherchez (Ctrl+F) une phrase que vous voyez sur la page, idéalement du contenu principal, pas le menu.
4. Si la phrase est présente dans le source, les crawlers IA peuvent la lire. Si elle est absente, votre contenu est chargé via JavaScript et les assistants IA voient une coquille vide.
Faites ce test sur votre page d'accueil, une page de service importante, et un article de blogue. Les résultats varient souvent par type de page, parce que différents gabarits chargent leur contenu différemment.
Confirmer ce que les bots voient vraiment
Le View Source est un bon indicateur, mais pour voir exactement ce qu'un crawler spécifique reçoit, utilisez curl avec le user agent approprié:
curl -sL -A "GPTBot/1.0" https://votresite.com | grep "une phrase de votre contenu"
Si grep retourne la ligne, GPTBot voit votre contenu. S'il ne retourne rien, il ne le voit pas.
Changez le user agent pour ClaudeBot/1.0 ou PerplexityBot/1.0 pour tester chaque moteur, parce qu'ils ne se comportent pas tous de manière identique.
L'audit Bauhem : un exemple concret
On a appliqué cette méthode sur notre propre site. Voici les résultats.
admin.bauhem.com — testé le 3 juin 2026
Test | Résultat
Body text dans le HTML brut (sans JS) | 6 781 caractères
GPTBot | ✅ Voit tout le contenu
ClaudeBot | ✅ Voit tout le contenu
PerplexityBot | ✅ Voit tout le contenu
robots.txt | ✅ Aucun crawler IA bloqué
Sitemap | ✅ Présent, hreflang FR/EN
Schema.org | ✅ Organization + WebSite + WebPage + BreadcrumbList
Le site passe les trois crawlers sans exception. Le contenu — textes, services, descriptions, navigation — est entièrement présent dans le HTML source, avant que le moindre JavaScript ne s'exécute.
Pourquoi? Parce que le site est construit avec un rendu côté serveur (SSR via Next.js). Le HTML livré au navigateur contient déjà tout le contenu. C'est un choix d'architecture, pas un hasard.
Les correctifs, par ordre d'impact
Si votre site échoue le test, voici ce qu'il faut faire.
1. Rendu côté serveur (SSR) ou génération statique
C'est la solution fondamentale. Dans Next.js, ça passe par getServerSideProps ou la génération statique. Dans Nuxt, c'est le mode universel par défaut. La plupart des frameworks modernes offrent une option équivalente.
L'objectif est simple : le contenu doit exister dans la première réponse HTML, avant toute exécution JavaScript.
2. Vérifiez votre robots.txt
Beaucoup de sites bloquent GPTBot par défaut sans le savoir. Ouvrez votre fichier robots.txt et vérifiez qu'aucune règle n'empêche les crawlers IA d'accéder à vos pages:
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
Si vous voyez ça, vous avez un problème. Ces crawlers sont bannis de votre site.
3. Données structurées (Schema.org)
Pour la couche GEO spécifiquement, assurez-vous que votre balisage schema.org est valide et présent. Organization, WebSite, WebPage, BreadcrumbList sont les bases. BlogPosting pour les articles. LocalBusiness ou ProfessionalService si pertinent.
4. Contenu autonome et extractible
Un paragraphe devrait pouvoir répondre à une question sans dépendre des paragraphes autour. Les moteurs d'IA extraient des passages, pas des pages entières. Structurez votre contenu pour que chaque section ait du sens isolément.
Ce que Bauhem fait différemment
Chez Bauhem, on ne traite pas la découvrabilité IA comme une couche qu'on ajoute après coup. C'est intégré dans l'architecture même du site.
Quand on conçoit un site ou un système web pour un client, trois principes guident le travail:
1. Structure avant style. Le contenu est organisé sémantiquement, avec une hiérarchie claire, avant qu'on touche au design visuel.
2. Rendu serveur par défaut. Que ce soit avec Ycode (qui génère du HTML statique par conception), Next.js en mode SSR, ou Astro en mode hybride — le contenu est toujours présent dans le HTML initial.
3. Métadonnées riches et vérifiées. Schema.org, Open Graph, sitemaps multilingues, robots.txt audité. Pas de raccourcis.
Le résultat: des sites qui performent pour Google, pour ChatGPT, pour Claude, pour Perplexity — et pour les humains.
La checklist de diagnostic AEO
- [ ] View Source sur page d'accueil → contenu principal présent?
- [ ] View Source sur page service clé → contenu présent?
- [ ] View Source sur article de blogue → contenu présent?
- [ ] curl avec GPTBot → contenu trouvé?
- [ ] curl avec ClaudeBot → contenu trouvé?
- [ ] curl avec PerplexityBot → contenu trouvé?
- [ ] robots.txt → aucun crawler IA bloqué?
- [ ] Schema.org → Organization, WebSite, WebPage présents?
- [ ] Sitemap → présent et à jour?
- [ ] Le contenu en HTML brut est-il substantiel (>1000 caractères de texte lisible)?
Si vous cochez tout, votre site est prêt pour l'IA. S'il vous manque des cases, vous savez par où commencer.
Vous voulez un diagnostic complet de votre site? Contactez-nous — on analyse votre découvrabilité IA et on vous dit exactement ce qui manque.
Articles connexes
Explorer d’autres articles
Construisons votre prochaine solution dès aujourd’hui.
Que vous souhaitiez optimiser vos systèmes existants ou concevoir quelque chose d’entièrement nouveau, notre équipe est prête à livrer des solutions bâties pour l’avenir.


