Vérification des données structurées
Entrez l’adresse d’une page. Nous lisons ses blocs JSON-LD, signalons toute erreur de syntaxe, détaillons chaque élément et le comparons aux propriétés demandées par les moteurs de recherche. Les types en microdonnées et en RDFa sont aussi listés.
Une deuxième copie de la page, écrite pour les machines
Montrez une fiche produit à une personne : elle sait tout de suite quel nombre est le prix et lequel est le stock. Un programme, lui, ne voit que du texte. Les données structurées lui évitent de deviner. En plus de la page visible, vous publiez les mêmes faits sous forme de champs étiquetés, avec les noms du vocabulaire commun de schema.org. Cet objet est un Product, son name est celui-ci, ses offers contiennent un price de 49.00 en USD.
Il y a trois façons de l’écrire. Le JSON-LD met tout dans une seule balise script, à part de la mise en page. C’est la forme que Google recommande. Les microdonnées et le RDFa répartissent les étiquettes sur les balises HTML sous forme d’attributs.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How tides work",
"datePublished": "2026-03-14T09:30:00+00:00",
"author": { "@type": "Person", "name": "Jane Doe" }
}
</script>Les moteurs de recherche utilisent ces champs pour afficher des résultats plus riches, avec des étoiles d’avis, un prix, la photo d’une recette ou la date d’un événement. On les appelle des résultats enrichis.
Ce que lit cette vérification
Notre serveur télécharge la page une seule fois, jusqu’à 3 Mo sans exécuter ses scripts. Ensuite, il procède en quatre étapes.
- Syntaxe. Chaque bloc JSON-LD passe dans un lecteur JSON strict. À la première erreur, il donne la ligne, le caractère et la cause probable : une virgule avant une accolade fermante, un guillemet dans un texte sans échappement, des guillemets typographiques collés depuis un traitement de texte, un commentaire HTML, un saut de ligne brut. Une seule erreur suffit pour qu’un analyseur abandonne tout le bloc.
- Éléments. Les listes
@graphsont dépliées pour que chaque élément s’affiche séparément, avec son type et un aperçu de ses propriétés. Une propriété qui renvoie à un autre élément par@idest suivie quand la cible se trouve sur la page. - Propriétés. Pour les types qui alimentent un résultat enrichi, l’élément est comparé à une liste de propriétés requises et recommandées tirée de la documentation de Google.
- Valeurs. Dans chaque élément, les adresses doivent être absolues, les dates et les durées doivent suivre la norme ISO 8601,
@contextdoit être schema.org et chaque renvoi par@iddoit mener quelque part.
Les microdonnées (itemscope, itemtype) et le RDFa (typeof) sont comptés et nommés par type. Leurs propriétés ne sont pas validées.
Les types que nous comparons et ce qu’ils demandent
| Type | Requis | À savoir |
|---|---|---|
| Article, NewsArticle, BlogPosting | Rien | Recommandé : headline, image, datePublished, dateModified, author sous forme d’élément avec name et url. |
| Product | name plus l’un de offers, review, aggregateRating | Une offre a besoin d’un price ; une note a besoin de ratingValue et d’un nombre d’avis. |
| BreadcrumbList | itemListElement avec position, name, item | Depuis 2025, Google n’affiche le fil d’Ariane que dans les résultats sur ordinateur. |
| FAQPage | mainEntity : des questions avec une réponse acceptée | Depuis août 2023, Google ne l’affiche que pour des sites gouvernementaux et de santé bien connus. |
| HowTo | name, step | Retiré : Google a cessé d’afficher ce résultat en 2023. |
| LocalBusiness | name, address | Les étoiles pour des avis que vous publiez sur vous-même ne sont pas affichées. |
| Event | name, startDate, location avec une adresse | |
| Recipe | name, image | Les temps sont des durées : PT45M. |
| VideoObject | name, thumbnailUrl, uploadDate | |
| JobPosting | title, description, datePosted, hiringOrganization, jobLocation | Pour un poste à distance, le lieu est remplacé par jobLocationType et applicantLocationRequirements. |
| SoftwareApplication, WebApplication | name, offers avec un prix, une note ou un avis | Un logiciel gratuit a un prix de 0. |
| WebSite | name, url | Alimente le nom du site. L’action de champ de recherche a été retirée fin 2024. |
| Organization, Person | Rien | Recommandé : name, url, logo, sameAs pour une organisation. |
Les autres types sont détaillés et leurs valeurs vérifiées, sans liste de propriétés requises.
Réparer ce que montre le rapport
- Une erreur de syntaxe
- Les blocs modifiés à la main se cassent sur les virgules et les guillemets. Générez le bloc avec un encodeur JSON (
json_encodeen PHP,JSON.stringifyen JavaScript) et toute cette famille d’erreurs disparaît. Dans un CMS, collez le JSON-LD dans un champ de code. N’utilisez jamais l’éditeur visuel pour cela, car il transforme les guillemets en guillemets typographiques. - Une propriété requise manque
- Ajoutez-la, avec la valeur qu’un visiteur peut voir sur la page. Les moteurs de recherche comparent les deux. Un balisage qui décrit quelque chose que la page ne montre pas peut valoir une action manuelle.
- Une adresse relative
- Écrivez
https://www.example.com/img/cover.jpgen entier, pas/img/cover.jpg. - Une date qui n’est pas en ISO 8601
- L’année d’abord, puis
T, puis l’heure et le décalage par rapport à UTC :2026-03-14T09:30:00+00:00. Un jour seul,2026-03-14, est valide aussi. - Un renvoi vers nulle part
"author": {"@id": "…/#jane"}ne fonctionne que si un élément portant exactement cet@idse trouve sur la même page. Ajoutez l’élément, ou écrivez l’auteur directement à cet endroit.
Ce que cette vérification ne peut pas vous dire
Elle lit le HTML tel qu’il est livré. Les données structurées ajoutées ensuite par JavaScript ou par un gestionnaire de balises sont invisibles ici, même si Google peut les voir après le rendu. Les images ne sont pas téléchargées : une image cassée ou trop petite passe donc inaperçue. Les listes de propriétés couvrent les types de résultats courants. Elles ne couvrent pas tous les types ni tous les champs facultatifs.
Ce n’est pas le test des résultats enrichis de Google. Un rapport sans erreur ne promet pas un résultat enrichi. Un balisage valide rend une page admissible. L’affichage d’étoiles ou d’un prix dépend du moteur de recherche, de la requête, de la qualité de la page et de règles qui changent sans cesse. Vérifiez dans Search Console une fois la page indexée.
Questions fréquentes
Quelle est la différence entre JSON-LD, microdonnées et RDFa ?
Ils portent le même vocabulaire schema.org dans trois syntaxes. Le JSON-LD tient dans une seule balise script, à part de la mise en page. Les microdonnées et le RDFa ajoutent des attributs aux balises HTML autour du texte visible. Google lit les trois et recommande le JSON-LD, parce que c’est le plus facile à maintenir.
Les données structurées améliorent-elles le classement ?
Pas directement. Elles aident un moteur de recherche à comprendre la page et la rendent admissible à des résultats plus riches, ce qui peut amener plus de clics. Elles ne feront pas monter une page à elles seules.
Pourquoi mon balisage FAQ ne s’affiche-t-il pas dans Google ?
Depuis août 2023, Google n’affiche les résultats enrichis FAQ que pour des sites gouvernementaux et de santé reconnus et faisant autorité. Sur les autres sites, un balisage FAQPage valide est lu mais n’a aucun effet visible dans les résultats. Les résultats « how-to » ont été supprimés complètement la même année.
Comment trouver une erreur de syntaxe JSON-LD ?
Passez la page dans cette vérification. Elle indique la ligne et le caractère où un analyseur JSON s’arrête, ainsi que la cause probable. Les plus fréquentes sont une virgule avant un } ou un ] fermant, un guillemet double dans un texte qui devrait s’écrire \" et des guillemets typographiques laissés par un éditeur de texte.
Mes données structurées sont valides. Pourquoi n’y a-t-il pas de résultat enrichi ?
Un balisage valide vous met dans la course, sans plus. La page doit être indexée, le balisage doit correspondre à ce que voient les visiteurs, le site doit inspirer assez de confiance pour ce type de résultat et certains types sont réservés à certains sites ou ont été retirés. Un nouveau balisage peut aussi mettre des jours ou des semaines à être pris en compte.
Où placer le script JSON-LD dans la page ?
N’importe où dans le HTML, dans le <head> ou dans le <body>. Une page peut contenir plusieurs blocs, ou un seul bloc qui liste plusieurs éléments sous @graph.