Tu as peaufiné ton article, tes Core Web Vitals sont au vert, et pourtant les résultats Google affichent une ligne de texte brute, sans image, sans date, sans étoiles. Le coupable ? Un balisage schema incomplet. On a vu des sites avec un contenu technique de qualité rester invisibles dans les rich results parce que le JSON-LD se limitait à un @type: Article sans auteur, sans éditeur, sans entité Organisation.

Un @type: Article sans auteur ni éditeur ne déclenche aucun rich result

Les moteurs de recherche ont de plus en plus besoin de comprendre les entités derrière un contenu. Un simple Article sans précision dit à Google « voici du texte », mais pas qui l’a écrit, pour quelle organisation, ni s’il s’agit d’un billet de blog, d’une actualité ou d’une analyse longue. Résultat : la page peut être indexée sans jamais déclencher de rich snippet, même quand le contenu est excellent.

L’impact n’est pas que cosmétique. Les pages avec un balisage structuré complet récupèrent plus souvent un affichage avec la date, le logo, l’auteur et parfois une image à côté du lien. Ces signaux visuels captent l’attention dans la SERP et améliorent le taux de clic, surtout sur les requêtes informationnelles où le lecteur compare plusieurs sources. Si ton concurrent affiche la photo de l’auteur et le logo du média là où ta page n’affiche qu’un titre brut, la différence de clics se joue sur l’apparence, pas sur le contenu.

En pratique, déployer un schéma complet signifie relier trois niveaux de données : le contenu (l’article), la personne qui l’a signé, et l’organisation qui le publie. Ces trois entités doivent être décrites avec des identifiants internes cohérents, en utilisant @id, pour que Google les recoupe. Sans cette liaison, Google traite chaque objet comme une île et risque de ne pas afficher les rich results enrichis.

Article, BlogPosting, NewsArticle : savoir choisir le bon type

!Three printed document samples arranged side by side: a glossy magazine article, a printed blog post, and a folded newsp

La confusion la plus fréquente qu’on rencontre, c’est un site qui utilise Article pour tout. Les trois types héritent de CreativeWork, mais ils activent des fonctionnalités différentes dans Google Actualités, les carrousels et les extraits enrichis. Choisir le bon, c’est donner à Google le signal qui correspond à ton contenu, pas un signal approximatif.

Article : le socle commun

Article est le type générique pour tout contenu rédactionnel : une analyse, un dossier, une tribune. Il peut apparaître dans des rich results simples avec l’auteur, la date de publication, l’image et l’éditeur, mais il ne débloque pas les fonctionnalités propres à Google Actualités. Si ton site n’est pas un site d’actualités et que tes articles ne sont pas des news, Article est le choix de base, à condition de le lier à Person et Organization.

BlogPosting pour les blogs et les articles d’opinion

BlogPosting est un sous-type d’Article qui signale un contenu typique d’un blog : format plus informel, opinion personnelle, tuto. Google l’utilise parfois pour afficher un fil d’Ariane enrichi ou l’avatar de l’auteur. Il hérite de toutes les propriétés d’Article. Si ton article est publié dans un blog d’entreprise ou un journal en ligne, BlogPosting est souvent le bon choix car il exprime mieux l’intention éditoriale que Article seul.

NewsArticle pour la visibilité dans Top Stories

NewsArticle est le seul type qui permet d’apparaître dans le carrousel Top Stories et les sections Actualités de la recherche. Il impose des contraintes supplémentaires : le contenu doit être une actualité récente, le site doit être validé dans le Publisher Center, et la page doit respecter les règles de contenu de Google Actualités. On voit régulièrement des sites essayer de forcer NewsArticle pour du contenu intemporel ; Google l’ignore et n’affiche rien de plus. Le bon usage : breaking news, annonces produit datées, comptes rendus d’événements. Pour le reste, BlogPosting ou Article suffisent.

Un petit tableau résume les différences :

TypeHéritageAffiche le logo éditeurÉligible Google ActualitésExemple de contenu
ArticleCreativeWorkOui, avec OrganizationNonAnalyse, dossier long
BlogPostingArticleOui, avec OrganizationNonTutoriel, billet d’humeur
NewsArticleArticleOui, avec OrganizationOui (après validation)Breaking news, live report

Lier l’auteur et l’organisation : la clé des rich results avancés

Fournir un auteur via une simple chaîne "author": "Julien Morel" n’établit aucun lien avec une entité reconnue par le Knowledge Graph. Pour que Google comprenne que l’auteur est une personne distincte, avec potentiellement sa propre fiche Knowledge Panel, il faut un objet Person avec un @id, référencé depuis l’article.

La balise Person pour l’auteur

Chaque auteur doit être déclaré comme un objet Person avec au minimum un nom et un @id. Si l’auteur possède une URL de profil (page auteur sur le site, Twitter, LinkedIn), ajoute sameAs pour renforcer l’alignement. Voici le bloc à inclure en dehors du graphe principal si l’auteur est partagé sur plusieurs pages, ou directement imbriqué :

{
  "@context": "https://schema.org",
  "@type": "Person",
  "@id": "https://www.tonsite.com/auteurs/julien-morel/#person",
  "name": "Julien Morel",
  "url": "https://www.tonsite.com/auteurs/julien-morel/"
}

Ensuite, dans l’article, tu références cette entité avec "author": {"@id": "https://www.tonsite.com/auteurs/julien-morel/#person"}.

L’entité Organization pour la marque

Même logique côté éditeur : une entité Organization décrite avec son nom, son logo, son URL et un @id. Google utilise cette information pour afficher le logo du site dans les rich results (quand l’article est frais) et pour associer le contenu à une marque. Le bloc minimum :

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://www.tonsite.com/#organization",
  "name": "Responsive Mind",
  "url": "https://www.tonsite.com/",
  "logo": "https://www.tonsite.com/logo.png"
}

Le bon lien entre les entités

L’article doit référencer à la fois l’auteur et l’organisation via leurs @id respectifs. Cela crée un graphe de données que Google peut recouper entre les pages. Si tu publies plusieurs articles, la cohérence des @id est cruciale : un même auteur doit toujours avoir le même identifiant pour que Google fusionne les signaux.

Implémenter le balisage dans ton code : exemples JSON-LD complets

!A computer monitor displaying lines of JSON-LD code, a small coffee cup beside it, a potted plant, on a white desk, soft

Trois gabarits adaptables tout de suite. Tous utilisent JSON-LD, placé dans une balise <script type="application/ld+json"> insérée dans le <head>.

Le gabarit minimal pour un article de blog

Pour un billet de type BlogPosting avec auteur et organisation liés :

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "BlogPosting",
      "@id": "https://www.tonsite.com/mon-article/#article",
      "headline": "Titre de l'article",
      "description": "Résumé visible dans les SERP",
      "datePublished": "2026-05-05",
      "dateModified": "2026-05-05",
      "image": "https://www.tonsite.com/images/mon-article.webp",
      "author": { "@id": "https://www.tonsite.com/auteurs/julien-morel/#person" },
      "publisher": { "@id": "https://www.tonsite.com/#organization" },
      "mainEntityOfPage": { "@id": "https://www.tonsite.com/mon-article/" }
    },
    {
      "@type": "Person",
      "@id": "https://www.tonsite.com/auteurs/julien-morel/#person",
      "name": "Julien Morel",
      "url": "https://www.tonsite.com/auteurs/julien-morel/"
    },
    {
      "@type": "Organization",
      "@id": "https://www.tonsite.com/#organization",
      "name": "Responsive Mind",
      "url": "https://www.tonsite.com/",
      "logo": "https://www.tonsite.com/logo.png"
    }
  ]
}

L’utilisation de @graph permet de déclarer plusieurs entités dans un seul bloc, sans les répéter sur chaque page. C’est la méthode la plus maintenable quand le site compte plusieurs centaines d’articles. Si ton site est plus petit, tu peux imbriquer directement l’auteur et l’organisation sans @graph.

Ajouter les métadonnées de l’image

Google peut afficher une miniature à côté du résultat de recherche si l’image remplit plusieurs conditions : format carré ou largeur supérieure à 1200px, représentative du contenu, et référencée dans le balisage via un objet ImageObject. Voici comment compléter la propriété image :

"image": {
  "@type": "ImageObject",
  "url": "https://www.tonsite.com/images/mon-article.webp",
  "width": 1200,
  "height": 675,
  "caption": "Description de l'image visible à l'écran"
}

Ce détail est souvent négligé. On a déjà vu des articles parfaitement balisés se voir refuser l’image dans les rich results parce que l’alt text ou les dimensions n’étaient pas renseignés.

Lier l’article à l’auteur et à l’organisation sans erreur d’ID

Les @id de l’auteur et de l’organisation doivent être strictement identiques sur toutes les pages. Une simple différence de slash final suffit à rompre le lien : si la page auteur existe en /auteurs/julien-morel/, l’identifiant comporte ce slash. Un fragment (ex: #person) évite la confusion avec l’URL canonique. Vérifie ensuite avec l’outil de validation que la relation est bien interprétée comme une référence.

Les pièges à éviter pour ne pas gaspiller ton balisage

Un JSON-LD syntaxiquement correct peut être ignoré si la page envoie des signaux contradictoires aux algorithmes. Voici les quatre points qui reviennent le plus dans les audits.

Information masquée : le signal spam

Toute propriété du schéma doit correspondre à une information effectivement visible sur la page au moment du rendu. Si tu ajoutes un author différent du nom affiché dans la byline, ou une date de publication qui ne correspond pas à celle visible, Google peut classer la page comme trompeuse et abandonner tout le balisage. Le contenu masqué via CSS ou JavaScript dans le DOM mais invisible à l’utilisateur est aussi un motif de rejet.

Duplication avec la balise canonical

Quand ta page porte un balisage mainEntityOfPage qui pointe vers une URL distincte de la balise canonical, ou que tu utilises Article sur une page dont la canonical renvoie vers une autre, le système d’indexation peut ignorer le balisage. On l’a constaté en analysant pourquoi des articles bien structurés restaient sans rich result : le problème venait d’un canonical mal configuré. Le @id de l’article et l’URL canonique doivent pointer vers la même ressource.

Oublier la date de modification

Sur un article de fond qui évolue, dateModified doit accompagner datePublished. Google affiche alors la date de mise à jour à côté du titre, signal de fraîcheur qui pèse sur le taux de clic. Sans elle, la page reste figée à sa date de publication initiale, même après une refonte.

Génération automatisée non vérifiée

Les plugins CMS qui génèrent automatiquement le balisage schema sont pratiques, mais ils peuvent produire des @id incohérents, oublier l’entité Person ou ajouter des propriétés invalides. Si tu confies ta structuration de données à un outil sans relire sa sortie, tu t’exposes à un balisage partiel qui ne rapporte rien. La prudence est la même qu’avec le code généré par IA : utile, à condition de le passer en revue.

Tester et valider ton schéma avant mise en production

!A magnifying glass over a printed page of schema code, a smartphone beside it showing a green checkmark, a pen and noteb

Trois étapes après déploiement :

  1. Rich Results Test : aucune erreur de syntaxe, et le type détecté correspond à celui défini.
  2. Search Console : l’onglet « Données structurées » remonte les warnings (date manquante, image absente).
  3. SERP réelle : quelques jours plus tard, une requête site:tonsite.com "titre" montre si l’image, la date et l’auteur s’affichent.

Sur les gros sites, croiser avec un audit du crawl budget évite d’avoir un JSON-LD parfait sur des pages que Googlebot ne descend jamais voir.

Questions fréquentes

Comment fonctionne le balisage schema pour un article ?

Le balisage utilise le vocabulaire Schema.org dans un bloc JSON-LD. Il décrit l’article (type Article, BlogPosting ou NewsArticle), son auteur, l’organisation qui le publie, et les métadonnées comme l’image ou la date. Google lit ces données pour enrichir l’affichage du résultat.

Quels sont les bienfaits de ce balisage ?

Au-delà de l’aspect visuel, un balisage complet améliore la compréhension par les moteurs du lien entre l’auteur, le contenu et l’organisation. Cela peut influencer l’éligibilité aux rich results, aux carrousels d’actualités et à l’affichage du logo éditeur. L’effet indirect est une augmentation du taux de clic sans toucher au positionnement textuel.

Quand faut-il utiliser Article plutôt que BlogPosting ?

Quand ton contenu n’est pas un billet de blog ni une actualité, mais un dossier, une analyse ou une tribune. Article est le type générique ; BlogPosting signale un format de blog, NewsArticle une news éligible à Google Actualités. Le choix dépend de la nature du contenu et de la stratégie de visibilité souhaitée.

Quel est le meilleur schéma pour une page article ?

Il n’y a pas un meilleur schéma universel. Pour un site d’actualités, NewsArticle avec Organization et Person est indispensable. Pour un blog d’entreprise, BlogPosting avec les mêmes entités liées donne les meilleurs résultats. L’important est la complétude des liens entre auteur, éditeur et contenu.

Quiz personnalisé

Votre recommandation sur schema markup article

Quelques questions rapides pour adapter la recommandation à votre cas.

Q1 Votre situation sur schema markup article ?
Q2 Votre priorité ?
Q3 Votre horizon ?