Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 53

JSON-LD & Schema.org : Optimisez vos Rich Snippets

Recommended resources

Bonjour ! Dans la leçon précédente, nous avons vu comment utiliser l'API Metadata de Next.js pour définir les balises essentielles (title, description, Open Graph) de manière statique et dynamique. Vous savez maintenant comment communiquer les informations de base de vos pages aux moteurs de recherche et aux réseaux sociaux.

Aujourd'hui, nous allons approfondir cette communication en passant d'une simple description à un véritable dialogue structuré avec les moteurs de recherche. L'objectif de cette leçon est d'apprendre à structurer les données avec JSON-LD (Schema.org) pour générer des rich snippets. Ce sont ces résultats de recherche améliorés (avec des étoiles d'avis, des prix, des FAQ, etc.) qui captent l'attention et peuvent considérablement augmenter votre taux de clics.

1. Qu'est-ce qu'une donnée structurée et pourquoi est-ce crucial ?

Imaginez que vous donniez un livre à un robot. Il peut scanner le texte, mais il ne sait pas ce qui est un titre, un auteur ou un résumé. Les données structurées agissent comme une table des matières sémantique pour ce robot. Vous lui dites explicitement : "Ceci est un article, voici l'auteur, voici la date de publication".

Ce "robot", c'est Google. En lui fournissant ces informations dans un format standardisé, vous l'aidez à comprendre votre contenu sans ambiguïté. En retour, Google peut mettre en valeur votre page dans ses résultats de recherche.

Dopez le SEO de votre site Webflow grâce aux Schema.org !

Pour commencer, regardez cet extrait de la vidéo "Dopez le SEO de votre site Webflow grâce aux Schema.org !" de la chaîne Digidop. Il explique parfaitement ce que sont les données structurées et, surtout, leur impact mesurable sur la performance d'un site.

Regardez la première partie de la vidéo (00:00 à 01:29). Notez les exemples de cas concrets (Rotten Tomatoes, Nestlé) qui montrent des augmentations de taux de clics allant jusqu'à 82%.

Le résultat de cette structuration, ce sont les rich snippets (ou résultats enrichis). Ils augmentent la surface de votre site dans les résultats de recherche et fournissent des informations utiles qui incitent l'utilisateur à cliquer.

Structured Data Tags or Rich Snippet
Voici à quoi ressemblent les rich snippets dans les résultats de recherche Google. Les étoiles et le nombre d'avis sont générés grâce à des données structurées et rendent ces liens beaucoup plus attractifs que les résultats standards.

2. Le vocabulaire (Schema.org) et la syntaxe (JSON-LD)

Pour structurer ces données, nous utilisons deux éléments clés :

  • Schema.org : C'est un projet collaboratif (initié par Google, Microsoft, Yahoo et Yandex) qui fournit un vocabulaire de types et de propriétés. C'est un dictionnaire qui définit ce qu'est un Article, un Product, une Organization, et quelles informations on peut leur associer (name, author, price, etc.).
  • JSON-LD (JavaScript Object Notation for Linked Data) : C'est le format recommandé par Google pour écrire ces données structurées. Comme votre expérience en développement web vous le suggère, il s'agit simplement d'un objet JSON, que l'on insère dans une balise <script> dans le code HTML de la page.
JSON-LD Schema.org Implementation for Aggregate Rating
Ce fragment de code montre un script JSON-LD pour une note agrégée. On y voit la structure de base : `@context` qui pointe vers le dictionnaire Schema.org, `@type` qui spécifie le type d'objet, et les paires clé-valeur qui décrivent ses propriétés.

Il existe des centaines de types de schémas. Heureusement, une poignée d'entre eux couvre la majorité des cas d'usage.

Schema Markup : indispensable en 2026 ? | Blog ONDEV

L'article de blog "Schema Markup : indispensable en 2026 ?" d'ONDEV est une excellente ressource qui liste les types de schémas les plus importants et fournit des exemples de code JSON-LD clairs pour chacun.

Lisez la section "Les 5 types de schema markup indispensables pour votre site". Identifiez les schémas Organization, LocalBusiness, Article, Product, et FAQPage et examinez les exemples de code JSON-LD pour comprendre quelles informations ils permettent de structurer.


3. Implémentation pratique dans Next.js

Grâce à votre connaissance de la gestion des métadonnées acquise dans la leçon précédente, l'intégration de JSON-LD dans Next.js sera simple. Il y a deux méthodes principales, toutes deux s'exécutant côté serveur, ce qui est parfait pour le SEO.

Méthode 1 : Intégration via generateMetadata (Idéal pour les pages dynamiques)

C'est la méthode la plus élégante et la plus cohérente avec l'écosystème Next.js. Dans la leçon précédente, vous avez utilisé generateMetadata pour retourner un objet { title, description }. Cette fonction peut aussi retourner une propriété other pour y injecter notre script JSON-LD.

C'est parfait pour une page d'article de blog ou une fiche produit, où le schéma dépend des données de la page.

Optimiser le SEO de votre site Next.js en 2025 : Le Guide Ultime

L'article "Optimiser le SEO de votre site Next.js en 2025" de Lodgic Dev montre précisément comment utiliser cette méthode.

Concentrez-vous sur la section "Étape 4 : Données Structurées (Schema.org)". Analysez l'exemple de code structuredData et la manière dont il est intégré dans generateMetadata via la propriété other.

Voici un exemple complet pour une page d'article, qui s'appuie sur ce que vous avez appris :

// app/blog/[slug]/page.js

// Supposons que vous avez une fonction pour récupérer les données de l'article
async function getArticle(slug) {
  // Appel à votre backend Spring Boot pour récupérer l'article
  // const res = await fetch(`https://votre-api.com/articles/${slug}`);
  // return res.json();
  return { 
    title: "Mon Super Article",
    summary: "Un résumé de mon article.",
    imageUrl: "https://votre-site.com/image.jpg",
    author: "Jean Dupont",
    publishedAt: "2023-10-27T10:00:00Z",
    updatedAt: "2023-10-27T12:00:00Z",
    slug: "mon-super-article"
  };
}

export async function generateMetadata({ params }) {
  const article = await getArticle(params.slug);

  const jsonLd = {
    '@context': 'https://schema.org',
    '@type': 'Article',
    headline: article.title,
    description: article.summary,
    image: article.imageUrl,
    author: {
      '@type': 'Person',
      name: article.author,
    },
    publisher: {
      '@type': 'Organization',
      name: 'Nom de votre entreprise',
      logo: {
        '@type': 'ImageObject',
        url: 'https://votre-site.com/logo.png',
      },
    },
    datePublished: article.publishedAt,
    dateModified: article.updatedAt,
  };

  return {
    title: article.title,
    description: article.summary,
    // C'est ici que la magie opère !
    other: {
      'application/ld+json': JSON.stringify(jsonLd),
    },
  };
}

export default async function ArticlePage({ params }) {
  const article = await getArticle(params.slug);
  return (
    <article>
      <h1>{article.title}</h1>
      {/* ... contenu de l'article ... */}
    </article>
  );
}

Méthode 2 : Intégration via un composant et une balise <script> (Idéal pour les schémas réutilisables)

Pour des schémas qui ne changent pas d'une page à l'autre (comme Organization ou LocalBusiness), ou si vous préférez séparer la logique, vous pouvez créer un composant React qui injecte la balise <script>.

Schema Markup : indispensable en 2026 ? | Blog ONDEV

L'article d'ONDEV que vous avez consulté précédemment propose des exemples parfaits pour cette approche.

Lisez maintenant la section "Implémenter le schema markup avec Next.js : la méthode ONDEV". Observez comment le JSON-LD est inséré via <script dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }} />. Portez une attention particulière à l'exemple du composant réutilisable LocalBusinessSchema.

Voici comment vous pourriez l'utiliser pour le schéma Organization dans votre layout principal, afin qu'il soit présent sur toutes les pages :

// components/OrganizationSchema.js

export function OrganizationSchema() {
  const jsonLd = {
    '@context': 'https://schema.org',
    '@type': 'Organization',
    name: 'Nom de votre entreprise',
    url: 'https://votre-site.com',
    logo: 'https://votre-site.com/logo.png',
    sameAs": [
      "https://www.linkedin.com/company/votre-compagnie"
    ]
  };

  return (
    <script
      type="application/ld+json"
      dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
    />
  );
}

// app/layout.js

import { OrganizationSchema } from '../components/OrganizationSchema';

export default function RootLayout({ children }) {
  return (
    <html lang="fr">
      <head>
        <OrganizationSchema />
      </head>
      <body>{children}</body>
    </html>
  );
}

4. Générer et Valider vos Données Structurées

Écrire le JSON à la main peut être source d'erreurs. Heureusement, des outils existent pour vous aider. De plus, il est impératif de tester votre implémentation avant et après le déploiement.

Dopez le SEO de votre site Webflow grâce aux Schema.org !

La vidéo de Digidop montre deux étapes clés : utiliser un outil pour générer le code et, surtout, le valider avec l'outil officiel de Google.

Regardez de 02:04 à 04:04. D'abord, observez comment un outil comme Merkel peut générer le JSON-LD en remplissant un simple formulaire. Ensuite, et c'est le plus important, voyez comment l'auteur copie ce code dans l'Outil de test des résultats enrichis de Google (Rich Results Test) pour s'assurer qu'il est valide et sans erreur.

Les étapes à suivre sont donc :

  1. Générer (optionnel) : Utilisez un générateur comme Schema Markup Generator (Merkle) pour créer un modèle de base pour votre JSON-LD.
  2. Implémenter : Intégrez ce JSON-LD dans votre application Next.js avec l'une des deux méthodes vues ci-dessus, en le rendant dynamique avec les données de votre application.
  3. Valider : Copiez le code HTML final de votre page (via "Afficher le code source de la page" dans votre navigateur en développement local) et collez-le dans le Rich Results Test de Google. Cet outil vous dira si Google comprend vos données et si votre page est éligible aux résultats enrichis.

Pour éviter les erreurs courantes, référez-vous au tableau "Les 7 erreurs qui invalident vos données structurées" dans l'article d'ONDEV (LINK, section 3). La plus fréquente est une simple virgule manquante dans le JSON !


Conclusion

Félicitations ! Vous êtes passé de la simple description de vos pages à une communication sémantique riche avec les moteurs de recherche. C'est une compétence de SEO technique avancée et très recherchée, qui a un impact direct sur la visibilité et la performance d'un site.

Points clés à retenir :

  • Schema.org est le dictionnaire, JSON-LD est la syntaxe pour décrire votre contenu à Google.
  • L'objectif est de générer des rich snippets pour augmenter la visibilité et le taux de clics.
  • Dans Next.js, vous pouvez implémenter le JSON-LD de manière élégante via la propriété other de generateMetadata pour les pages dynamiques.
  • Pour les schémas réutilisables, un composant dédié injectant une balise <script> est une solution propre.
  • La validation est non négociable : utilisez systématiquement l'outil Rich Results Test de Google.

Prochaine étape :

Vous savez maintenant comment optimiser le contenu de votre page pour les robots. Mais Google se soucie aussi (et de plus en plus) de l'expérience des utilisateurs humains. Dans la prochaine leçon, nous apprendrons à mesurer et interpréter les Core Web Vitals (LCP, FID, CLS) avec les outils Google. Ces indicateurs de performance sont un facteur de classement majeur, et nous verrons comment les diagnostiquer pour garantir une expérience utilisateur rapide et fluide.