Données structurées et extraits enrichis
Les données structurées sont un moyen efficace d'intégrer des informations dans les pages web, que les moteurs de recherche peuvent utiliser pour proposer de meilleurs résultats de recherche aux utilisateurs : des résultats plus précis, qui correspondront mieux à la recherche de l'utilisateur, et également des résultats plus lisibles, avec une couche de présentation adaptée.
Comme nous avons récemment lancé notre propre validateur de données structurées, nous avons pensé qu'il était temps de donner un aperçu des données structurées schema.org à nos clients.
Un peu d'histoire - d'où vient schema.org ?
Nous allons essayer d'éviter l'introduction traditionnelle sur les données structurées schema.org, qui mêle habituellement des réflexions sur le Web sémantique, le RDF et le concept d'ontologies.
Le World Wide Web, tel que nous le connaissons, a été créé au début des années 90. En quelques mots, l'un des objectifs de son inventeur, Tim Berners Lee, était de faciliter le processus de partage des connaissances entre les humains et les machines. Si le Web habituel est non structuré par essence (le design, les mots, la couche de présentation jouent un rôle majeur), Berners Lee a rapidement souligné la nécessité d'un moyen d'exprimer l'information de manière formelle, qui aiderait à traiter des recherches plus approfondies et à répondre à des questions plus complexes que simplement "acheter des livres pas chers".
Aujourd'hui, quand une personne publie une annonce sur un site Web pour vendre, disons, une voiture jaune, il est presque impossible pour une autre personne de la trouver. La recherche d'une "voiture jaune à vendre dans le Massachusetts" donne une liste énorme et inutile de pages qui se trouvent contenir ces mots, alors qu'en fait la page que je voudrais pourrait concerner une "Honda, bon état, toute bonne offre" avec un numéro de téléphone de Boston. Le moteur de recherche ne comprend pas la page, parce qu'elle est écrite pour un lecteur humain ayant une connaissance de l'anglais et beaucoup de bon sens.
C'est le concept à l'origine du "Web sémantique", que Wikipédia présente comme "une extension du World Wide Web à travers des standards définis par le World Wide Web Consortium (W3C). L'objectif du Web sémantique est de rendre les données Internet lisibles par les machines".
Le W3C a créé plusieurs standards Web - appelés Recommandations - pour établir un cadre permettant de désambiguïser les concepts de connaissance et d'exprimer des informations complexes de la manière la plus précise possible. Au cours des 20 dernières années, le W3C a travaillé sur une tonne de spécifications dans des domaines liés au Web sémantique - 301 d'entre elles ont atteint le niveau "Recommandation" à ce jour.
Certains domaines ont adopté ces standards pour créer des outils professionnels (pensez à la recherche médicale, aux bibliothèques, aux laboratoires de recherche, aux musées, etc.), mais la grande partie du Web "public" n'utilise pas les concepts du Web sémantique au quotidien.
En 2010-2011, un consortium d'acteurs majeurs du Web a décidé de s'associer pour construire un nouveau vocabulaire, avec un objectif très pragmatique, qui leur permettrait d'exprimer facilement des concepts concrets de la vie réelle. C'est ainsi que Google, Microsoft, Yahoo et Yandex ont créé schema.org, une nouvelle initiative qui a débuté avec un vocabulaire ne contenant qu'environ 300 concepts, allant des CreativeWorks (Livres, Peintures, Pages web, etc.), aux Événements (BusinessEvent, MusicEvent, TheaterEvent, etc.), aux Organisations (Corporations, LocalBuisinesses, etc.), aux Personnes, aux Lieux (AdministrativeAreas, CivicStructures, etc.) ou aux Produits.
Depuis lors, le vocabulaire schema.org s'est un peu développé et permet maintenant d'exprimer environ 900 concepts différents :
Exprimer des concepts avec schema.org
Point de vue formel
schema.org est un vocabulaire, ce qui signifie qu'il définit :
- des types de données (appelés
Class
) qui permettent de définir des objets, des informations de différentes natures. Les classes sont organisées hiérarchiquement, par héritage multiple. Par exemple, la classeAudiobook
étend à la fois les classesBook
etAudioObject
. - des relations entre ces objets, via des
Properties
. Par exemple, un objetAudiobook
peut avoir une propriétéauthor
, qui peut être de typeOrganization
ouPerson
.
La représentation formelle habituelle des données structurées schema.org se fait à l'aide de graphes orientés, où les nœuds sont des Objets (instances de Classes) et les liens orientés décrivent des propriétés.
Syntaxes et formats
Il existe plusieurs façons d'intégrer des données structurées schema.org dans les pages Web. Les trois formats de sérialisation les plus courants sont :
- JSON-LD, qui est le standard de facto, recommandé par Google. JSON-LD est une simple sérialisation json. Il est facile à lire, facile à produire et peut être inclus dans n'importe quelle partie de la page web, sans perturber son design ;
- Microdata est une autre manière populaire d'intégrer des données structurées au sein de pages web existantes. Il utilise des attributs HTML pour ajouter des propriétés et des valeurs aux nœuds existants de l'arbre DOM. Comme les données structurées sont mélangées aux nœuds HTML, il est moins facile à lire (et à produire) que la sérialisation JSON-LD ;
- RDFa est moins utilisé. C'est une extension HTML5, qui ajoute des attributs HTML permettant d'exprimer les métadonnées schema.org.
Quelques exemples d'utilisation réelle
Au moment de la rédaction de ces lignes, schema.org propose près de 900 Classes et environ 1400 noms de Propriétés, et il évolue très fréquemment - la version 7.0 de schema.org, publiée le 17/03/2020, a introduit par exemple la classe SpecialAnnouncement
, en contribution à la réponse globale à la pandémie de Coronavirus COVID-19. En 2020, schema.org a publié 4 autres nouvelles versions majeures.
Bien sûr, la plupart des types décrits par schema.org sont très spécialisés et doivent être utilisés dans des cas très précis. Vous devriez cependant préférer les types spécifiques chaque fois que possible au lieu de leur équivalent générique (par exemple, si votre page Web concerne une gare, utilisez la classe TrainStation
au lieu de la classe générique Place
.
La publication de données structurées demande de l'attention et des efforts, vous devez donc choisir des données structurées qui ont du sens pour votre entreprise et pour les entités principales représentées dans la page Web. Ajouter des dizaines d'objets de données structurées à une page Web n'est pas nécessairement une bonne idée, et en fait le véritable défi, comme c'est souvent le cas en SEO, est de rester pertinent et mesuré dans les choix que vous faites.
En d'autres termes, ciblez simplement vos objectifs pour ajouter des données structurées utiles. Si, par exemple, vous souhaitez faciliter les contacts entrants, il est judicieux d'ajouter les informations de contact de votre entreprise via un objet Organization
, car cela pourrait permettre à un moteur de recherche d'ajouter des boutons d'action pour visiter votre site Web, vous appeler, obtenir des itinéraires vers vos bureaux, etc.
CreativeWork
CreativeWork
est conçu pour exposer toutes les productions intellectuelles ou créatives : livres, films, etc. L'intégration de ces informations dans une page Web permet aux consommateurs (un moteur de recherche, etc.) d'afficher joliment ces informations dans les résultats des moteurs de recherche, ce qui, bien sûr, peut encourager les utilisateurs à cliquer sur votre lien.
Voyez par exemple ici un résultat de moteur de recherche vers IMDB : le rich snippet a pu être généré grâce à l'extraction de données opérée à partir des données structurées exposées dans la page Web.
Événements
schema.org inclut un support étendu pour de nombreux types d'événements : BroadcastEvent
, TheaterEvent
, SportsEvent
, MusicEvent
, Festival
, BusinessEvent
sont quelques exemples des classes détaillées que vous pourriez vouloir exposer dans votre page Web, si elle concerne un tel événement.
Dans un Event
schema.org, vous pouvez configurer ses dates, son emplacement, son nombre maximal de participants, son statut (programmé, reporté, etc.), le type de performance associé à l'événement, les offres de billets, etc. Toutes ces métadonnées permettent aux consommateurs de données structurées de construire des rich snippets attrayants, ce qui pourrait aider à accroître l'intérêt pour la participation à l'événement.
Produits
Bien sûr, l'exposition de données structurées pour les produits est particulièrement intéressante pour les magasins de commerce électronique en ligne, car elle permet au catalogue de produits d'être partagé avec des sites Web externes et, potentiellement, de générer plus de ventes. Google Images intègre des résultats d'images de produits, par exemple, ainsi que plusieurs autres métadonnées extraites des données structurées :
Lorsque vous incluez des données structurées dans vos pages Web, essayez d'être exhaustif et précis. Rappelez-vous que vous le faites pour vos utilisateurs, et qu'ils veulent obtenir les informations les plus utiles possible. Pour un produit, indiquez sa disponibilité, son prix et son unité, le sku
(qui permettra à l'utilisateur de comparer avec d'autres offres pour le même produit), une ou plusieurs photos du produit, etc.
Interactions des pages web
Les classes Action
(et héritées) de schema.org permettent de définir la disponibilité des interactions avec un sujet.
Par exemple, l'extrait suivant peut être interprété de manière sûre et non ambiguë par un consommateur comme "Pour le site Web disponible à l'adresse http://example.com/, il est possible d'effectuer une recherche : envoyer une requête HTTP à une URL de la forme http://example.com/search?&q={query}
, où {query}
est un paramètre requis". Avec une telle information, tout consommateur de ce site Web peut construire dynamiquement des liens vers des pages de résultats de recherche internes pour ce site Web :
{
"@context": "https://schema.org",
"@type": "WebSite",
"url": "http://example.com/",
"potentialAction": {
"@type": "SearchAction",
"target": "http://example.com/search?&q={query}",
"query": "required"
}
}
schema.org décrit plusieurs types d'action : ReviewAction
(l'action d'envoyer un avis), BuyAction
(l'action d'acheter un article), PlayAction
(l'action de jouer / d'inviter quelqu'un à jouer), WatchAction
(l'action de regarder un film, par exemple).
Les consommateurs de données structurées ont des exigences
D'un point de vue purement formel, schema.org ne déclare pas de propriétés obligatoires. Par exemple, il est possible de déclarer qu'un Audiobook
existe, sans déclarer son titre, son auteur, son format d'encodage ou sa durée. Il appartient au rédacteur de données structurées de donner plus ou moins de détails sur les éléments qu'il souhaite spécifier. Bien sûr, plus vous donnez d'informations détaillées sur un objet, plus les utilisations de ces informations peuvent être complètes, intéressantes ou utiles. C'est la raison pour laquelle les consommateurs de données structurées schema.org (c'est-à-dire les moteurs de recherche, mais cela pourrait aussi être un logiciel de marketplace, un agrégateur de flux d'actualités, etc.) ont commencé à publier une liste de leurs exigences concernant les objets de données structurées qu'ils comprennent et utilisent.
Google maintient une galerie de recherche de données structurées qui répertorie tous les principaux types de données pris en charge par Google, qui peuvent être affichés sous forme de rich snippets dans les résultats de recherche. Pour chacun des types pris en charge, Google explique quelles propriétés sont requises ou recommandées.
Ces exigences changent souvent (plusieurs fois par an) et ne sont pas toujours cohérentes d'une langue à l'autre dans la documentation de Google.
Bien qu'ignorer une propriété pour un objet de données structurées ne soit pas une erreur formelle et ne pénalisera pas votre classement SEO, cela pourrait simplement entraîner l'ignorance de vos annotations - ce qui n'est évidemment pas ce que vous voulez en ajoutant des données structurées à vos pages ! Rester à jour et vérifier fréquemment que les exigences en matière de données structurées sont respectées pour votre ou vos consommateurs cibles est le seul moyen d'être en sécurité ici. En d'autres termes : vérifiez fréquemment que vos données structurées sont valides !
Veuillez noter que, bien qu'ignorer un attribut ne soit pas une erreur grave, l'ajout de données structurées erronées délibérément est fortement déconseillé par Google (avis falsifiés, etc.). Google avertit : "Si votre site enfreint une ou plusieurs de ces consignes, Google peut prendre des mesures manuelles à son encontre."
Valider et tester les données structurées schema.org
Tester et valider les données structurées est assez compliqué, en raison de l'évolution des spécifications et des exigences des consommateurs.
Plusieurs outils existent, qui peuvent extraire et valider les données structurées des pages web. Voici une courte liste :
- Google Structured Data Testing Tool est un outil fourni par Google, qui sera déprécié en faveur de l'outil plus simple "Rich Results Test" ;
- Bing Markup Validator est moins avancé que les outils proposés par Google, mais peut aider ;
- validateur de données structurées redirection.io : nous proposons un outil de validation de données structurées gratuit et exhaustif, qui teste les données structurées pour leur validité formelle et par rapport aux exigences de Google. Ce validateur est inclus dans le crawler de site web que nous proposons à nos clients payants.
Il existe d'autres outils plus académiques, avec des interfaces moins conviviales, et ils n'indiquent souvent pas les champs manquants, les mauvaises valeurs, ou manquent de documentation.
Quelques subtilités et points d'attention
Rédiger correctement des données structurées schema.org valides peut être quelque peu compliqué. De plus, il y a quelques subtilités à connaître lorsque vous souhaitez manipuler schema.org à un niveau avancé.
- un objet peut être décrit comme un mélange de plusieurs types (c'est-à-dire une composition de types), à la volée. Par exemple, vous pouvez mélanger les classes
Festival
etTouristAttraction
pour créer un type hybride, si vous voulez par exemple décrire un festival de musique très touristique :{ "@context": "https://schema.org", "@type": ["Festival", "TouristAttraction"], "name": "Very touristic festival", "maximumAttendeeCapacity": 1000, // comes from Festival "touristType": [ // comes from TouristAttraction "Wine tourism", "Cultural tourism" ] }
- les objets
Action
de schema.org peuvent accepter des propriétés personnalisées, suffixées par-input
ou-output
- lisez la page de documentation schema.org sur les actions - chaque valeur de propriété (même celles documentées comme un objet) peut être remplacée par une URL
- chaque propriété peut avoir plusieurs valeurs. Par exemple, un
CreativeWork
peut avoir un ou plusieursauthor
:{ "@context": "https://schema.org", "@type": "Book", "name": "Some book title", "author": [ { "@type": "Organization", "name": "Some company name" }, { "@type": "Person", "name": "John Doe" } ] }
- chaque objet de propriété peut être remplacé par des objets
Role
qui permettent de typer la relation. Par exemple, si vous voulez expliquer que quelqu'un est un PDG d'une entreprise, vous pouvez remplacer la propriétémember
, qui devrait être un objet de la classePerson
, par un objetOrganizationRole
:{ "@context": "https://schema.org", "@type": "Organization", "name": "Tesla", "url": "https://www.tesla.com", "member": { "@type": "OrganizationRole", "member": { "@type": "Person", "name": "Elon Musk" }, "roleName": "CEO", "startDate": "2008" } }
- la plupart des exemples affichés sur schema.org sont erronés Au moment de la rédaction de ces lignes, de nombreux exemples fournis par schema.org dans la définition du vocabulaire sont erronés (ils ne respectent pas la casse des paramètres, leur type, certains paramètres supplémentaires sont mal orthographiés, etc.). Ou, ce qui n'est pas un réel problème, ces exemples ne sont pas conformes aux exigences de Google (et nous leur pardonnons, Google ne respecte pas non plus ses propres directives en matière de données structurées).
Si vous pensez qu'une information majeure manque sur cette page, n'hésitez pas à nous contacter !