Données structurées
Portrait Olivier Duffez

Olivier Duffez

Créateur de WebRankInfo,
consultant en référencement

Données structurées : le guide WebRankInfo

C'est quoi les "données structurées" ? Quel rapport avec les entités et schema.org ? Format JSON-LD ou autres ? Réponses dans ce dossier complet.

Bienvenue dans ce dossier WebRankInfo consacré aux données structurées !

Si vous n'avez pas encore de stratégie pour les exploiter, vos techniques de référencement sont dépassées...

Lisez cette série d'articles (celui-ci n'est qu'une présentation générale) et vous pourrez faire progresser votre SEO. Si vous pensez avoir besoin d'un professionnel, contactez-moi.

Intérêt des données structurées

Avant de parler des données structurées (Structured Data en anglais), je vous propose de découvrir la notion d'entité nommée et la problématique des données non structurées.

La recherche d'entités nommées

Dans la discipline dite Information Retrieval (IR, la base scientifique des algorithmes des moteurs de recherche), l'identification d'entités nommées est très ancienne. L'idée est d'essayer de repérer dans l'ensemble des textes de l'index toutes sortes d'entités reconnaissables par leur nom. Les 3 principales sont :

  • des personnes physiques : réelles ou fictives
  • des personnes morales (organisations) : entreprises, gouvernements, associations, etc.
  • des lieux

On pourrait ajouter plein d'autres types d'entités, par exemple une date, un nom de produit ou service, etc.

Repérer et comprendre sans erreur les entités n'est pas si facile que ça quand on les cherche dans des données non structurées, c'est-à-dire n'importe quel texte présent dans une page web. Il faut savoir éviter 3 pièges :

  • les synonymes : plusieurs expressions différentes décrivent la même entité
  • les homonymes : une même expression correspond à différentes entités selon le contexte (par exemple jaguar l'animal et Jaguar la marque de voitures)
  • la métonymie : en raison du contexte, une expression est associée à une entité différente de d'habitude (par exemple "boire un verre" où on utilise le récipient pour parler du liquide)

Comme les autres moteurs de recherche, Google tente de repérer les entités pour mieux comprendre les contenus et les indexer. Différentes techniques de text mining ont été utilisées : en 2012 par exemple, Amit Singhal expliquait comment Google utilisait les entités nommées.

Désormais ce sont des techniques à base d'intelligence artificielle (IA) qui fonctionnent le mieux. On parle de Traitement Automatique du Langage Naturel (Natural Language Processing, NLP). Parmi toutes les applications possibles de BERT figure la reconnaissance d'entités.

Grâce à ces nouvelles techniques, on peut identifier les entités présentes dans un texte de façon assez efficace. Mais il reste de nombreux pièges, et c'est là que les données structurées font toute la différence.

Les données non structurées

Définition :

Les données non structurées sont des données représentées ou stockées sans format prédéfini, destinées à des humains et non des machines. Cette absence de format entraîne des irrégularités et des ambiguïtés qui peuvent rendre difficile la compréhension des données.

Wikipedia

Même si l'information peut être très détaillée, les données contenues sur Wikipédia sont non structurées. Dans le cadre du projet du web sémantique, l'organisation Wikimedia a mis en place Wikidata, un immense référentiel de données, une sorte de bibliothèque ouverte d'innombrables entités. Vous l'avez compris, Wikidata est constitué de données structurées.

Qu'est-ce que les données structurées ?

Définition

Les données structurées sont des informations destinées aux machines (robots des moteurs de recherche) fournissant des détails sur les entités présentes dans un contenu (et leurs relations), présentes dans la page dans un format normalisé, basées sur un référentiel (schema.org par exemple).

Olivier Duffez (WebRankInfo)

On parle de données structurées car elles s'appuient sur un vocabulaire commun, une ontologie, gérée par schema.org pour ce qui concerne les données structurées exploitées par Google.

Page web = HTML + CSS + données structurées + Javascript

Avant de poursuivre mes explications, je tente une petite synthèse... Une page web optimisée pour le référencement contient :

  • du code HTML avec du contenu (texte, image, vidéo, audio) inclus dans des balises choisies le mieux possible pour donner du sens (notion de web sémantique apportée par HTML5)
  • des styles CSS pour décrire comment le contenu doit s'afficher
  • des données structurées pour décrire aux machines quelles entités sont présentes dans le contenu
  • des scripts Javascript pour gérer l'interactivité avec l'internaute (entre autres)
Données structurées
Les données structurées complètent le code HTML (destiné aux humains) afin que les machines comprennent bien de quoi traite la page

Remarque : HTML5 en lui-même n'apporte que peu à la notion de web sémantique. Certes, on peut dire qu'un bloc correspond à un article et pas à quelque chose de neutre (div), mais ça ne va pas vraiment plus loin. Pour décrire vraiment ce qui est traité dans la page, il est nécessaire d'ajouter une couche de données structurées.

Le référentiel schema.org (vocabulaire)

schema.org
schema.org est le référentiel (vocabulaire) utilisé par Google pour les données structurées

Création de schema.org

Schema.org est une activité communautaire collaborative dont la mission est de "créer, maintenir et promouvoir des schémas pour des données structurées sur Internet, sur des pages Web, dans des messages électroniques et au-delà".

Le projet schema.org a été lancé le 2 juin 2011 par Bing , Google et Yahoo!. Yandex les a rejoint en novembre 2011. Depuis 2015, c'est le W3C qui le gère (même si Google continue de jouer un rôle majeur).

Si besoin, lisez mon article sur la création de schema.org en 2011.

A quoi sert schema.org ?

Pour que tout le monde se comprenne, il faut utiliser le même "référentiel". On parle aussi de "vocabulaire" (ou d'ontologie) mais je trouve que "référentiel" fait mieux comprendre la notion arborescente.

Par exemple, vous pouvez indiquer qu'une page traite d'une série TV. Vous allez pouvoir le faire précisément car parmi plusieurs centaines de types, schema.org a prévu ce type "série TV".

Et si vous souhaitez donner plus de détails, vous pouvez préciser qu'en fait votre page traite de la saison 2 de cette série. Car schema.org a prévu le type "saison" qui est un "enfant" du type "série TV".

Vous pouvez aussi indiquer que vous parlez d'une personne précise, en utilisant le type "Person". Et s'il s'avère que c'est la réalisatrice de la série, autant le mentionner... car schema.org l'a prévu !

Vous avez compris qu'il peut y avoir toute une arborescence de types de données, qui ont chacune des propriétés (par exemple le titre de la série TV ou le nom de famille de la réalisatrice).

Intérêt de schema.org en SEO

Parmi les centaines de types prévus par schema.org (leur nombre augmente régulièrement), une partie seulement ont un impact direct sur l'affichage des résultats de recherche (SERP). Par exemple pour bénéficier d'un affichage dédié aux recettes de cuisine, il est nécessaire d'inclure les données structurées correspondantes.

Mais cela ne signifie pas que c'est la seule exploitation par Google des données structurées, bien au contraire ! Je pense qu'il faut plutôt voir ça comme la partie émergée de l'iceberg... et que vous pouvez faire bien mieux que de vous contenter des quelques données structurées utiles aux rich snippets.

Les 3 formats possibles de données structurées

Pour inclure des données structurées dans une page web, les 3 formats suivants sont les plus souvent utilisés. Ce sont en tout cas les seuls reconnus par Google, sachant que JSON-LD est celui qui est recommandé.

JSON-LD

JSON-LD
JSON for Linked Data

JSON-LD signifie JavaScript Object Notation for Linked Data. C'est une méthode permettant d'encoder des données structurées (Linked Data, autre nom du "web des données") en utilisant le format JSON (un format de données textuelles dérivé de Javascript).

JSON-LD sert à lier des propriétés d'objets (format JSON) vers des concepts dans une ontologie (par exemple schema.org).

Si ça vous semble compliqué, c'est juste à cause des termes. Car en gros, ça sert à décrire les entités présentes dans la page, au format JSON, en respectant un "vocabulaire" (par exemple schema.org). Ainsi, les machines qui savent lire du JSON peuvent décrypter les données, chaque champ étant décrit précisément selon le contexte.

Voici un exemple de script qui sert à décrire qu'une page est un article d'actualité avec un certain titre, une image associée, une date de publication et de modification :

<script type="application/ld+json">
{
  "@context : "https://schema.org",
  "@type : "NewsArticle",
  "headline : "Guide des données structurées",
  "image : "https://example.com/photos/16x9/photo.jpg",
  "datePublished : "2020-02-05T08:00:00+08:00",
  "dateModified : "2020-02-05T09:20:00+08:00"
}
</script>

JSON-LD dispose de plusieurs avantages sur les 2 autres formats :

  • toutes les données sont regroupées au même endroit et surtout, séparées des balises HTML, ce qui facilite grandement sa génération et sa maintenance
  • le script JSON-LD peut être placé aussi bien dans le <head> que le <body> de la page HTML
  • il peut être inclus dès le chargement de la page ou bien généré par un code Javascript

RDFa

RDFa est une extension du standard HTML5 qui gère les données structurées par le biais d'attributs supplémentaires ajoutés aux balises HTML existantes sur la page.

Microdonnées (microdata)

Microdata est une spécification HTML communautaire ouverte utilisée pour imbriquer des données structurées dans le contenu HTML. Comme RDFa, elle utilise également des attributs de balises HTML à cette fin.

Les dossiers à lire ensuite...

Ceci n'est qu'une introduction sur les données structurées. Voici la suite :

D'ici peu, vous pourrez continuer avec les dossiers suivants :

  • Comment ajouter des données structurées sur son site ? Avec des CMS (WordPress, Prestashop...), des plugins, des outils ou "à la main"
  • Comment tester les données structurées ? Outils de Google, autres outils, plugins...

FAQ sur les données structurées

Qu'est-ce que les données structurées ?

Les données structurées sont des informations destinées aux machines (robots des moteurs de recherche) fournissant des détails sur les entités présentes dans un contenu (et leurs relations), présentes dans la page dans un format normalisé, basées sur un référentiel (schema.org par exemple).

Quels sont les formats de données structurées ?

Google supporte 3 formats : JSON-LD, RDFa et les microdonnées. Pour plusieurs raisons, le format JSON-LD est celui qui est recommandé (en savoir plus).

Qu'est-ce que le code JSON LD ?

JSON-LD est un code de type Javascript qui décrit les entités contenues dans la page, avec leurs propriétés, selon un référentiel (ce dernier étant schema.org pour ce qui concerne le SEO).

Quelle est la différence entre données structurées et non structurées ?

Les données non structurées n'indiquent pas clairement aux machines à quoi elles correspondent, alors que les données structurées respectent un référentiel précis.

Posez vos autres questions en commentaires ou ici par email.

Crédit : certaines icônes de l'image de couverture proviennent de flaticon.

Cet article vous a-t-il plu ?

Note : 4.0 (10 votes)
Cliquez pour voter !

Laisser un commentaire

Remarques :

  • Si vous souhaitez poser une question ou détailler un problème technique, il ne faut pas utiliser le formulaire ci-dessous qui est réservé aux avis. Posez votre question directement dans le forum Gmail de WebRankInfo. L'inscription est gratuite et immédiate.

  • En postant un avis, vous acceptez les CGU du site WebRankInfo. Si votre avis ne respecte pas ces règles, il pourra être refusé. Si vous indiquez votre adresse email, vous serez informé dès que votre avis aura été validé (ou refusé...) ; votre adresse ne sera pas utilisée pour vous envoyer des mailings et ne sera pas revendue ou cédée à des tiers.

2 commentaires

Antoine

Bonjour Olivier,
En tant qu'autodidacte, je me demandais s'il était possible d'avoir plusieurs @type dans les données structurées. Je m'occupe d'un moniteur d'escalade qui ne coche pas exactement la case du SportsActivityLocation ni de EntertainmentBusiness ... Merci pour vos lumières

Répondre
Olivier Duffez

Oui c'est possible, mais je doute que ce soit très utile/efficace.

Répondre