Aller au contenu
Français English

Guide technique

Référencement IA (GEO) : le guide technique en six dimensions

Par · Dernière mise à jour : 10 septembre 2026 · Méthodologie SEOForge v1

Le référencement IA, ou GEO (Generative Engine Optimization), aussi appelé SEO IA ou AEO selon les auteurs, est une discipline technique : rendre un site lisible, identifiable et citable par les moteurs de réponse, ChatGPT, Claude, Perplexity ou Google AI Mode. Lisible, parce que leurs robots doivent pouvoir entrer et extraire le texte. Identifiable, parce qu'ils doivent savoir qui parle. Citable, parce qu'une réponse renvoie à une source datée et structurée. Les six dimensions ci-dessous sont exactement celles que notre test GEO gratuit note, dans l'ordre de leur poids.

Chaque section suit le même plan : ce que les moteurs attendent, documentation de l'éditeur à l'appui ; comment le vérifier ; comment le corriger dans le code ; ce que nous avons fait sur seoforge.fr. Quand un comportement n'est pas documenté, nous le disons. La marche à suivre, étape par étape, est dans comment être cité par ChatGPT.

1. Accès des crawlers IA (poids 35)

Un moteur de réponse ne peut citer que ce qu'il a pu lire. Cette dimension vérifie que les robots des assistants sont autorisés, et distingue les robots de réponse, qui lisent une page pour répondre à un utilisateur, des robots d'entraînement, qui constituent les corpus. Bloquer les seconds est un choix éditorial ; bloquer les premiers retire le site des réponses. guide détaillé.

Ce que les moteurs attendent

Chaque éditeur documente ses robots. OpenAI distingue OAI-SearchBot, « utilisé pour faire apparaître des sites dans les résultats de recherche de ChatGPT », et précise que les sites qui l'excluent « ne seront pas montrés dans les réponses de recherche de ChatGPT » ; GPTBot sert l'entraînement des modèles, et son blocage signifie que le contenu ne doit pas y servir ; ChatGPT-User agit à la demande d'un utilisateur et, selon OpenAI, « les règles robots.txt peuvent ne pas s'appliquer » (documentation OpenAI). Anthropic publie trois agents : ClaudeBot pour l'entraînement, Claude-User quand un utilisateur pose une question, Claude-SearchBot pour la recherche ; les trois « respectent les directives standard de robots.txt », et bloquer Claude-User ou Claude-SearchBot « peut réduire la visibilité du site » dans les réponses (documentation Anthropic). Perplexity sépare PerplexityBot, qui sert à « faire apparaître et lier des sites dans les résultats » et « n'est pas utilisé pour entraîner des modèles », et Perplexity-User, qui « ignore généralement robots.txt » puisque la requête vient d'un utilisateur (documentation Perplexity). Google n'a pas de robot IA distinct : Google-Extended est un jeton de contrôle qui gère l'usage du contenu « pour l'entraînement des futures générations de modèles Gemini » et pour le grounding, sans « impacter l'inclusion d'un site dans Google Search » (documentation Google). Pour Amazonbot, Applebot-Extended, meta-externalagent, Bytespider, CCBot et MistralAI-User, présents dans notre liste, nous n'avons pas de documentation équivalente vérifiée : le test les traite selon leur rôle déclaré, sans affirmer leur comportement.

La lecture du fichier suit la RFC 9309 : un robot n'obéit qu'au groupe dont le jeton user-agent correspond le plus précisément au sien, il se rabat sur le groupe * s'il n'en trouve pas, et un fichier doit rester lisible jusqu'à 500 Kio. Deux conséquences pratiques : un groupe dédié à un robot avec un simple Allow: / annule pour lui toutes les interdictions du groupe général ; et un robots.txt qui répond en erreur serveur (5xx) vaut « tout interdit » pour un robot conforme, alors qu'un 404 vaut « tout permis ».

Comment le vérifier

Lancez le test GEO sur votre page d'accueil. La dimension « Accès des crawlers IA » affiche « Crawlers de réponse IA autorisés : x sur 8 » et « Crawlers d'entraînement autorisés : x sur 8 », robot par robot. Le point « Fichier robots.txt lu et conforme » signale les lignes non conformes ; « Notre crawler autorisé sur la page d'accueil » confirme que le test lui-même a pu entrer. En ligne de commande, la même vérification tient en une requête : curl -A "OAI-SearchBot" -sI https://votre-site.fr/. guide détaillé.

Comment le corriger dans le code

Un seul groupe partagé par tous les robots nommés et par * : une interdiction ajoutée plus tard vaut pour tous. Les robots refusés volontairement reçoivent leur propre groupe avec Disallow: /.

# robots.txt : un groupe pour tous, mêmes règles
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Google-Extended
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/

# choix éditorial : pas d'entraînement
User-agent: GPTBot
User-agent: ClaudeBot
Disallow: /

Sitemap: https://votre-site.fr/sitemap.xml

Le fichier ne suffit pas quand un CDN ou un pare-feu filtre les robots en amont : la règle doit aussi exister dans la console du CDN, sinon le robots.txt autorise un robot que le pare-feu renvoie en 403. guide détaillé.

Ce que nous avons fait sur seoforge.fr

Notre robots.txt liste chaque crawler IA nommément dans un groupe unique partagé avec *, et un test automatisé interdit qu'un robot reçoive un groupe séparé par accident. Le détail, robot par robot, est dans l'article sur notre implémentation.

2. Extractibilité du contenu (poids 20)

Entrer ne suffit pas : le robot doit trouver du texte dans le HTML qu'il reçoit. Google documente que le rendu JavaScript est mis en file d'attente et « peut prendre plus longtemps » que quelques secondes, et conseille le rendu côté serveur parce que « tous les robots ne peuvent pas exécuter JavaScript » (documentation Google). Les éditeurs d'assistants ne documentent pas de rendu JavaScript pour leurs robots ; en l'absence de documentation, la seule hypothèse sûre est qu'ils lisent le HTML tel que le serveur l'envoie. guide détaillé.

Ce que les moteurs attendent

Une page dont le texte, le titre et les en-têtes sont dans la réponse HTTP, sans exécution de script : un h1 unique, des h2, une balise title et une meta description, une canonical et un attribut lang. Ce sont les mêmes fondamentaux que le SEO on-page ; la différence tient au lecteur, qui ne rend pas la page.

Comment le vérifier

Le test GEO rapporte « Texte lisible sans JavaScript : n caractères (x % du HTML) », « Titre h1 unique : n trouvé(s) », « Titres h2 : n », « Balise <title> de 10 à 70 caractères », « Meta description de 50 à 170 caractères », « Balise canonical » et « Attribut lang sur <html> ». En ligne de commande : curl -s https://votre-site.fr/ | sed 's/<[^>]*>//g' | wc -w donne l'ordre de grandeur du texte servi.

Comment le corriger dans le code

Le correctif est architectural : rendre côté serveur, ou pré-rendre au déploiement. Sur WordPress et Shopify, c'est le comportement par défaut, sauf thème ou constructeur qui injecte le contenu au chargement ; sur Next.js, Nuxt ou SvelteKit, le rendu serveur se configure par page. Le motif attendu est le suivant :

<!-- coquille : rien à extraire sans JavaScript -->
<body><div id="app"></div><script src="/bundle.js"></script></body>

<!-- rendu serveur : le texte est dans la réponse -->
<body>
  <main>
    <h1>Audit SEO technique pour PME</h1>
    <p>Nous passons votre site au crible et nous livrons les correctifs…</p>
    <h2>Ce que nous analysons</h2>
  </main>
  <script src="/bundle.js" defer></script>
</body>

Ce que nous avons fait sur seoforge.fr

Le site est rendu par le serveur, page par page ; le JavaScript n'ajoute que des comportements. Les détails figurent dans l'article d'implémentation.

3. Données structurées et identité d'entité (poids 15)

Lire ne suffit pas non plus : le moteur doit savoir qui parle, et ne pas confondre l'entreprise avec un homonyme. Le JSON-LD est le moyen documenté de le lui dire. guide détaillé.

Ce que les moteurs attendent

Google documente pour Organization les propriétés name, url, logo, sameAs, legalName, vatID, taxID, iso6523Code et foundingDate, décrit sameAs comme « l'URL d'une page d'un autre site avec des informations supplémentaires sur votre organisation », et précise que certaines propriétés « servent en coulisses à distinguer votre organisation d'autres organisations » (documentation Google). Les éditeurs d'assistants ne publient pas de documentation équivalente sur leur usage du JSON-LD ; nous n'affirmons donc rien sur la façon dont ils le lisent. Ces propriétés restent la seule identité lisible en machine sur la page, et les homonymes existent : d'autres produits portent le nom SEOForge.

Comment le vérifier

Le test rapporte « Blocs JSON-LD valides : n (invalides : n) », « Entité d'identité (Organization, LocalBusiness, Person) », « name et url présents sur l'entité », « Profils officiels sameAs sur l'entité : n », « Identifiant légal (SIREN/vatID) présent », « Nœud WebSite présent » et « Données structurées de contenu ».

Comment le corriger dans le code

Un nœud Organization avec un @id stable, les identifiants du registre, le fondateur et les profils officiels, sur chaque page :

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://votre-site.fr/#organization",
  "name": "Votre entreprise",
  "legalName": "VOTRE ENTREPRISE",
  "url": "https://votre-site.fr",
  "logo": "https://votre-site.fr/logo.png",
  "description": "Ce que vous faites, où - à ne pas confondre avec…",
  "identifier": {"@type": "PropertyValue", "propertyID": "SIRET", "value": "12345678900012"},
  "vatID": "FR12345678900",
  "foundingDate": "2020-03-01",
  "founder": {"@type": "Person", "name": "Prénom Nom", "url": "https://votre-site.fr/fr/about"},
  "sameAs": ["https://www.linkedin.com/company/votre-entreprise", "https://www.pappers.fr/entreprise/…"]
}
</script>

Les valeurs viennent de la configuration, jamais d'une saisie à la main : un SIRET tapé deux fois finit par diverger.

Ce que nous avons fait sur seoforge.fr

Un graphe Organization, LocalBusiness et WebSite sur toutes les pages, avec SIRET, TVA, date de création, fondateur et une description qui nomme l'homonymie ; le détail et les choix sont dans l'article d'implémentation. L'audit SEO technique vérifie ce graphe sur les pages qui comptent.

4. Fichier llms.txt (poids 10)

Le llms.txt est une convention proposée par Jeremy Howard en septembre 2024 : un fichier Markdown à la racine du site qui présente le site aux modèles de langage (llmstxt.org). Le format est court : « un H1 avec le nom du projet ou du site » est la seule section obligatoire, suivie d'« une citation avec un court résumé » et de « zéro ou plusieurs sections Markdown délimitées par des en-têtes H2 » contenant des listes de liens. guide détaillé.

Ce que les moteurs attendent

Rien de documenté : aucun des éditeurs cités ci-dessus n'a publié qu'il lit ce fichier. Nous le recommandons parce qu'il coûte une heure, ne peut pas nuire, et qu'il est le seul endroit où le site se décrit lui-même en clair. Le test lui donne un poids faible pour cette raison.

Comment le vérifier

Le test rapporte « Fichier /llms.txt présent (HTTP n) », « Titre « # Nom » en première ligne », « Résumé en citation « > … » présent », « Sections « ## » : n », « Liens Markdown vers vos pages : n (3 attendus au minimum) », « Taille raisonnable » et la présence optionnelle de /llms-full.txt.

Comment le corriger dans le code

Un squelette suffit pour commencer ; notre générateur le produit depuis votre sitemap et vos vraies balises, sans rien inventer :

# Votre entreprise

> Votre entreprise - ce que vous faites, pour qui, où. À ne pas confondre avec…

## Services

- [Service principal](https://votre-site.fr/fr/service-principal) : une phrase qui répond à la question.
- [Second service](https://votre-site.fr/fr/second-service) : idem.

## Ressources

- [Guide de référence](https://votre-site.fr/fr/guides/…) : ce qu'il couvre.

## Contact

- [Contact](https://votre-site.fr/fr/contact) - délai de réponse.

Servez-le en text/plain, sans redirection, et générez-le depuis les routes du site plutôt que de le maintenir à la main : un llms.txt périmé vaut moins qu'aucun.

Ce que nous avons fait sur seoforge.fr

Notre /llms.txt est une route de l'application, construite depuis la carte du site ; il ne peut pas se périmer, comme l'explique l'article d'implémentation.

5. Fraîcheur, dates et identité de page (poids 10)

Cette dimension vérifie que la page porte une date lisible en machine et les balises qui l'identifient : Open Graph et, sur un site multilingue, hreflang.

Ce que les moteurs attendent

Aucun éditeur d'assistant ne documente son usage des dates ; nous nous en tenons à ce qui est observable : une date en time datetime, en article:modified_time ou en dateModified dans le JSON-LD est lisible sans interprétation, une date écrite dans le texte ne l'est pas. Une date de mise à jour doit correspondre à une vraie modification.

Comment le vérifier

Le test rapporte « Date lisible en machine : … (source : …) », ou « Date trouvée uniquement dans le texte », ou « Aucune date de publication ou de mise à jour détectable » ; puis « Open Graph title, description, image : complets », « og:site_name ou og:url présent » et « Balises hreflang ».

Comment le corriger dans le code

La date doit venir d'une source réelle : le champ de mise à jour du CMS, ou la date du dernier commit qui a touché le gabarit. Jamais la date du jour au rendu, jamais la date du déploiement.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Titre de la page",
  "datePublished": "2026-03-12T09:00:00+01:00",
  "dateModified": "2026-08-31T14:20:00+02:00"
}
<!-- et, visible : -->
<p>Dernière mise à jour : <time datetime="2026-08-31">31 août 2026</time></p>

Ce que nous avons fait sur seoforge.fr

Les dates des pages viennent de l'historique git des gabarits, celles des articles de leur champ de mise à jour ; sans source fiable, aucune date n'est émise, comme l'explique l'article d'implémentation.

6. Temps de réponse serveur, TTFB (poids 10)

Le TTFB, mesuré sur une seule requête vers la page d'accueil, est un indicateur de disponibilité, pas une mesure de Core Web Vitals : une page lente à répondre consomme le budget d'exploration d'un robot.

Ce que les moteurs attendent

Aucun éditeur d'assistant ne publie de seuil de temps de réponse pour ses robots. Nos seuils, 800 ms pour « bon » et 1800 ms pour « acceptable », sont volontairement larges et publiés sur la page du test.

Comment le vérifier

Le test rapporte « Temps de réponse : n ms » avec les seuils, et « Redirections avant la page finale : n ». En ligne de commande : curl -o /dev/null -s -w "%{time_starttransfer}\n" https://votre-site.fr/. Pour les métriques de terrain, LCP, CLS et INP, utilisez le test de vitesse.

Comment le corriger dans le code

Trois leviers : un cache HTTP pour les pages anonymes, une seule redirection au plus, un serveur ou un CDN proche des visiteurs. Sur WordPress, un cache de pages ; sur Symfony ou Laravel, un reverse-proxy cache avec s-maxage.

# réponse d'une page anonyme : cachable par le CDN pendant 5 min
Cache-Control: public, s-maxage=300, stale-while-revalidate=60

# une seule redirection, jamais une chaîne
http://votre-site.fr/  ->  https://votre-site.fr/   (301)

Ce que nous avons fait sur seoforge.fr

Un cache HTTP applicatif sur les pages publiques et une seule redirection de la racine vers la langue par défaut, décrits dans l'article d'implémentation. Quand le TTFB ou les Core Web Vitals sont le problème, c'est le service Optimisation des Core Web Vitals qui s'en charge.

Ce que le GEO ne garantit pas

Il ne mesure pas si un assistant vous cite, et nous n'affirmons rien sur la façon dont un moteur classe ou choisit ses sources : aucun des éditeurs cités ne le documente. Un bon score signifie qu'un moteur peut vous lire, vous identifier et vous dater ; un mauvais score signifie que la citation est très improbable. Entre les deux, la seule mesure honnête consiste à fixer un jeu de questions représentatives de votre marché, à les poser aux assistants à intervalle régulier, et à noter qui est cité. C'est ce que fait la phase de mesure de l'Audit GEO ; notre propre suivi sur seoforge.fr est annoncé dans l'article d'implémentation. guide détaillé.

Quelle différence entre SEO et GEO, dans le code

Les deux disciplines partagent la majorité de leur socle : un site accessible aux robots, des pages indexables, un HTML propre, des données structurées valides, des temps de réponse corrects. Un site bien référencé sur Google a déjà fait l'essentiel du travail, et l'audit SEO technique couvre ce socle.

Trois différences comptent dans le code. La première est l'accès des robots : en SEO, un seul robot importe et il est toujours autorisé ; en GEO, une dizaine de robots documentés, séparés entre réponse et entraînement, chacun avec son jeton dans robots.txt et souvent une règle à ajouter dans le CDN. La deuxième est l'extractibilité sans JavaScript : Google finit par rendre la page, avec retard ; les robots d'assistants ne documentent aucun rendu, et le texte doit être dans la réponse serveur. La troisième est l'identité d'entité : le SEO tolère une organisation implicite ; une réponse générée doit savoir quelle entreprise elle cite, ce qui impose les identifiants de registre, les profils officiels et une phrase de désambiguïsation, dans le JSON-LD comme dans le llms.txt.

GEO, AEO, SEO IA : quelle différence entre les noms

Aucune, dans le code. GEO, Generative Engine Optimization, désigne l'optimisation pour les moteurs qui génèrent une réponse : ChatGPT, Claude, Perplexity, Google AI Mode. AEO, Answer Engine Optimization, insiste sur la réponse rendue sans clic, et l'expression date d'avant les assistants, quand elle visait les extraits optimisés de Google. SEO IA, référencement IA, LLM SEO ou AISEO sont les mêmes idées avec d'autres mots, et le même site les satisfait toutes : des robots autorisés, un texte lisible sans script, une entité identifiable, des dates réelles. Le vocabulaire n'est pas fixé et chaque agence choisit le sien ; nous écrivons « référencement IA (GEO) » et nous décrivons ce que nous vérifions, pour que le nom n'ait pas d'importance. La seule distinction qui tient est celle avec le SEO classique, traitée dans la section précédente : mêmes fondations, trois différences dans le code. Pour juger une agence sur ce qu'elle fait plutôt que sur le nom qu'elle emploie : choisir une agence GEO.

Par où commencer

Lancez le test GEO gratuit sur votre site : les six dimensions y sont notées, preuves à l'appui. Si vous voulez que nous fassions le travail, l'Audit GEO, à 490 € HT, reprend ces six dimensions sur vos pages prioritaires, ajoute l'analyse de vos journaux serveur et la mesure des citations, et se termine par les correctifs implémentés dans votre code. guide détaillé.

Appeler Réserver 20 min