Vérificateur de données structurées : lisez le JSON-LD d’une page

Indiquez l’adresse d’une page, ou collez son code : l’outil en extrait les blocs JSON-LD, les microdonnées et le RDFa, signale les erreurs de syntaxe avec la ligne fautive, dessine l’arbre des types et compare chaque type aux propriétés que Google liste pour son résultat enrichi.

    Coller du JSON-LD ou du HTML à la place

    Un texte qui commence par { ou [ est lu comme un bloc JSON-LD, sinon comme du HTML. L’analyse se fait dans votre navigateur, rien n’est envoyé.

    Comment utiliser l’outil

    Collez l’adresse complète d’une page et cliquez sur « Vérifier ». L’outil télécharge la page comme le ferait un navigateur, suit les redirections jusqu’à la destination et ne garde du HTML que les blocs de données structurées : le serveur ne vous renvoie pas la page entière. Si la page est protégée, ou si vous voulez tester un balisage avant de le publier, ouvrez « Coller du JSON-LD ou du HTML à la place ».

    Chaque bloc trouvé reçoit sa carte : état de la syntaxe, alertes de structure, puis un paragraphe par type avec les propriétés absentes, les obligatoires d’abord. L’arbre des propriétés, replié, montre ce que l’outil a réellement lu, utile pour repérer une valeur mal imbriquée. L’outil lit jusqu’à 60 blocs par page et une requête est comptée par adresse.

    Les trois formats que l’outil lit

    Google accepte trois formats : JSON-LD, microdonnées et RDFa. Il les juge équivalents tant que le balisage est valide et conforme à la documentation de la fonctionnalité visée, et recommande le JSON-LD : un bloc <script> séparé du texte visible, qui se prête bien aux données imbriquées et reste le plus simple à maintenir à grande échelle.1 L’outil traite les trois de la même façon : il convertit les microdonnées (itemscope, itemtype, itemprop) et le RDFa (typeof, property) en objets de même forme que le JSON-LD, puis applique les mêmes contrôles.

    Pour le JSON-LD, il relève en plus ce qui tient à la structure du bloc : un @context absent ou étranger à schema.org, un objet sans @type ni @graph, un @id défini deux fois, une référence à un @id que le bloc ne définit pas. Les références valides entre objets d’un même @graph sont résolues avant la comparaison : un auteur renvoyé par {"@id": "#moi"} compte comme présent avec les propriétés de l’objet visé.

    Trouver la ligne d’une erreur de syntaxe

    Une virgule en trop après la dernière propriété, un guillemet typographique, un commentaire : le JSON est strict, et un seul caractère fautif invalide tout le bloc. Quand le navigateur indique la position de l’erreur, l’outil la convertit en numéro de ligne et de colonne dans le bloc et affiche la ligne concernée. Le message d’origine du navigateur reste visible dessous, en anglais. Un bloc en erreur n’est pas comparé aux propriétés de Google : corrigez d’abord la syntaxe.

    Ce que Google liste pour chaque type

    Pour les types qui ouvrent un résultat enrichi, la documentation de Google distingue les propriétés obligatoires, sans lesquelles la page n’est pas éligible, et les propriétés recommandées, qui enrichissent l’affichage. Le tableau reprend ce que les pages de Google indiquent pour chaque type ; l’outil compare votre balisage à ces listes, chemins imbriqués compris.2

    TypeObligatoireRecommandé (extrait)
    Article, NewsArticle, BlogPosting3aucuneheadline, image, datePublished, dateModified, author, author.name, author.url
    BreadcrumbList / ListItem4itemListElement (2 éléments au moins) ; position, name, itemaucune
    LocalBusiness5name, addressurl, telephone, geo, openingHoursSpecification, priceRange, aggregateRating, review…
    Organization6aucunename, legalName, url, logo, sameAs, address, contactPoint, telephone, email…
    Product7name, et l’un de review, aggregateRating ou offersoffers, aggregateRating, review
    Offer (dans Product)7pricepriceCurrency, availability, priceValidUntil
    Review8author, reviewRating.ratingValue, itemReviewed (sauf si l’avis est imbriqué)datePublished, reviewRating.bestRating, reviewRating.worstRating
    AggregateRating8ratingValue, ratingCount ou reviewCount, itemReviewed (sauf si imbriqué)bestRating, worstRating
    Event9name, startDate, location, location.addressendDate, description, image, eventStatus, offers, organizer, performer…
    Recipe10name, imageauthor, datePublished, description, recipeIngredient, recipeInstructions, prepTime, cookTime, totalTime, recipeYield…
    VideoObject11name, thumbnailUrl, uploadDatedescription, contentUrl, embedUrl, duration, expires, creator ou author…

    Trois précisions sur ce tableau. Article et Organization n’ont aucune propriété obligatoire : Google demande d’ajouter celles qui correspondent au contenu. Pour un fil d’Ariane, item peut être omis sur le dernier élément, Google prenant alors l’adresse de la page. Pour un Product, une seule des trois propriétés review, aggregateRating ou offers suffit.47 Les sous-types de LocalBusiness, d’Organization et d’Article sont reconnus pour une liste courante (Restaurant, Store, NewsArticle, BlogPosting et quelques autres) ; le vocabulaire complet de schema.org en compte bien davantage.

    Les limites de l’outil

    Respecter la liste des propriétés ne garantit pas un affichage : Google demande aussi que le balisage décrive un contenu visible sur la page, que les informations soient à jour et que les avis soient de vrais avis d’utilisateurs. Un balisage qui enfreint ces règles s’expose à une action manuelle, qui retire l’éligibilité aux résultats enrichis sans modifier le classement dans la recherche web.2 L’outil lit du code, il ne compare pas le balisage au contenu affiché.

    Le test des résultats enrichis de Google reste la référence pour savoir si une page est éligible, et le validateur de schema.org contrôle le balisage contre le vocabulaire complet.112 Utilisez l’outil pour balayer rapidement une page, lire l’arbre et repérer les trous, puis confirmez avec ces deux services.

    Autre limite : l’outil lit le HTML tel que le serveur l’envoie, sans exécuter le JavaScript. Un balisage injecté par un script après le chargement n’apparaît pas ; copiez alors le code depuis l’inspecteur du navigateur et collez-le. Enfin, la FAQ ne figure plus dans la galerie des fonctionnalités de Google :13 un bloc FAQPage est lu et son arbre affiché, mais il n’a pas de tableau de propriétés.

    Après la vérification

    Pour écrire un balisage propre plutôt que corriger un balisage cassé, le générateur de données structurées produit le JSON-LD de LocalBusiness, d’Article, de fil d’Ariane et de FAQ avec les champs que Google attend. L’article sur les données structurées et les rich snippets explique quels types valent la peine d’être posés. Et quand un site entier est à reprendre, type par type et gabarit par gabarit, c’est le travail d’un consultant SEO.

    Questions fréquentes

    L’outil remplace-t-il le test des résultats enrichis de Google ?

    Non. Le test de Google dit si une page est éligible à un résultat enrichi, et le validateur de schema.org contrôle le balisage contre le vocabulaire complet. Cet outil compare votre balisage aux propriétés que la documentation de Google liste et vous montre l’arbre lu. Il sert à repérer vite les trous, avant de confirmer avec ces deux services.

    Pourquoi mon bloc JSON-LD est-il en erreur de syntaxe ?

    Les causes les plus courantes sont une virgule après la dernière propriété, des guillemets typographiques à la place des guillemets droits, un commentaire dans le JSON ou une accolade manquante. L’outil affiche la ligne et la colonne quand le navigateur les fournit, avec le message d’origine.

    Pourquoi un type de mon balisage n’a-t-il pas de tableau de propriétés ?

    Le tableau n’existe que pour les types dont la documentation de Google liste des propriétés obligatoires ou recommandées : Article, BreadcrumbList, LocalBusiness, Organization, Product, Review, AggregateRating, Event, Recipe et VideoObject. Les autres types, comme WebSite ou Person, sont lus et affichés dans l’arbre sans comparaison.

    Pourquoi mon FAQPage n’est-il pas comparé ?

    La FAQ ne figure plus dans la galerie des fonctionnalités de recherche de Google. Le bloc est lu, sa syntaxe est contrôlée et l’arbre s’affiche, mais aucune liste de propriétés Google ne sert de référence.

    L’outil exécute-t-il le JavaScript de la page ?

    Non. Il lit le HTML tel que le serveur l’envoie. Si votre balisage est ajouté par un script, copiez le code depuis l’inspecteur de votre navigateur, ouvrez « Coller du JSON-LD ou du HTML à la place » et collez-le.

    Combien de requêtes l’outil consomme-t-il, et que devient ce que je colle ?

    Une requête par adresse vérifiée, sur un quota de 20 par tranche de 10 minutes et par visiteur, partagé avec les autres outils du site. Le texte collé est analysé dans votre navigateur et n’est envoyé nulle part. Pour une adresse, le serveur ne conserve ni l’adresse ni le contenu.

    Sources

    Les passages de cette page qui s’appuient sur une source renvoient à l’une de ces références.

    1. Google Search Central, « Présentation du fonctionnement des données structurées ». developers.google.com ↑
    2. Google Search Central, « Consignes générales concernant les données structurées ». developers.google.com ↑
    3. Google Search Central, « Données structurées Article ». developers.google.com ↑
    4. Google Search Central, « Données structurées de fil d’Ariane ». developers.google.com ↑
    5. Google Search Central, « Données structurées d’entreprise locale ». developers.google.com ↑
    6. Google Search Central, « Données structurées d’organisation ». developers.google.com ↑
    7. Google Search Central, « Données structurées d’extraits de produit ». developers.google.com ↑
    8. Google Search Central, « Données structurées d’extraits d’avis ». developers.google.com ↑
    9. Google Search Central, « Données structurées Event ». developers.google.com ↑
    10. Google Search Central, « Données structurées Recipe ». developers.google.com ↑
    11. Google Search Central, « Données structurées Video ». developers.google.com ↑
    12. Schema.org, validateur de balisage. validator.schema.org ↑
    13. Google Search Central, « Galerie des fonctionnalités de recherche de données structurées ». developers.google.com ↑

    Un balisage à reprendre sur tout un site ?

    L’audit SEO relie les données structurées aux pages qui comptent pour votre activité et fixe l’ordre des corrections. Je vous réponds sous 24 heures ouvrées.

    Me contacter