Contenuti in abbonamento e protetti da paywall

In questa pagina viene spiegato come utilizzare il metodo JSON-LD di schema.org per indicare i contenuti protetti da paywall sul tuo sito con le proprietà CreativeWork. Questi dati strutturati consentono a Google di distinguere i contenuti protetti da paywall dal cloaking, che costituisce una violazione delle nostre linee guida. Scopri di più sui contenuti in abbonamento e protetti da paywall.

Esempio

Ecco un esempio di dati strutturati NewsArticle con contenuti protetti da paywall.

<html>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://example.org/article"
      },
      "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"
      },
      "publisher": {
         "name": "The Exemplary Times",
         "@type": "Organization",
         "logo": {
            "@type": "ImageObject",
            "url": "https://example.org/logo.jpg"
         }
      },
      "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>

Linee guida

Devi rispettare le linee guida generali sui dati strutturati e le linee guida tecniche affinché la tua pagina sia idonea a essere visualizzata nei risultati di ricerca. Inoltre, ai contenuti protetti da paywall si applicano le linee guida che seguono:

  • I formati JSON-LD e Microdati sono metodi accettati per specificare dati strutturati per i contenuti protetti da paywall.
  • Non nidificare le sezioni di contenuti.
  • Utilizza solo selettori .class per la proprietà cssSelector.

Aggiungere il markup ai contenuti protetti da paywall

Se offri un qualsiasi accesso in abbonamento ai contenuti del tuo sito web o se gli utenti devono registrarsi per accedere ai contenuti che vuoi che vengano indicizzati, svolgi la procedura che segue. Il seguente esempio si applica ai dati strutturati NewsArticle. Assicurati di seguire questi passaggi per tutte le versioni della pagina (incluse le versioni AMP e non AMP).

  1. Aggiungi il nome di una classe a ogni sezione di contenuti protetti da paywall della pagina. Ad esempio:
    <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. Aggiungi dati strutturati NewsArticle.
  3. Aggiungi i dati strutturati JSON-LD evidenziati ai tuoi dati strutturati NewsArticle.
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://example.org/article"
      },
      (...)
      "isAccessibleForFree": "False",
      "hasPart": {
        "@type": "WebPageElement",
        "isAccessibleForFree": "False",
        "cssSelector": ".paywall"
      }
    }

Più sezioni di contenuti protetti da paywall

Se in una pagina ci sono diverse sezioni di contenuti protetti da paywall, aggiungi i nomi delle classi sotto forma di array.

Ecco un esempio di sezioni di contenuti protetti da paywall in una pagina:

<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>

Ecco un esempio di dati strutturati NewsArticle con diverse sezioni di contenuti protetti da 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"
    }
  ]
}

Tipi supportati

Questo markup è supportato per il tipo CreativeWork o per uno dei seguenti tipi più specifici di CreativeWork:

È possibile utilizzare più tipi di schema.org, come ad esempio:

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

Considerazioni relative alle pagine AMP

Ecco un elenco di considerazioni da tenere presente se utilizzi le pagine AMP:

  • Se hai una pagina AMP con contenuti protetti da paywall, utilizza amp-subscriptions ove appropriato.
  • Assicurati che il tuo endpoint di autorizzazione conceda l'accesso ai contenuti ai bot appropriati di Google e altri crawler. Questa impostazione è diversa per ciascun publisher.
  • Assicurati che i criteri di accesso dei bot siano gli stessi sia per le pagine AMP che non AMP. In caso contrario, ciò potrebbe causare la visualizzazione di errori relativi a contenuti non corrispondenti in Search Console.

Assicurarsi che Google riesca a eseguire la scansione e l'indicizzazione delle pagine

Se vuoi che Google esegua la scansione e l'indicizzazione dei tuoi contenuti (incluse le sezioni di contenuti protetti da paywall), assicurati che Googlebot e Googlebot-News (se pertinente) riescano ad accedere alla pagina.

Utilizza lo strumento Controllo URL per verificare in che modo Google esegue la scansione e il rendering di un URL sul tuo sito.

Controllare quali informazioni vengono mostrate nei risultati di ricerca

Per impedire a Google di mostrare il link Copia cache per la pagina, usa il meta tag robots noarchive.

Per impedire che determinate sezioni dei tuoi contenuti compaiano negli snippet dei risultati di ricerca, utilizza l'attributo HTML data-nosnippet. Puoi anche limitare il numero di caratteri di uno snippet di risultati di ricerca utilizzando il meta tag robots max-snippet.

Risoluzione dei problemi

Se hai difficoltà con l'implementazione o il debug dei dati strutturati, ecco alcune risorse che potrebbero esserti utili.