Données structurées pour le contenu accessible par abonnement ou soumis à un paywall (CreativeWork)

Cette page décrit comment utiliser la méthode schema.org JSON-LD pour signaler la présence de contenu soumis à un paywall sur votre site, à l'aide de propriétés CreativeWork. Ces données structurées aident Google à différencier le contenu soumis à un paywall des techniques de dissimulation (cloaking), qui ne respectent pas les Règles concernant le spam. En savoir plus sur le contenu accessible par abonnement ou soumis à un paywall.

Exemple

Voici un exemple de données structurées NewsArticle dont le contenu est soumis à un paywall.

<html>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "Article headline",
      "image": "https://example.org/thumbnail1.jpg",
      "datePublished": "2025-02-05T08:00:00+08:00",
      "dateModified": "2025-02-05T09:20:00+08:00",
      "author": {
        "@type": "Person",
        "name": "John Doe",
        "url": "https://example.com/profile/johndoe123"
      },
      "description": "A most wonderful article",
      "isAccessibleForFree": false,
      "hasPart":
        {
        "@type": "WebPageElement",
        "isAccessibleForFree": false,
        "cssSelector" : ".paywall"
        }
    }
    </script>
  </head>
  <body>
    <div class="non-paywall">
      Non-Paywalled Content
    </div>
    <div class="paywall">
      Paywalled Content
    </div>
  </body>
</html>

Consignes

Vous devez respecter les consignes générales relatives aux données structurées et les consignes techniques pour que votre page puisse s'afficher dans les résultats de recherche. En outre, les consignes suivantes s'appliquent au contenu soumis à un paywall.

  • JSON-LD et le format de microdonnées constituent les méthodes acceptées pour la rédaction de données structurées pour le contenu soumis à un paywall.
  • Veuillez ne pas imbriquer de sections de contenu.
  • N'utilisez que des sélecteurs .class pour la propriété cssSelector.

Ajouter un balisage à du contenu soumis à un paywall

Si vous proposez un accès par abonnement au contenu de votre site Web ou si les utilisateurs doivent s'inscrire pour accéder à tout contenu que vous souhaitez indexer, suivez ces étapes. L'exemple suivant s'applique aux données structurées NewsArticle. Assurez-vous de suivre cette procédure pour toutes les versions de votre page (notamment les versions AMP et standard).

  1. Ajoutez un nom de classe autour de chaque section de la page soumise à un paywall. Exemple :
    <body>
    <p>This content is outside a paywall and is visible to all.</p>
    <div class="paywall">This content is inside a paywall, and requires a subscription or registration.</div>
    </body>
  2. Ajoutez des données structurées NewsArticle.
  3. Ajoutez les données structurées JSON-LD mises en évidence à vos données structurées NewsArticle.
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://example.org/article"
      },
      (...)
      "isAccessibleForFree": "False",
      "hasPart": {
        "@type": "WebPageElement",
        "isAccessibleForFree": "False",
        "cssSelector": ".paywall"
      }
    }

Plusieurs sections soumises à un paywall

Si plusieurs sections d'une même page sont soumises à un paywall, ajoutez les noms de classe sous forme de tableau (ou "array").

Voici un exemple de plusieurs sections soumises à un paywall sur une même page :

<body>
<div class="section1">This content is inside a paywall, and requires a subscription or registration.</div>
<p>This content is outside a paywall and is visible to all.</p>
<div class="section2">This is another section that's inside a paywall, and requires a subscription or registration.</div>
</body>

Voici un exemple de données structurées NewsArticle dont plusieurs sections sont soumises à un paywall.

{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.org/article"
  },
  (...)
  "isAccessibleForFree": "False",
  "hasPart": [
    {
      "@type": "WebPageElement",
      "isAccessibleForFree": "False",
      "cssSelector": ".section1"
    }, {
      "@type": "WebPageElement",
      "isAccessibleForFree": "False",
      "cssSelector": ".section2"
    }
  ]
}

Types acceptés

Ce balisage est accepté pour le type CreativeWork ou l'un des types plus spécifiques suivants de la propriété CreativeWork :

Plusieurs types schema.org peuvent être utilisés, par exemple :

"@type": ["Article", "LearningResource"]

Remarques pour les pages AMP

Voici une liste de points à retenir si vous utilisez des pages AMP :

  • Si vous disposez d'une page AMP avec du contenu soumis à un paywall, utilisez le composant amp-subscriptions, le cas échéant.
  • Assurez-vous que votre point de terminaison d'autorisation permet aux robots appropriés de Google et d'autres entreprises d'accéder au contenu. Les méthodes varient en fonction de l'éditeur.
  • Assurez-vous que votre règle d'accès pour les robots est la même pour les pages AMP et standards. Dans le cas contraire, des erreurs de type "Le contenu ne correspond pas" peuvent s'afficher dans la Search Console.

Vérifiez que Google peut explorer et indexer vos pages

Si vous souhaitez que Google explore et indexe la totalité de votre contenu (y compris les sections soumises à un paywall), vérifiez que votre page est accessible par Googlebot (et Googlebot-News, le cas échéant).

Utilisez l'outil d'inspection d'URL pour tester la manière dont Google explore et affiche une URL sur votre site.

Contrôler les informations qui apparaissent dans les résultats de recherche

Pour empêcher Google d'afficher un lien en cache pour votre page, utilisez la balise meta noarchive pour les robots.

Pour exclure certaines sections de votre contenu des extraits de résultats de recherche, utilisez l'attribut HTML data-nosnippet. Pour restreindre le nombre de caractères d'un extrait de résultat de recherche, utilisez la balise meta max-snippet pour les robots.

Dépannage

Si vous ne parvenez pas à mettre en œuvre ou à déboguer des données structurées, voici quelques ressources susceptibles de vous aider.