Image Principale

Intégrer des données structurées à son contenu


Afin d'afficher des meilleurs résultats de recherche, personnalisés, il est important de structurer ses données avec des balises que Google et les autres moteurs de recherches peuvent comprendre. Cet article détaillera leur implémentation.

Il y'a deux manières de structurer ses données. La première consiste à ajouter des tags à ses balises HTML et la seconde consiste à ajouter un petit script JS qui récapitule les informations.

Dans cet article, je détaillerai l'installation de balises schema.org par l'intermédiaire de JS, et plus particulièrement de JSON_LD. Pour vous expliquer ce que cela veut dire, je vais citer la documentation de Google:

JSON-LD est le format de marquage le plus récent et le plus simple à utilier: Il permet d'insérer des données JSON dans un n'importe où dans son HTML. Comme les données n'ont pas besoin de concorder avec ce qui est visible à l'écran, il est bien plus simple d'indiquer d'autres données, comme un pays ou une adresse postale, ou la date d'un concert. En plus, Google est capable de lire des données JSON-LD même quand elle est dynamiquement injectée dans le contenu des pages, avec du Javascript ou des widgets intégrés.

Nous allons donc détailler ici l'installation que j'ai fait sur ce site afin de donner des informations sur mes articles.

Et enfait, c'est tout simple, j'ai juste ajouté le code suivant à la fin de mes articles, et comme je travaille avec Laravel, je n'ai qu'à récupérer les valeurs de mes articles avec les balises {{ }}:

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "Article",
    "headline": "{{ $article->description }}",
    "name": "{{ $article->title }}",
    "description": "{{ $article->description }}",
    "image": "{{ $article->main_image }}",
    "url": "{{ $article->url }}",
    "dateCreated": "{{ $article->created_at->toIso8601String() }}",
    "dateModified": "{{ $article->updated_at->toIso8601String() }}",
    "datePublished": "{{ $article->created_at->toIso8601String() }}",
    "author": {
        "name": "{{ $article->user->name }}",
        "image": "{{ url('img','avatar.jpg') }}"
    }
}

J'ajouterai des informations sur cet article à propos de comment Google réagit face à ces mises à jour.

EDIT 1: 3 jours plus tard, je commence à avoir les premiers résultats sur la page d'administration de Google Webmaster tools. Onglet "Apparence dans les résultats de recherche", puis données structurées. Et Google me confirme qu'il reconnaît bien mes balises!