Schema.org pour le GEO : le guide complet du balisage structuré en 2026
Les moteurs de recherche IA comme ChatGPT, Gemini et Claude ne lisent pas vos pages web comme un humain. Ils cherchent des données structurées pour comprendre qui vous êtes, ce que vous proposez et pourquoi ils devraient vous recommander. Le balisage Schema.org est le langage qui permet cette compréhension. Sans lui, votre établissement reste invisible pour les IA, même si votre site est magnifique.
Ce guide couvre tout ce que vous devez savoir sur Schema.org dans le contexte du GEO (Generative Engine Optimization) : les types de balisage essentiels, les exemples de code concrets pour chaque secteur, les outils de test, les erreurs courantes et les bonnes pratiques pour maximiser votre visibilité sur les moteurs IA.
Qu'est-ce que Schema.org et pourquoi c'est indispensable pour le GEO
Schema.org est un vocabulaire de données structurées créé conjointement par Google, Microsoft, Yahoo et Yandex. Il permet de décrire le contenu d'une page web dans un format que les machines comprennent nativement. Au lieu de deviner que votre page parle d'un hôtel 4 étoiles à Lyon, le balisage Schema.org le dit explicitement.
En SEO classique, Schema.org améliore les rich snippets dans Google. En GEO, son rôle est beaucoup plus fondamental. Les LLMs comme GPT-4, Gemini et Claude utilisent les données structurées comme source d'information fiable lorsqu'ils construisent leurs réponses. Un établissement avec un balisage complet a beaucoup plus de chances d'être recommandé qu'un concurrent sans balisage.
Le format privilégié est le JSON-LD (JavaScript Object Notation for Linked Data). Il s'insère dans une balise <script type="application/ld+json"> directement dans le HTML de la page. Ce format est recommandé par Google et facilement lisible par les moteurs IA.
Les types Schema.org essentiels pour le GEO
Selon votre secteur d'activité, vous utiliserez différents types de balisage. Voici les principaux, avec des exemples complets prêts à être intégrés.
Hotel : le balisage pour les hôtels
Le type Hotel est le plus spécifique pour les établissements hôteliers. Il hérite de LodgingBusiness et permet de décrire les étoiles, les équipements, la fourchette de prix et les avis. Lorsqu'un utilisateur demande à ChatGPT « Quel hôtel 4 étoiles avec spa à Bordeaux ? », ce balisage permet à l'IA d'identifier votre établissement avec certitude.
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Hôtel Le Jardin de Bordeaux",
"description": "Hôtel 4 étoiles avec spa et restaurant gastronomique au cœur de Bordeaux. 45 chambres avec vue sur le jardin intérieur.",
"starRating": {
"@type": "Rating",
"ratingValue": "4"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Rue Sainte-Catherine",
"addressLocality": "Bordeaux",
"postalCode": "33000",
"addressCountry": "FR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 44.8378,
"longitude": -0.5792
},
"telephone": "+33 5 56 00 00 00",
"url": "https://www.hotel-jardin-bordeaux.fr",
"image": "https://www.hotel-jardin-bordeaux.fr/facade.jpg",
"priceRange": "150€ - 350€",
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "Spa", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Piscine intérieure", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Restaurant gastronomique", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Parking privé", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Wi-Fi gratuit", "value": true }
],
"checkinTime": "15:00",
"checkoutTime": "11:00",
"numberOfRooms": 45,
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "324",
"bestRating": "5"
}
}Restaurant : le balisage pour la restauration
Le type Restaurant permet de décrire votre cuisine, vos horaires, votre carte et vos avis. Les IA utilisent ces données pour répondre aux requêtes du type « Meilleur restaurant italien à Marseille » ou « Où manger sans gluten à Paris ». Un balisage complet inclut le type de cuisine, les options alimentaires et les moyens de réservation.
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "La Table Provençale",
"description": "Restaurant de cuisine provençale à Aix-en-Provence. Produits locaux et de saison, terrasse ombragée avec vue sur le cours Mirabeau.",
"servesCuisine": ["Provençale", "Méditerranéenne", "Française"],
"address": {
"@type": "PostalAddress",
"streetAddress": "8 Cours Mirabeau",
"addressLocality": "Aix-en-Provence",
"postalCode": "13100",
"addressCountry": "FR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 43.5263,
"longitude": 5.4474
},
"telephone": "+33 4 42 00 00 00",
"url": "https://www.table-provencale.fr",
"image": "https://www.table-provencale.fr/terrasse.jpg",
"priceRange": "25€ - 65€",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
"opens": "12:00",
"closes": "14:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
"opens": "19:00",
"closes": "22:30"
}
],
"acceptsReservations": "True",
"menu": "https://www.table-provencale.fr/carte",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "187",
"bestRating": "5"
}
}LocalBusiness : le balisage universel pour les commerces
Le type LocalBusiness convient à tout commerce local : boulangerie, salon de coiffure, garage, boutique. Il sert également de base pour les types plus spécifiques. Si aucun sous-type spécifique ne correspond à votre activité, utilisez LocalBusiness avec une description détaillée.
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Boulangerie Durand",
"description": "Boulangerie artisanale à Toulouse. Pain au levain, viennoiseries maison et pâtisseries depuis 1987.",
"address": {
"@type": "PostalAddress",
"streetAddress": "24 Rue Alsace-Lorraine",
"addressLocality": "Toulouse",
"postalCode": "31000",
"addressCountry": "FR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 43.6047,
"longitude": 1.4442
},
"telephone": "+33 5 61 00 00 00",
"url": "https://www.boulangerie-durand.fr",
"image": "https://www.boulangerie-durand.fr/facade.jpg",
"priceRange": "€",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
"opens": "06:30",
"closes": "19:30"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "512",
"bestRating": "5"
}
}ProfessionalService : pour les professions libérales et les agences
Le type ProfessionalService est adapté aux cabinets d'avocats, cabinets comptables, agences marketing, consultants et toute activité de service professionnel. Il permet de décrire vos domaines d'expertise et votre zone d'intervention, deux informations que les IA utilisent pour les recommandations géolocalisées.
{
"@context": "https://schema.org",
"@type": "ProfessionalService",
"name": "Cabinet Martin & Associés",
"description": "Cabinet d'expertise comptable à Lyon spécialisé dans l'accompagnement des PME, start-ups et professions libérales.",
"address": {
"@type": "PostalAddress",
"streetAddress": "15 Place Bellecour",
"addressLocality": "Lyon",
"postalCode": "69002",
"addressCountry": "FR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 45.7578,
"longitude": 4.8320
},
"telephone": "+33 4 72 00 00 00",
"url": "https://www.cabinet-martin.fr",
"areaServed": {
"@type": "GeoCircle",
"geoMidpoint": {
"@type": "GeoCoordinates",
"latitude": 45.7578,
"longitude": 4.8320
},
"geoRadius": "50000"
},
"knowsAbout": [
"Expertise comptable",
"Audit financier",
"Conseil fiscal",
"Création d'entreprise"
]
}Schema.org pour le contenu : FAQPage, HowTo et Article
Au-delà des fiches établissements, Schema.org permet également de baliser votre contenu éditorial. Ces balisages sont particulièrement puissants pour le GEO car ils fournissent des réponses structurées que les IA peuvent directement intégrer dans leurs réponses.
FAQPage : vos questions/réponses structurées
Le balisage FAQPage est l'un des plus efficaces pour le GEO. Lorsqu'un utilisateur pose une question à une IA, celle-ci recherche des réponses structurées. Une FAQ balisée en Schema.org fournit exactement ce format. Chaque question/réponse doit être concise, factuelle et directement utile.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Quels sont les horaires du spa ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Le spa est ouvert tous les jours de 9h à 21h. L'accès est inclus pour tous les clients de l'hôtel."
}
},
{
"@type": "Question",
"name": "L'hôtel dispose-t-il d'un parking ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Oui, un parking privé souterrain de 30 places est disponible au tarif de 18€ par nuit. La réservation est recommandée."
}
},
{
"@type": "Question",
"name": "Le petit-déjeuner est-il inclus ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Le petit-déjeuner buffet est proposé en supplément à 22€ par personne. Il est servi de 7h à 10h30 en semaine et jusqu'à 11h le week-end."
}
}
]
}HowTo : structurer vos guides et tutoriels
Le type HowTo est idéal pour les guides étape par étape. Les IA apprécient ce format car il leur permet de fournir des réponses organisées et actionables. Si votre site propose des tutoriels ou des processus (par exemple « Comment réserver une table » ou « Comment accéder à l'hôtel depuis la gare »), le balisage HowTo renforce considérablement votre visibilité.
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "Comment implémenter le balisage Schema.org sur votre site",
"description": "Guide en 4 étapes pour ajouter le balisage JSON-LD Schema.org à votre site web.",
"step": [
{
"@type": "HowToStep",
"name": "Identifier le type Schema.org adapté",
"text": "Consultez schema.org/docs/full.html et identifiez le type qui correspond le mieux à votre activité : Hotel, Restaurant, LocalBusiness, ProfessionalService, etc."
},
{
"@type": "HowToStep",
"name": "Rédiger le code JSON-LD",
"text": "Créez un objet JSON contenant toutes les propriétés pertinentes : nom, adresse, description, horaires, avis, services."
},
{
"@type": "HowToStep",
"name": "Intégrer le balisage dans votre page",
"text": "Ajoutez le code JSON-LD dans une balise script type application/ld+json dans le head ou le body de votre page HTML."
},
{
"@type": "HowToStep",
"name": "Valider avec les outils de test",
"text": "Utilisez le Google Rich Results Test et le Schema Markup Validator pour vérifier que votre balisage est correct et complet."
}
]
}Article et BlogPosting : baliser votre contenu éditorial
Chaque article de blog ou page de contenu devrait inclure un balisage Article ou BlogPosting. Ce balisage identifie l'auteur, la date de publication, l'éditeur et le sujet. Les IA utilisent ces informations pour évaluer la fiabilité et la fraîcheur du contenu. Un article avec un auteur identifié et une date récente sera privilégié par rapport à du contenu anonyme ou daté.
BreadcrumbList : améliorer la navigation pour les IA
Le balisage BreadcrumbList décrit la hiérarchie de navigation de votre site. Il aide les moteurs IA à comprendre la structure de votre site et le contexte de chaque page. Un fil d'Ariane balisé indique, par exemple, que la page « Chambre Supérieure » se trouve sous « Nos Chambres », qui se trouve sous la page d'accueil de l'hôtel.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Accueil",
"item": "https://www.votre-hotel.fr"
},
{
"@type": "ListItem",
"position": 2,
"name": "Nos Chambres",
"item": "https://www.votre-hotel.fr/chambres"
},
{
"@type": "ListItem",
"position": 3,
"name": "Chambre Supérieure",
"item": "https://www.votre-hotel.fr/chambres/superieure"
}
]
}Comment tester votre balisage Schema.org
Un balisage mal formaté ou incomplet est pire que pas de balisage du tout. Il peut envoyer des signaux contradictoires aux IA et réduire votre visibilité. Voici les outils essentiels pour valider votre implémentation.
Google Rich Results Test
Accessible sur search.google.com/test/rich-results, cet outil vérifie que votre balisage est valide et éligible aux résultats enrichis Google. Il signale les erreurs et les avertissements, et affiche un aperçu du rendu. Même si votre objectif est le GEO, un balisage valide pour Google sera également bien interprété par les LLMs.
Schema Markup Validator
Disponible sur validator.schema.org, cet outil valide votre balisage directement contre la spécification Schema.org. Il est plus strict que le test Google et identifie les propriétés manquantes ou mal utilisées. Utilisez-le en complément du Google Rich Results Test pour une validation complète.
Test manuel avec les IA
Une fois votre balisage en place, testez directement en posant des questions aux IA. Demandez à ChatGPT ou Gemini de recommander un établissement correspondant à votre profil dans votre zone géographique. Si vous n'apparaissez pas après quelques semaines, revoyez votre balisage et complétez les propriétés manquantes.
Les erreurs courantes à éviter
Après avoir audité des centaines de sites, nous avons identifié les erreurs les plus fréquentes dans l'implémentation du balisage Schema.org.
- Balisage incomplet. Indiquer uniquement le nom et l'adresse ne suffit pas. Les IA ont besoin d'informations riches : description détaillée, services, horaires, fourchette de prix, avis agrégés. Plus votre balisage est complet, plus vous avez de chances d'être recommandé.
- Informations incohérentes. Si votre balisage indique une adresse différente de celle affichée sur la page, ou un nom différent de votre fiche Google Business, les IA perdent confiance. Assurez-vous que toutes vos données sont parfaitement alignées.
- Utiliser le mauvais type. Un restaurant balisé comme
LocalBusinessau lieu deRestaurantperd les propriétés spécifiques commeservesCuisineoumenu. Utilisez toujours le type le plus spécifique disponible. - Oublier les coordonnées géographiques. Les propriétés
latitudeetlongitudesont essentielles pour les requêtes géolocalisées. Sans elles, les IA ne peuvent pas associer votre établissement à une zone géographique précise. - Ne pas mettre à jour le balisage. Des horaires obsolètes, un ancien numéro de téléphone ou une description datée envoient un signal négatif. Mettez à jour votre balisage à chaque modification de vos services.
- Dupliquer le balisage sur plusieurs pages. Chaque page doit avoir son propre balisage contextuel. Ne copiez pas le même bloc JSON-LD sur toutes les pages de votre site. La page d'accueil peut porter le balisage principal de l'établissement, tandis que les pages internes portent des balisages spécifiques (chambres, restaurant, spa).
Bonnes pratiques Schema.org pour maximiser l'impact GEO
Au-delà de la simple conformité technique, voici les stratégies qui font la différence en termes de visibilité IA.
- Combinez plusieurs types de balisage. Un hôtel peut intégrer un balisage Hotel sur la page d'accueil, un balisage Restaurant pour sa page restauration, un balisage FAQPage pour sa FAQ et un balisage BreadcrumbList sur chaque page. Cette approche multi-balisage crée un maillage de données riche que les IA exploitent efficacement.
- Renseignez l'aggregateRating. Les avis agrégés sont un signal fort pour les IA. Si vous avez des avis sur Google ou TripAdvisor, intégrez votre note moyenne et le nombre d'avis dans votre balisage. Attention : les données doivent être exactes et vérifiables.
- Soignez la propriété description. La description dans votre balisage est directement utilisée par les IA. Rédigez-la comme une réponse factuelle à la question « Que propose cet établissement ? ». Évitez le jargon marketing et privilégiez les faits concrets.
- Ajoutez le balisage sameAs. La propriété
sameAsliste vos profils sur les plateformes tierces (Google Business, TripAdvisor, Instagram, Facebook). Elle permet aux IA de recouper vos informations et de renforcer votre autorité. - Utilisez des images avec URL absolues. Toutes les URLs d'images dans votre balisage doivent être absolues (commençant par https://). Les URLs relatives ne sont pas toujours correctement interprétées par les crawlers.
Implémenter Schema.org selon votre technologie
Dans Next.js (React)
Dans un projet Next.js, la méthode la plus propre consiste à définir votre objet JSON-LD comme une constante puis à l'injecter via une balise script avec dangerouslySetInnerHTML. Cette approche fonctionne avec le Server Side Rendering et garantit que le balisage est présent dès le premier rendu HTML.
// app/page.tsx (Next.js App Router)
const hotelJsonLd = {
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Mon Hôtel",
"description": "Description complète...",
// ... toutes les propriétés
};
export default function Page() {
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(hotelJsonLd),
}}
/>
{/* Le contenu de votre page */}
</>
);
}Dans WordPress
Pour WordPress, trois options s'offrent à vous. La plus simple est d'utiliser une extension comme Yoast SEO ou Rank Math, qui génèrent automatiquement certains balisages. Cependant, pour un balisage complet et optimisé GEO, nous recommandons d'ajouter manuellement le JSON-LD via le fichier functions.php de votre thème ou via un plugin custom.
// functions.php (WordPress)
function add_schema_markup() {
if ( is_front_page() ) {
?>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "<?php echo get_bloginfo('name'); ?>",
"description": "<?php echo get_bloginfo('description'); ?>",
"url": "<?php echo home_url(); ?>"
}
</script>
<?php
}
}
add_action('wp_head', 'add_schema_markup');En HTML statique
Pour un site HTML statique, insérez simplement le bloc JSON-LD dans la balise <head> de chaque page concernée. C'est la méthode la plus directe et elle fonctionne avec n'importe quel hébergeur.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Mon Hôtel</title>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Mon Hôtel",
"description": "Hôtel 4 étoiles au cœur de Paris...",
"address": {
"@type": "PostalAddress",
"addressLocality": "Paris",
"addressCountry": "FR"
}
}
</script>
</head>
<body>
<!-- Contenu de la page -->
</body>
</html>Conclusion : le balisage structuré est la fondation du GEO
Le balisage Schema.org n'est pas un détail technique. C'est la fondation sur laquelle repose toute votre stratégie GEO. Sans données structurées, les moteurs IA doivent deviner qui vous êtes et ce que vous proposez. Avec un balisage complet et bien implémenté, vous leur fournissez une fiche d'identité claire et fiable qui maximise vos chances d'être recommandé.
L'effort est ponctuel : une fois le balisage en place, il suffit de le maintenir à jour lors des changements de services ou d'horaires. Le retour sur investissement, en revanche, est durable. Les établissements qui investissent aujourd'hui dans un balisage structuré complet construisent un avantage concurrentiel qui se renforcera au fil des mois, à mesure que les moteurs IA gagnent en importance.
Commencez par le balisage principal de votre établissement (Hotel, Restaurant ou LocalBusiness), puis étendez progressivement avec FAQPage, BreadcrumbList et le balisage de votre contenu éditorial. Testez systématiquement avec les outils de validation. Et surtout, pensez chaque propriété comme une réponse à une question que pourrait poser un utilisateur à une IA.