Intermédiaire 5 min 1 min de lecture Résultats enrichis

Balisage Contenu payant (paywall) avec CreativeWork

Signalez votre contenu derrière un paywall avec CreativeWork, isAccessibleForFree et hasPart pour éviter d'être confondu avec du cloaking.

Par Nicolas Dupont Mis à jour le 23 juin 2026

Le balisage du contenu payant utilise la méthode schema.org en JSON-LD pour signaler à Google qu’une partie de votre page est soumise à un paywall, à l’aide des propriétés CreativeWork. Son rôle est essentiel : il aide Google à distinguer un paywall légitime d’une technique de dissimulation (cloaking), qui enfreint les règles concernant le spam. Sans ce signal, un contenu affiché différemment aux robots et aux internautes pourrait être perçu comme trompeur.

Pour le SEO d’un éditeur ou d’un média par abonnement, ce balisage permet de faire indexer un contenu réservé tout en restant conforme. Il ne concerne que le contenu destiné à être exploré et indexé : si vous ne voulez pas indexer votre contenu payant, ce balisage ne vous est pas utile.

C’est le balisage le plus mal compris que je rencontre : sans lui, un contenu réservé qui s’affiche différemment aux robots peut être assimilé à du cloaking, ce qui est sanctionnable. Le déclarer correctement, c’est se mettre en règle tout en restant indexable. Mon conseil aux médias par abonnement : isolez précisément les sections payantes dans le balisage, ne masquez pas plus que ce qui est réellement verrouillé.

— Nicolas Dupont

Les propriétés du paywall

Le balisage repose sur quelques propriétés clés. La propriété isAccessibleForFree, au niveau de l’article, indique si le contenu est libre ou payant. La structure hasPart précise ensuite quelle section précise est concernée, via un sélecteur CSS.

Le tableau ci-dessous récapitule les propriétés à connaître, leur type et leur rôle dans la déclaration d’un contenu payant.

Propriété Type Rôle

isAccessibleForFree

Boolean

Indique si l’article est libre ; mettez false pour un contenu payant (obligatoire)

hasPart.@type

Text

À définir sur WebPageElement (recommandé)

hasPart.isAccessibleForFree

Boolean

Indique si la section est payante ; mettez false dans ce cas (recommandé)

hasPart.cssSelector

CssSelectorType

Sélecteur de classe pointant vers la section payante (recommandé)

Exemple JSON-LD (NewsArticle paywall)
{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "headline": "Titre de l'article",
  "image": "https://example.org/thumbnail1.jpg",
  "datePublished": "2025-02-05T08:00:00+08:00",
  "author": {
    "@type": "Person",
    "name": "Jean Dupont"
  },
  "isAccessibleForFree": false,
  "hasPart": {
    "@type": "WebPageElement",
    "isAccessibleForFree": false,
    "cssSelector": ".paywall"
  }
}

Baliser une ou plusieurs sections

La logique est simple. Vous ajoutez d’abord un nom de classe autour de chaque section payante dans votre code HTML, par exemple une classe paywall. Vous ajoutez ensuite les données structurées de l’article (NewsArticle ou un autre type CreativeWork), en vous appuyant au besoin sur le balisage Article, puis vous y reliez le bloc hasPart. L’attribut cssSelector reprend exactement le nom de classe défini dans le HTML.

Si plusieurs sections d’une même page sont payantes, déclarez-les sous forme de tableau dans hasPart, avec un objet WebPageElement par section et son propre sélecteur (par exemple .section1 et .section2). N’utilisez que des sélecteurs de classe pour cssSelector.

Types acceptés et IA générative

Ce balisage est accepté pour le type CreativeWork ou l’un de ses types plus spécifiques : Article, NewsArticle, Blog, Comment, Course, HowTo, Message, Review ou WebPage. Vous pouvez combiner plusieurs types schema.org, par exemple Article et LearningResource.

Pensez aussi à la cohérence sur toutes les versions de votre page, y compris AMP : la règle d’accès pour les robots doit être identique entre AMP et version standard, sinon des erreurs de correspondance peuvent apparaître dans la Search Console. Avant publication, prenez le temps de tester vos données structurées. Enfin, les Aperçus IA et le Mode IA respectent les commandes d’aperçu de la recherche pour le contenu présenté.

N'imbriquez pas les sections de contenu

Deux règles évitent les rejets. N’imbriquez pas de sections de contenu les unes dans les autres, et n’utilisez que des sélecteurs de classe (.class) pour la propriété cssSelector. Si vous ne voulez pas que le contenu payant soit accessible au navigateur à la diffusion, choisissez une implémentation de paywall qui ne le transmet pas au navigateur, plutôt qu’une simple solution JavaScript côté client.

Besoin d'aide pour mettre en pratique ? Nos experts SEO vous accompagnent.
Parler à un expert

À faire

  • définir isAccessibleForFree sur false pour le contenu payant
  • faire correspondre cssSelector au nom de classe HTML
  • déclarer plusieurs sections en tableau
  • aligner les règles AMP et standard

À éviter

  • imbriquer des sections de contenu
  • utiliser un sélecteur autre qu’une classe
  • baliser un contenu que vous ne voulez pas indexer
  • laisser des règles d’accès incohérentes entre versions

Points clés à retenir

  • Ce balisage distingue un paywall légitime du cloaking interdit.
  • Définissez isAccessibleForFree sur false pour le contenu payant.
  • Faites pointer cssSelector vers le nom de classe de la section.
  • Déclarez plusieurs sections payantes sous forme de tableau.
  • Utilisez uniquement des sélecteurs de classe et n'imbriquez pas les sections.

L’essentiel du balisage Contenu payant.

Quiz : testez vos connaissances

  1. À quoi sert le balisage du contenu payant ?

    • À signaler à Google qu'une section est derrière un paywall, pour éviter la confusion avec du cloaking
    • À empêcher Google d'indexer la page entière
    • À afficher le prix de l'abonnement dans les résultats

    Ce balisage signale à Google qu’une section est derrière un paywall, ce qui évite que la page soit confondue avec du cloaking, une pratique contraire aux règles.

  2. Quelle valeur donner à isAccessibleForFree pour un contenu payant ?

    • La valeur true
    • La valeur paywall
    • La valeur false

    La propriété isAccessibleForFree doit être réglée sur false pour le contenu payant, au niveau de l’article.

  3. Quel type de sélecteur faut-il utiliser pour désigner une section payante ?

    • Un sélecteur de balise comme article
    • Un sélecteur d'identifiant (#id) unique
    • Un sélecteur de classe (.class) correspondant au nom de classe HTML

    N’utilisez qu’un sélecteur de classe (.class) qui correspond au nom de classe ajouté autour de la section payante dans votre code HTML.

À propos de l'auteur

Nicolas Dupont

Nicolas Dupont

Expert SEO Sénior & Fondateur

Il a fait grimper des sites en haut de Google et accompagné plus de 120 entreprises avant de fonder Les Webineurs. Sur votre projet SEO, vous échangez directement avec Nicolas, pas un commercial ni un junior. Un expert dédié et du trafic organique qui dure.

Voir le profil

Besoin d'un accompagnement SEO ?

Vous diffusez du contenu par abonnement et voulez le faire indexer en toute conformité ?

Faire le point avec un expert SEO