Si votre site n’explique pas à Google et aux LLM ce qu’est chaque chose, vous n’apparaissez pas dans les AI Overviews. C’est aussi simple que cela. Le schema markup — les données structurées au format JSON-LD — est le langage que Google, ChatGPT, Perplexity et les autres moteurs génératifs lisent pour comprendre votre contenu et décider s’ils vous citent comme source.
Cet article n’est pas une réflexion philosophique sur le schema. C’est un manuel technique avec des modèles que vous pouvez copier sur votre site dès aujourd’hui. Pensé pour des sites réels, pas pour des cas d’école.
Pourquoi le schema markup est passé de « bonus » à indispensable
Jusqu’en 2024, le schema markup servait surtout aux rich snippets : étoiles dans la SERP, FAQ dépliables, fils d’Ariane. Important, mais pas critique.
En 2026, la donne a changé. Google AI Overviews, ChatGPT Search, Perplexity et les modes génératifs de Bing ont besoin de structure pour analyser votre contenu et vous attribuer la réponse. Sans JSON-LD bien construit, votre article n’est que du texte brut que le modèle peut résumer, mais rarement citer.
Les conséquences concrètes :
- Dans un cluster doté d’autorité (Person + Organization + Article correctement imbriqués), les citations dans les AI Overviews augmentent jusqu’à 3x selon les données publiques de SearchEngineLand de février 2026.
- Sans schema
PersonavecsameAsvers LinkedIn, les LLM ne savent pas vous attribuer d’expertise → ils ne vous citent pas. - Les FAQ balisées en
FAQPageavec des réponses concrètes figurent parmi les sources préférées des AI Overviews grâce à leur format question-réponse direct.
Si vous hésitez encore à y consacrer du temps, lisez d’abord la différence entre GEO et SEO et l’importance de l’E-E-A-T à l’ère de l’IA. Sans ces deux fondations, le schema ne donne pas son plein rendement.
Les 6 types de schema qui font vraiment la différence en GEO
Tous les types de schema ne se valent pas pour la recherche générative. Voici ceux qui comptent réellement :
1. Article (ou BlogPosting)
L’incontournable. Balisez chaque article de blog avec l’auteur, la date, le titre (headline) et inLanguage.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Schema markup pour les AI Overviews : le guide technique 2026",
"description": "Comment structurer votre JSON-LD pour être cité par Google et les LLM.",
"datePublished": "2026-05-03",
"dateModified": "2026-05-03",
"inLanguage": "fr-FR",
"author": { "@id": "https://ad2place-digital.net/#jose" },
"publisher": { "@id": "https://ad2place-digital.net/#org" },
"mainEntityOfPage": "https://ad2place-digital.net/fr/blog/schema-markup-ai-overviews-fr/"
}
Astuce critique : utilisez @id avec des ancres (#jose, #org) au lieu de dupliquer l’objet Person/Organization dans chaque article. Vous réduisez le poids et conservez un graphe cohérent.
2. Person avec sameAs
Sans lui, les LLM ne savent pas qui signe le contenu et ne vous attribuent aucune autorité. Le sameAs doit pointer vers des profils vérifiables : LinkedIn, X, Crunchbase, GitHub.
{
"@context": "https://schema.org",
"@type": "Person",
"@id": "https://ad2place-digital.net/#jose",
"name": "José Redondo Delgado",
"jobTitle": "Directeur d'Ad2Place Digital",
"sameAs": [
"https://www.linkedin.com/in/jose-redondo-delgado-8b560214b/"
],
"knowsAbout": ["SEO", "GEO", "Marketing digital", "Schema Markup"],
"worksFor": { "@id": "https://ad2place-digital.net/#org" }
}
knowsAbout est facultatif mais aide à profiler l’autorité thématique. Limitez-vous à 4-6 domaines réels, ne spammez pas avec 30 mots-clés.
3. Organization (ou LocalBusiness)
L’identité de votre entreprise. Elle se déclare une seule fois sur la page d’accueil et se référence via @id depuis le reste du site.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://ad2place-digital.net/#org",
"name": "Ad2Place Digital",
"url": "https://ad2place-digital.net/",
"logo": "https://ad2place-digital.net/logo.webp",
"sameAs": [
"https://www.linkedin.com/company/ad2place"
]
}
Si votre activité dispose d’un local physique, utilisez LocalBusiness en ajoutant address, geo et openingHoursSpecification. Les AI Overviews locaux (carte avec résultats) les exploitent directement.
4. FAQPage
Le format préféré des AI Overviews. Question-réponse littérale, sans fioritures, une entité par véritable question.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Le schema markup est-il nécessaire pour apparaître dans les AI Overviews ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Oui. Sans JSON-LD bien structuré, les LLM peuvent résumer votre contenu mais vous citent rarement comme source attribuée."
}
}
]
}
Règle stricte : la réponse du schema doit correspondre mot pour mot à celle du HTML visible. Si elles divergent, Google pénalise pour contenu masqué.
5. HowTo
Pour les tutoriels pas à pas. Les AI Overviews les affichent souvent lorsque la requête est actionnable (« comment configurer X », « étapes pour Y »).
{
"@type": "HowTo",
"name": "Comment ajouter un schema FAQ à une page",
"step": [
{ "@type": "HowToStep", "name": "Identifier les vraies questions", "text": "..." },
{ "@type": "HowToStep", "name": "Générer le JSON-LD", "text": "..." },
{ "@type": "HowToStep", "name": "Valider avec le Rich Results Test", "text": "..." }
]
}
6. BreadcrumbList
Structure hiérarchique de la navigation. Elle aide les LLM à comprendre le contexte thématique de chaque URL.
{
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Accueil", "item": "https://ad2place-digital.net/fr/" },
{ "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://ad2place-digital.net/fr/blog/" },
{ "@type": "ListItem", "position": 3, "name": "Schema markup pour les AI Overviews" }
]
}
Le modèle @graph : tout imbriquer sans rien dupliquer
L’erreur la plus fréquente consiste à déclarer 5 blocs JSON-LD séparés, chacun avec ses propres entités. Résultat : un HTML alourdi, un parsing moins bon côté Google et des relations entre entités qui se perdent.
La solution, c’est @graph : un unique <script type="application/ld+json"> contenant un tableau d’entités référencées par @id. Chaque élément n’est ainsi déclaré qu’une seule fois.
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Organization", "@id": "https://example.com/#org", "name": "Ad2Place" },
{ "@type": "Person", "@id": "https://example.com/#jose", "name": "José Redondo", "worksFor": { "@id": "https://example.com/#org" } },
{ "@type": "Article", "headline": "...", "author": { "@id": "https://example.com/#jose" }, "publisher": { "@id": "https://example.com/#org" } },
{ "@type": "BreadcrumbList", "itemListElement": [...] }
]
}
C’est la méthode professionnelle. Une entité déclarée avec @id et référencée avec { "@id": ... } partout où elle est nécessaire.
Les erreurs fréquentes que vous commettez (à coup sûr)
Après avoir audité plus de 200 sites ces derniers mois, voici les défauts que je retrouve dans 80 % des projets :
descriptioncopiée telle quelle depuis la meta description. Google la détecte comme un doublon et désactive l’extrait enrichi.- Schema présent dans le DOM mais absent du HTML statique. Si vous l’injectez en JavaScript après le chargement, Googlebot le voit, mais les LLM qui analysent le HTML brut (Perplexity, Claude) non.
authordéclaré comme simple chaîne ("author": "José Redondo") au lieu d’un objet Person. Vous perdez l’autorité attribuable.- Schema FAQ avec des réponses qui n’apparaissent pas sur la page. Pénalité quasi automatique.
- Même
@idpointant vers des entités différentes d’une page à l’autre. Cela crée un conflit dans le Knowledge Graph de Google. mainEntityOfPagepointant vers l’URL sans slash final alors que le site en utilise un. Les robots y voient deux URL distinctes.- Ne pas déclarer
inLanguagesur un site multilingue. Google ne sait pas à quelle version hreflang cela correspond.
Comment valider votre schema sans y laisser votre santé
Trois outils, dans cet ordre :
- Schema.org Validator (
validator.schema.org) — syntaxe correcte. Il est strict mais orthodoxe. - Rich Results Test (
search.google.com/test/rich-results) — les extraits enrichis que Google peut générer. Si une entité n’apparaît pas ici, Google l’ignore. - Google Search Console → Améliorations — les entités que Google indexe réellement sur votre site en production. La vérité incontestable.
Règle pratique : si le Rich Results Test passe mais que Search Console n’affiche pas l’entité au bout de 2 semaines, quelque chose d’autre bloque (robots.txt, rendu JS, conflit entre @id).
Schema dynamique ou statique : pourquoi les LLM sont pointilleux
Il existe une nuance mal comprise, même par des développeurs SEO expérimentés. Le robot de Google exécute le JavaScript lors d’une seconde passe d’indexation. Les robots des LLM — Claude, Perplexity, ChatGPT lorsqu’il navigue — lisent essentiellement le HTML brut renvoyé par le serveur, sans exécuter le JS.
La conséquence est directe : si votre schema est injecté via Google Tag Manager ou via un script setTimeout(() => insertJsonLd(), 1000), Google le verra tard et les LLM ne le verront jamais. Résultat : vous validez dans le Rich Results Test (qui exécute bien le JS), vous apparaissez dans Search Console (avec du retard), et vous n’apparaissez jamais comme source citée dans les AI Overviews.
La règle pratique : pour le schema critique (Article, Person, Organization, FAQPage, BreadcrumbList), toujours en HTML statique, généré au build ou servi en SSR. Tag Manager uniquement pour le schema secondaire qui n’affecte pas votre visibilité générative (événements de tracking, etc.).
Une façon de vérifier ce que voit réellement un LLM : ouvrez votre URL avec curl -A "Mozilla" https://votre-site.com/article/ | grep -A 200 'application/ld+json'. Si le JSON-LD apparaît, les LLM le verront. S’il n’apparaît pas, votre schema dynamique est perdu.
Cas réel : le schema avant et après dans le cluster GEO d’Ad2Place
Le 28 avril 2026, j’ai refondu le schema du cluster GEO (4 articles) de ce site. Auparavant, il comportait Article + BreadcrumbList séparés, sans Person référencé par @id ni inLanguage déclaré.
Avant (28 avril) :
- Cluster GEO positionné entre la 7e et la 15e place dans la SERP espagnole sur « GEO vs SEO ».
- 0 citation dans les AI Overviews pour les requêtes du cluster (mesuré manuellement sur 12 recherches).
- Le schema validait, mais dans GSC seul Article apparaissait, pas Person.
Après (8 jours, aucun nouveau backlink, même contenu) :
- J’ai refactorisé les 4 articles en
@graphavec Person + Organization + Article + BreadcrumbList imbriqués via@id. - J’ai ajouté
inLanguageetknowsAboutavec 4 domaines réels dans Person. - Dans GSC, l’entité Person est apparue dans le tableau Améliorations au bout de 9 jours.
- 2 des 12 requêtes ont commencé à afficher Ad2Place dans les AI Overviews avec une citation attribuée (mesuré le 6 mai 2026).
Ce n’est pas de la magie. C’est la différence entre un LLM qui comprend « cet article est signé par quelqu’un qui maîtrise X » et un article « qui flotte sans attribution ». L’effort total : 2 heures de refactorisation.
Le schema pour les images et la vidéo que beaucoup oublient
Pour les articles avec des images hero ou des captures d’écran, déclarer ImageObject améliore leur affichage dans Discover et dans la SERP mobile. Minimum viable :
{
"@type": "ImageObject",
"url": "https://ad2place-digital.net/images/blog/hero-articulo.webp",
"width": 1792,
"height": 1008,
"caption": "Description littérale de l'image pour l'accessibilité"
}
Et en tant que propriété image de l’Article. Pour la vidéo, VideoObject avec thumbnailUrl, duration (format ISO 8601 PT2M30S), uploadDate et contentUrl. Sans ces propriétés, les vidéos n’apparaissent ni dans le carrousel « Vidéos » de Google ni dans l’aperçu des AI Overviews.
Comment l’appliquer sur votre site sans tout réécrire
Si vous débutez, voici l’ordre le plus efficace :
- Accueil :
Organization+WebSite+Person(un seul@graph). - Page hub du blog
/blog/:CollectionPageavecmainEntitypointant vers les derniers articles. - Chaque article :
Article+BreadcrumbList+Person(référencé par@id). - Pages de services :
Serviceavecproviderpointant versOrganization. - Pages avec de vraies FAQ :
FAQPage. - Tutoriels opérationnels :
HowTo.
Inutile de tout mettre en place d’un coup. Commencez par l’accueil et les 5 articles qui génèrent le plus de trafic organique. L’impact dans GSC se voit en 2 à 4 semaines.
Questions fréquentes
Le schema markup améliore-t-il le positionnement dans le Google classique ? Indirectement. Ce n’est pas un facteur de classement direct, mais les rich snippets augmentent le CTR, et le CTR, lui, en est un.
Microdata, RDFa ou JSON-LD ? JSON-LD. Google le recommande officiellement depuis 2017, les LLM l’analysent mieux et il reste séparé du HTML, ce qui le rend plus simple à auditer.
Le schema dynamique (injecté en JS) compte-t-il ? Pour Google oui, mais avec du retard (il attend le rendu JS). Pour les LLM qui analysent le HTML brut (Perplexity, ChatGPT Search), en général non. Si vous voulez apparaître dans les AI Overviews : schema en HTML statique.
Combien de FAQ déclarer par page ?
3 à 7, réelles. Au-delà, c’est du spam et Google les ignore. Si vous avez plus de 10 questions, regroupez-les sur une page /questions-frequentes/ avec sa propre URL.
Pourquoi mon schema valide-t-il sans apparaître dans Search Console ? Causes habituelles : robots.txt qui bloque, page en noindex, contenu trop récent (Google met 2 à 4 semaines), ou une autorité de domaine encore insuffisante pour que Google affiche des extraits enrichis. Dans ce dernier cas, le schema continue d’aider les LLM, même s’il n’aide pas encore Google.
Prochaine étape
Le schema markup représente la moitié du travail GEO. L’autre moitié, c’est une autorité thématique réelle (cluster de contenu + E-E-A-T vérifiable) et une architecture technique qui permet aux LLM d’analyser le HTML.
Si vous souhaitez une revue du schema actuel de votre site et un plan de mise en œuvre priorisé par impact, réservez un conseil SEO gratuit de 45 minutes. Pendant cette session, j’audite vos entités dans GSC, j’identifie les manques et nous vous laissons une feuille de route concrète.