Schema.org, c'est quoi ?
Dernière mise à jour : juillet 2026 · par Yohann Kipfer, KIPDEV
En deux phrases : Schema.org est un vocabulaire commun de « données structurées » qui sert à décrire précisément le contenu d'une page — une entreprise, un produit, une recette, un événement — dans un langage que Google, Bing et les autres moteurs comprennent. Concrètement, vous ajoutez un petit bloc de code (le plus souvent en JSON-LD) qui rend votre page éligible aux résultats enrichis : étoiles d'avis, prix, horaires, fil d'Ariane.
La plupart des pages qui répondent à cette question s'arrêtent à l'explication et vous montrent une capture d'écran figée d'un résultat Google. Ici, on va plus loin : vous comprenez le principe, vous voyez à quoi ressemble un résultat enrichi, puis vous générez votre propre balisage sur la même session, gratuitement et sans filigrane. Comprendre, générer, voir le résultat.
D'où vient Schema.org ?
Avant 2011, chaque moteur avait ses propres formats de données structurées. Un webmaster devait baliser trois fois la même information pour Google, Bing et Yahoo. Un casse-tête, pour un résultat incertain.
En juin 2011, Google, Microsoft (Bing) et Yahoo! lancent ensemble Schema.org : un vocabulaire unique et partagé. Yandex, le moteur russe, les rejoint quelques mois plus tard. L'idée est simple et elle a tenu : un seul balisage, compris par tous. Aujourd'hui, le projet est maintenu par une communauté ouverte, et le vocabulaire couvre plusieurs centaines de types — de Recipe à MedicalCondition.
Schema.org ne publie pas de compteur officiel en temps réel. Mais les relevés du projet Web Data Commons, qui analyse chaque année le corpus Common Crawl, montrent une chose nette : les données structurées sont présentes sur une grande partie du web indexé, et Schema.org y est de loin le vocabulaire dominant, devant les alternatives. Ce n'est plus une technique de niche.
JSON-LD, Microdata, RDFa : trois façons d'écrire la même chose
Schema.org est un vocabulaire ; il ne dit pas comment l'écrire dans votre page. Il existe trois syntaxes pour ça. Elles décrivent les mêmes types, mais elles ne se posent pas de la même manière.
| Syntaxe | Où elle vit | Côté Google |
|---|---|---|
| JSON-LDRecommandé | Un bloc <script> à part, en général dans le <head> | Recommandé par Google |
| Microdata | Des attributs (itemscope, itemprop) dans vos balises HTML | Supporté, mais plus lourd à maintenir |
| RDFa | Des attributs (vocab, typeof, property) dans vos balises HTML | Supporté, surtout hérité du web sémantique |
Le verdict est facile à donner : choisissez JSON-LD. Google le recommande noir sur blanc dans sa documentation, et pour une bonne raison. Comme le balisage vit dans un bloc <script type="application/ld+json"> séparé, il ne dépend pas de votre mise en page. Vous refondez le design du site ? Le balisage ne bouge pas. Avec Microdata et RDFa, un attribut supprimé par mégarde pendant une refonte, et l'entité entière disparaît.
Petite nouveauté à connaître : depuis octobre 2023, Google sait combiner des données de plusieurs syntaxes sur une même page. Avant, mélanger JSON-LD et Microdata pour une même entité pouvait poser problème. Aujourd'hui, c'est toléré — même si, dans la pratique, s'en tenir à JSON-LD reste le plus propre.
À quoi ça ressemble dans Google ?
C'est là que le balisage devient concret. Prenez « La Table de Karim », un restaurant fictif. Voici son résultat Google sans Schema.org, puis avec un balisage Recipe sur sa page de couscous.
Sans balisage
https://latabledekarim.fr › recettes › couscous-royal
Couscous royal maison — La Table de Karim
Notre recette de couscous royal, transmise par la grand-mère de Karim. Semoule, merguez, agneau, pois chiches. Comptez environ 45 minutes de préparation…
Avec balisage Recipe
latabledekarim.fr › Recettes › Couscous royal
Couscous royal maison — La Table de Karim
Notre recette de couscous royal, transmise par la grand-mère de Karim. Semoule, merguez, agneau, pois chiches…
Exemple illustratif — rendu indicatif d'un résultat enrichi. L'affichage réel dépend de Google.
La différence saute aux yeux : la note, le nombre d'avis, le temps de préparation, la miniature. Le classement n'a pas bougé, mais le résultat prend plus de place et attire l'œil. C'est tout l'intérêt du balisage : un meilleur taux de clic, à position égale.
À quoi ressemble le code, ligne par ligne
Assez de théorie. Voici cinq balisages réels, avec les lignes qui comptent expliquées dessous. C'est exactement ce que produit notre générateur : vous remplissez des champs, vous obtenez ce bloc, prêt à coller dans le <head> de votre page.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Comment tailler un rosier en 5 étapes",
"datePublished": "2026-03-14T08:00:00+01:00",
"dateModified": "2026-06-02T10:30:00+02:00",
"author": {
"@type": "Person",
"name": "Camille Rossi",
"url": "https://monblog.fr/auteurs/camille"
},
"image": "https://monblog.fr/img/rosier.jpg"
}- headline : 110 caractères maximum, sinon Google le tronque.
- datePublished et dateModified au format ISO 8601 avec le fuseau (+01:00, +02:00 l'été). Ne bumpez dateModified que sur une vraie refonte du contenu.
- author est un objet Person avec une url vers sa page bio — jamais une simple chaîne « Admin ».
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Quel est le délai de livraison ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "48 à 72 h ouvrées en France métropolitaine."
}
}]
}- Chaque question est un Question qui contient un acceptedAnswer.
- Le texte de la réponse doit être celui affiché sur la page, mot pour mot.
- Depuis le 7 mai 2026, ce balisage n'affiche plus d'accordéon dans Google (hors gouvernement et santé). Gardez-le comme couche machine, n'en attendez plus de rich result.
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Concert de la Saint-Jean",
"startDate": "2026-06-23T20:00:00+02:00",
"location": {
"@type": "Place",
"name": "Salle Pleyel",
"address": {
"@type": "PostalAddress",
"streetAddress": "252 rue du Faubourg Saint-Honoré",
"postalCode": "75008",
"addressLocality": "Paris"
}
},
"offers": {
"@type": "Offer",
"price": "18.00",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"url": "https://billetterie.fr/saint-jean"
}
}- L'imbrication est la clé : location est un Place, qui contient lui-même un PostalAddress. Les objets s'emboîtent.
- price : "18.00" avec un POINT décimal, jamais "18,00". La devise part à côté dans priceCurrency.
- availability prend l'URL complète https://schema.org/InStock, pas la chaîne nue « InStock ».
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1,
"name": "Accueil", "item": "https://monsite.fr" },
{ "@type": "ListItem", "position": 2,
"name": "Chaussures", "item": "https://monsite.fr/chaussures" },
{ "@type": "ListItem", "position": 3,
"name": "Baskets running",
"item": "https://monsite.fr/chaussures/running" }
]
}- position se suit sans trou : 1, 2, 3.
- Chaque item porte une URL absolue, pas un chemin relatif.
- C'est le meilleur rapport effort/résultat : le fil d'Ariane rend encore dans la SERP, et il se pose sur presque toutes les pages.
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "La Table de Karim",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 rue des Lilas",
"postalCode": "33000",
"addressLocality": "Bordeaux"
},
"telephone": "+33556000000",
"openingHours": "Tu-Su 12:00-14:30,19:00-22:30",
"priceRange": "€€"
}- @type gagne à être un sous-type précis (Restaurant, HairSalon, Plumber…) plutôt que LocalBusiness générique.
- telephone au format international, avec l'indicatif : +33…
- openingHours suit une notation compacte : Tu-Su = mardi à dimanche, deux plages séparées par une virgule.
Quel balisage pour quel site ?
Le bon type dépend de ce que décrit votre page. Voici les cas les plus courants — chaque ligne mène au générateur dédié, avec ses champs déjà prêts.
Restaurant, artisan, commerce
Horaires, adresse, téléphone et note affichés dans la fiche Google
Boutique en ligne
Prix, stock et étoiles d'avis directement sous le résultat
Blog culinaire
Carrousel avec photo, temps de préparation et note
Salle, association, festival
Date, lieu et lien billetterie dans les résultats
Média, site de presse
Auteur, date et image ; éligibilité à Google Discover
Recrutement
Encart Google for Jobs, un canal gratuit
Ce ne sont pas les seuls : on couvre aussi Organization, BreadcrumbList, VideoObject, WebSite et d'autres. Voir tous les types dans le générateur.
Schema.org et l'IA : le vrai rôle en 2026
Depuis un an, on lit partout que le balisage serait « la clé » pour se faire citer par ChatGPT, Perplexity et les AI Overviews de Google. C'est vendeur. C'est en partie faux, et il vaut mieux le savoir avant d'y passer des jours.
Fin 2025, searchVIU a monté une page produit fictive et demandé son prix à cinq systèmes : ChatGPT, Claude, Gemini, Perplexity et Google AI Mode. Le prix placé uniquement dans le JSON-LD n'a été retrouvé par aucun des cinq. Ces modèles lisent le texte visible d'une page, pas le script en bas.
La nuance, elle, est réelle : les systèmes génératifs de Google, eux, exploitent bien les données structurées en interne pour comprendre et « ancrer » une page. La valeur passe donc par l'index de Google, pas par un chatbot qui irait lire votre balise. Deux conséquences pratiques :
- Balisez : ça aide Google à comprendre votre page, et ça alimente ses propres systèmes génératifs.
- Mais écrivez d'abord l'information en clair dans votre HTML. Une note, un prix, une réponse : s'ils ne sont que dans le JSON-LD, un LLM ne les verra pas.
Autrement dit, le balisage ne remplace pas un bon contenu. Il le double d'une couche que les machines lisent proprement.
Les erreurs qui coûtent cher
La plupart des problèmes de balisage viennent de quatre erreurs, toujours les mêmes. Les deux dernières peuvent déclencher une action manuelle de Google — c'est-à-dire une pénalité humaine.
Baliser du texte qui n'est pas sur la page
Décrire un prix, un avis ou une FAQ que le visiteur ne voit pas, c'est la seule chose qui peut vous coûter une action manuelle. Le balisage doit refléter le contenu visible, à la lettre.
Une virgule dans le prix
En JSON-LD, le prix s'écrit price: "19.90" avec un point, jamais "19,90". La virgule invalide l'offre sans message d'erreur clair. L'affichage « 19,90 € » se gère à côté, dans votre HTML.
Inventer une note « 4,9 sur 127 avis »
Un aggregateRating sans avis réels affichés sur la page est un motif d'action manuelle documenté par Google. Ne balisez une note que si les avis existent vraiment et sont visibles.
Un prix qui ne correspond pas à l'affichage
Si le JSON-LD dit 29 € et que la page affiche 39 €, Google le voit et sanctionne. Le balisage suit le contenu, il ne le contredit jamais.
La bonne pratique tient en une phrase : ne balisez que ce qui est vrai et visible sur la page, puis vérifiez la syntaxe avant de publier. Notre testeur de balisage contrôle votre JSON-LD sans passer par Google ; pour l'éligibilité aux rich results, gardez sous la main le Rich Results Test officiel.
Questions fréquentes sur Schema.org
Schema.org est-il obligatoire ?+
Non. Aucune loi ni règle Google n'impose le balisage. Votre site fonctionne et se classe sans lui. Schema.org sert à débloquer des affichages enrichis (étoiles, prix, horaires) et à aider les moteurs à comprendre votre contenu. C'est un bonus de visibilité, pas une obligation technique.
Schema.org est-il gratuit ?+
Oui, entièrement. Schema.org est un vocabulaire ouvert, maintenu par une communauté et les grands moteurs. Personne ne facture son usage. Notre générateur produit le code gratuitement et sans inscription. Vous ne payez, éventuellement, qu'un outil qui vous fait gagner du temps.
Le balisage garantit-il d'apparaître en résultat enrichi ?+
Non, et c'est le malentendu le plus fréquent. Un balisage valide vous rend éligible à un rich result, mais Google reste seul juge de l'afficher ou non, selon la requête, la qualité de la page et le type. Certains types n'affichent d'ailleurs plus rien : les rich results FAQ ont été retirés le 7 mai 2026, HowTo aussi. Éligible ne veut pas dire affiché.
JSON-LD ou Microdata, lequel choisir ?+
JSON-LD, sans hésiter. Google le recommande explicitement, il vit dans un bloc <script> séparé de votre HTML, donc plus simple à poser et à maintenir sans casser la mise en page. Microdata et RDFa restent lus par Google, mais ils s'entremêlent au HTML et se cassent plus facilement lors d'une refonte.
Faut-il un développeur pour ajouter du Schema.org ?+
Pas forcément. Un bloc JSON-LD se colle dans le <head> d'une page, dans le header d'un thème WordPress, ou via un module HTML sur Shopify, Wix et Webflow. Un générateur vous donne le code prêt à coller : vous remplissez des champs, vous copiez, vous collez. Le seul vrai prérequis, c'est de savoir où se trouve le <head> de votre page.
Schema.org aide-t-il à être cité par ChatGPT ou Perplexity ?+
Indirectement au mieux. Un test searchVIU de fin 2025 a montré qu'un prix présent uniquement dans le JSON-LD n'était retrouvé par aucun des cinq systèmes IA testés. Ce que les modèles lisent, c'est le texte visible de votre page, pas le script en bas. Les systèmes génératifs de Google, eux, exploitent bien les données structurées en interne. Donc : balisez, mais écrivez surtout l'information en clair dans votre HTML.
Sources
- Schema.org — À propos : lancement en 2011 par Google, Bing et Yahoo!, puis Yandex.
- Google Search Central — Introduction aux données structurées : recommandation de JSON-LD et fonctionnement des rich results.
- Web Data Commons — Structured Data : mesures annuelles de l'adoption des données structurées sur le web.
- searchVIU — Schema Markup and AI: what ChatGPT, Claude, Perplexity & Gemini really see (tests publiés fin 2025).
Maintenant, générez le vôtre
Vous avez compris le principe et vu le résultat. La suite prend deux minutes : choisissez un type, remplissez les champs, copiez le JSON-LD. Gratuit, sans inscription, sans filigrane.