Schema.org JSON-LD 2026 : guide complet des données structurées

Vous avez peut-être déjà vu ces résultats Google avec des étoiles de notation, des prix, des FAQ qui se déploient directement dans les SERPs. Ce sont les rich snippets, et ils sont rendus possibles grâce aux données structurées Schema.org. Dans ce guide, vous allez comprendre comment ils fonctionnent, quels types implémenter selon votre activité, et comment écrire un JSON-LD valide qui convaincra Google de vous accorder ces espaces visuels supplémentaires.

01 Comprendre Schema.org, JSON-LD et les rich snippets

Trois termes reviennent constamment dans les discussions sur les données structurées, et ils désignent trois choses bien distinctes. Les confondre est la première source d'erreur des développeurs qui se lancent dans le sujet.

Schema.org est un vocabulaire partagé, créé en 2011 par Google, Microsoft, Yahoo et Yandex. Il définit un ensemble standardisé de types (Article, Product, Person, Event...) et de propriétés (name, description, price, author...) que les moteurs de recherche comprennent universellement. Schema.org est le dictionnaire : il dit ce que signifient les mots.

JSON-LD (JavaScript Object Notation for Linked Data) est le format d'implémentation recommandé par Google. C'est la syntaxe technique qui vous permet d'intégrer les termes Schema.org dans vos pages HTML sous forme d'un bloc <script>. JSON-LD est la grammaire : il dit comment assembler les mots.

Les rich snippets sont le résultat visible dans les SERPs quand Google détecte, valide et décide d'afficher vos données structurées. Ce sont les étoiles, les FAQ dépliables, les prix, les dates d'événement. Rich snippets est la récompense : ce que vous obtenez quand vous parlez correctement le langage de Google.

🔷
La nuance que tout le monde oublie Avoir des données structurées valides ne garantit pas l'obtention de rich snippets. Google se réserve le droit de les afficher ou non selon la qualité globale de la page, sa popularité et le contexte de la requête. En revanche, sans données structurées valides, vous n'aurez jamais de rich snippets.

Pourquoi JSON-LD plutôt que Microdata ou RDFa ?

Il existe trois formats pour implémenter Schema.org : JSON-LD, Microdata et RDFa. Google supporte les trois, mais recommande officiellement JSON-LD depuis 2016 pour des raisons très concrètes.

FormatIntégrationMaintenanceRecommandé
JSON-LDBloc <script> séparé du HTMLTrès facile, isolé du codePar Google
MicrodataAttributs itemscope/itemprop dans le HTMLDifficile, entrelacé au markupSupporté
RDFaAttributs dans le HTMLComplexe, syntaxe verboseSupporté

La vraie force du JSON-LD : il peut être injecté dynamiquement via JavaScript, modifié sans toucher au HTML, et dupliqué facilement entre pages similaires. Pour les CMS comme WordPress ou Shopify, c'est un avantage décisif.

02 Pourquoi les données structurées changent vraiment la donne

La question revient souvent : les données structurées améliorent-elles le classement ? La réponse officielle de Google est non, ce n'est pas un facteur de positionnement direct. Mais cette réponse masque une réalité bien plus intéressante.

Ce que font les rich snippets, c'est occuper davantage d'espace visuel dans les SERPs. Un résultat avec des étoiles, un prix et une FAQ dépliable prend deux à trois fois plus de place qu'un résultat classique. Cette visibilité accrue se traduit par des taux de clic significativement plus élevés, et ce même depuis des positions inférieures.

Voici à quoi ressemble la différence entre un résultat standard et un résultat enrichi :

seotitan.fr › articles › schema-org-json-ld
Schema.org JSON-LD 2026 : guide complet des données structurées
Guide complet Schema.org et JSON-LD : rich snippets, types essentiels, exemples de code...
▶ Quelle est la différence entre Schema.org et JSON-LD ?
▶ Les données structurées améliorent-elles le classement ?

La position 4 avec un FAQPage peut générer plus de clics que la position 2 sans données structurées. C'est là que réside le vrai pouvoir du Schema.org : non pas grimper dans les résultats, mais dominer visuellement sa position.

💡
Le cercle vertueux Un CTR plus élevé envoie un signal comportemental positif à Google. Sur le long terme, les pages avec de bons rich snippets ont tendance à améliorer leur positionnement, créant ainsi un avantage cumulatif. Ce n'est pas direct, mais c'est réel.

03 Les types Schema.org prioritaires en 2026

Schema.org référence plus de 800 types différents. La grande majorité ne génère aucun rich snippet Google. Concentrez-vous sur les types qui déclenchent effectivement des résultats enrichis dans les SERPs.

📝
Article
Articles, guides, actualités. Rich snippet : date, auteur, image en miniature.
FAQPage
Page FAQ. Rich snippet : questions dépliables dans les SERPs.
🛒
Product
Produits e-commerce. Rich snippet : prix, disponibilité, étoiles.
📍
LocalBusiness
Commerce physique. Rich snippet : adresse, horaires, téléphone.
🍽️
Recipe
Recettes de cuisine. Rich snippet : temps, calories, étoiles.
🎟️
Event
Événements. Rich snippet : date, lieu, prix des billets.
Review
Avis et critiques. Rich snippet : note moyenne, nombre d'avis.
🎓
Course
Formations en ligne. Rich snippet : durée, niveau, plateforme.
⚠️
Ne balisez que ce qui est visible sur la page Google pénalise les données structurées qui ne correspondent pas au contenu visible par l'utilisateur. Si vous ajoutez un schéma Product avec un prix, ce prix doit apparaître clairement sur la page. Le balisage trompeur est sanctionné par une pénalité manuelle dans Google Search Console.

04 Implémenter le schéma Article

Le schéma Article (ou sa variante BlogPosting) est le point d'entrée naturel pour les sites éditoriaux. Il ne génère pas de rich snippet spectaculaire, mais il aide Google à comprendre la nature de votre contenu, sa fraîcheur et son auteur, trois critères importants pour l'E-E-A-T.

Propriétés requises et recommandées

  • headline : titre de l'article (identique ou proche du H1)
  • image : URL absolue d'une image représentative (min. 1200×630px)
  • datePublished : date de publication en format ISO 8601
  • dateModified : date de dernière modification
  • author : objet Person ou Organization avec name et url
  • publisher : objet Organization avec name et logo
  • description : résumé de l'article (correspond à la meta description)
  • wordCount : nombre de mots (signal de profondeur du contenu)
JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "@id": "https://exemple.fr/articles/mon-article/#article",
  "headline": "Mon titre d'article optimisé SEO",
  "description": "Description courte de l'article, idéalement identique à la meta description.",
  "image": "https://exemple.fr/images/article-hero.png",
  "datePublished": "2026-04-15T08:00:00+02:00",
  "dateModified": "2026-04-15T08:00:00+02:00",
  "author": {
    "@type": "Person",
    "name": "Prénom Nom",
    "url": "https://exemple.fr/auteur/prenom-nom/"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Mon Site",
    "url": "https://exemple.fr/"
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://exemple.fr/articles/mon-article/"
  },
  "inLanguage": "fr",
  "wordCount": 2800,
  "articleSection": "SEO",
  "keywords": "schema.org, json-ld, données structurées"
}
</script>
💡
BlogPosting vs Article Utilisez BlogPosting pour les articles de blog personnels, NewsArticle pour les actualités, et Article comme type générique pour les guides et tutoriels. Les trois génèrent les mêmes rich snippets, le choix influence surtout la compréhension sémantique de Google.

05 Implémenter le schéma FAQPage

Le schéma FAQPage est probablement celui qui génère le plus d'impact visible dans les SERPs. Quand il est validé, Google peut afficher jusqu'à deux ou trois questions dépliables directement sous votre résultat, doublant ou triplant l'espace occupé dans la page de résultats.

La règle fondamentale : chaque question et réponse du JSON-LD doit être réellement présente sur la page, visible par l'utilisateur. Vous ne pouvez pas créer un FAQPage en JSON-LD avec des contenus qui n'existent pas dans le HTML.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Qu'est-ce que Schema.org ?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Schema.org est un vocabulaire partagé créé par Google, Microsoft, Yahoo et Yandex pour permettre aux moteurs de recherche de comprendre le contenu des pages web."
      }
    },
    {
      "@type": "Question",
      "name": "Comment valider mon JSON-LD ?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Utilisez le Rich Results Test de Google (search.google.com/test/rich-results) ou le Schema Markup Validator (validator.schema.org) pour vérifier la validité de vos données structurées."
      }
    },
    {
      "@type": "Question",
      "name": "Les données structurées améliorent-elles le classement ?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Non directement. Les données structurées ne sont pas un facteur de classement, mais elles peuvent générer des rich snippets qui augmentent le CTR, ce qui améliore indirectement le positionnement."
      }
    }
  ]
}
</script>

Bonnes pratiques pour le FAQPage

  • Rédigez des questions au format interrogatif réel, comme un utilisateur les poserait
  • Les réponses doivent être complètes et autonomes (intelligibles sans le contexte de la page)
  • Limitez-vous à 5-8 questions maximum : Google n'affiche que 2-3 dans les SERPs
  • Ciblez des questions longue traîne tapées réellement dans Google
  • Ne créez pas de FAQ générique sans lien avec le contenu de la page
  • N'incluez pas de liens dans les réponses (Google peut les ignorer ou pénaliser)
  • Évitez les réponses trop courtes (moins de 50 caractères) : Google préfère les réponses substantielles

06 Implémenter le schéma Product

Pour les sites e-commerce, le schéma Product est une priorité absolue. Il permet d'afficher dans les SERPs le prix, la disponibilité et la note moyenne sans que l'utilisateur n'ait besoin de cliquer. Sur mobile notamment, ces informations font la différence entre un clic et un passage à la concurrence.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Nom du produit",
  "description": "Description complète du produit visible sur la page.",
  "image": [
    "https://exemple.fr/images/produit-principal.jpg",
    "https://exemple.fr/images/produit-variante.jpg"
  ],
  "sku": "PROD-001",
  "brand": {
    "@type": "Brand",
    "name": "Nom de la marque"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://exemple.fr/produits/nom-du-produit/",
    "priceCurrency": "EUR",
    "price": 49.90,
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "seller": {
      "@type": "Organization",
      "name": "Mon Magasin"
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": 4.7,
    "reviewCount": 143,
    "bestRating": 5,
    "worstRating": 1
  }
}
</script>
exemple.fr › produits › nom-du-produit
Nom du produit
★★★★★
4.7 · 143 avis
49,90 € · En stock
🚨
Prix et disponibilité : synchronisation obligatoire Le prix et la disponibilité dans le JSON-LD doivent correspondre exactement à ce qui est affiché sur la page. Si votre stock varie en temps réel, mettez à jour le JSON-LD dynamiquement. Google crawle régulièrement pour vérifier la cohérence et peut retirer les rich snippets en cas d'incohérence répétée.

07 Implémenter le schéma LocalBusiness

Pour tout commerce ou prestataire avec une adresse physique, le schéma LocalBusiness est fondamental. Il alimente non seulement les rich snippets dans les résultats classiques, mais aussi les informations affichées dans Google Maps et le Knowledge Panel.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Mon Commerce",
  "description": "Description de l'activité, services proposés.",
  "url": "https://exemple.fr/",
  "telephone": "+33123456789",
  "email": "contact@exemple.fr",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 rue de la Paix",
    "addressLocality": "Paris",
    "postalCode": "75001",
    "addressCountry": "FR"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 48.8698,
    "longitude": 2.3311
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "10:00",
      "closes": "16:00"
    }
  ],
  "priceRange": "€€",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": 4.5,
    "reviewCount": 87
  }
}
</script>
💡
Choisir le bon sous-type de LocalBusiness Schema.org propose des sous-types plus précis que LocalBusiness : Restaurant, Store, MedicalBusiness, LegalService, FinancialService... Utilisez toujours le type le plus spécifique disponible. Un Restaurant aura accès à des propriétés comme servesCuisine et hasMenu que LocalBusiness ne propose pas.

08 Le @graph : combiner plusieurs schémas sur une page

La plupart des pages ont besoin de plusieurs types Schema.org simultanément. Une page d'article a besoin d'un Article, d'un BreadcrumbList et peut-être d'une FAQPage. La bonne pratique est de les regrouper dans un seul bloc JSON-LD en utilisant la propriété @graph.

Cette approche présente trois avantages concrets : un seul bloc <script> à maintenir, des entités liables entre elles via leurs @id, et une validation plus simple dans les outils Google.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://exemple.fr/#website",
      "name": "Mon Site",
      "url": "https://exemple.fr/"
    },
    {
      "@type": "Article",
      "@id": "https://exemple.fr/articles/mon-article/#article",
      "headline": "Mon titre d'article",
      "datePublished": "2026-04-15",
      "author": { "@id": "https://exemple.fr/#org" },
      "publisher": { "@id": "https://exemple.fr/#org" },
      "isPartOf": { "@id": "https://exemple.fr/#website" }
    },
    {
      "@type": "Organization",
      "@id": "https://exemple.fr/#org",
      "name": "Mon Organisation",
      "url": "https://exemple.fr/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Accueil", "item": "https://exemple.fr/" },
        { "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://exemple.fr/blog/" },
        { "@type": "ListItem", "position": 3, "name": "Mon article", "item": "https://exemple.fr/articles/mon-article/" }
      ]
    }
  ]
}
</script>

Notez l'utilisation des @id pour créer des références entre entités. L'Article référence l'Organization via { "@id": "..." } au lieu de réécrire toutes ses propriétés. C'est le linked data en action : des entités liées plutôt que des données isolées.

Vérifiez votre JSON-LD en 30 secondes

SEO Titan analyse vos blocs JSON-LD, valide leur structure et détecte les propriétés manquantes selon le type détecté. Collez votre HTML et obtenez un diagnostic complet gratuitement.

⚡ Analyser mon JSON-LD

09 Les erreurs qui font échouer vos rich snippets

Beaucoup de sites implémentent des données structurées qui ne déclenchent jamais de rich snippets. La raison est presque toujours l'une des erreurs suivantes, que Google détecte et sanctionne silencieusement.

Erreurs techniques

  • JSON syntaxiquement invalide (virgule manquante, guillemets incorrects) : Google ignore le bloc entier
  • Utiliser des URLs relatives (/images/photo.jpg) au lieu d'absolues (https://exemple.fr/images/photo.jpg)
  • Omettre @context ou utiliser un contexte incorrect
  • Mélanger les syntaxes JSON-LD et Microdata sur la même entité
  • Placer le bloc JSON-LD dans le <body> : techniquement valide, mais le <head> est recommandé

Erreurs de contenu

  • Baliser du contenu non visible sur la page (pénalité manuelle possible)
  • Utiliser un aggregateRating sans afficher les avis sur la page
  • Afficher un prix dans le JSON-LD différent du prix affiché sur la page
  • Créer une FAQPage avec des questions non présentes dans le contenu HTML visible
  • Copier le même JSON-LD sur toutes vos pages sans personnalisation
  • Baliser des pages de faible qualité (contenu mince, moins de 200 mots)

Erreurs de type

  • Utiliser Product pour une catégorie ou une liste de produits (une page de liste doit utiliser ItemList)
  • Combiner FAQPage et QAPage sur la même page (types incompatibles)
  • Utiliser Review pour des auto-évaluations (Google pénalise les avis non vérifiables)
  • Utiliser LocalBusiness pour un site e-commerce sans boutique physique
⚠️
La pénalité manuelle des données structurées trompeuses Google peut appliquer une pénalité manuelle spécifique aux données structurées trompeuses, visible dans la section "Actions manuelles" de Search Console. Elle se manifeste par la disparition des rich snippets et peut affecter le classement global de la page. La récupération nécessite une correction et une demande de réexamen.

10 Valider et surveiller vos données structurées

Implémenter des données structurées sans les valider est un pari risqué. Une erreur invisible dans le JSON peut vous priver de rich snippets pendant des semaines sans que vous vous en rendiez compte. Voici le processus de validation recommandé.

Les outils de validation

OutilUsageAccès
Rich Results Test Simule l'affichage des rich snippets, teste par URL ou par code Gratuit
Schema Markup Validator Validation technique complète du JSON-LD selon la spec Schema.org Gratuit
Google Search Console Rapport "Données structurées" : erreurs détectées, pages concernées, historique Gratuit
SEO Titan Audit du JSON-LD depuis le code HTML : validation des propriétés requises par type Gratuit

Le processus de déploiement idéal

  • Écrivez votre JSON-LD et validez-le dans le Rich Results Test avant de le mettre en production
  • Déployez sur la page et soumettez l'URL dans Google Search Console pour accélérer le crawl
  • Attendez 2 à 4 semaines, puis vérifiez l'onglet "Expériences de page" dans Search Console
  • Surveillez le rapport "Données structurées enrichies" pour détecter les erreurs émergentes
  • Si les rich snippets n'apparaissent pas après 6 semaines, vérifiez la qualité globale de la page : Google peut refuser les rich snippets sur des pages jugées insuffisantes

Automatiser la surveillance

Pour les sites avec beaucoup de pages, une surveillance manuelle est impossible. Plusieurs approches permettent d'automatiser la détection des régressions :

  • Configurez des alertes dans Google Search Console pour les nouvelles erreurs de données structurées
  • Intégrez la validation JSON-LD dans votre pipeline CI/CD pour détecter les régressions avant déploiement
  • Mettez en place un crawl mensuel de vos pages clés pour vérifier la présence et la validité des JSON-LD

Auditez votre JSON-LD dès maintenant

Collez le code source de votre page dans SEO Titan. Le module Schema.org analyse vos blocs JSON-LD, vérifie leur validité et détecte les propriétés manquantes pour chaque type. Résultat en moins d'une seconde.

⚡ Lancer l'audit Schema.org gratuit