Conteúdo com paywall e assinatura

Esta página descreve como usar JSON-LD do schema.org para indicar conteúdo com paywall no site usando propriedades CreativeWork (link em inglês). Esses dados estruturados ajudam o Google a diferenciar conteúdo com paywall da prática das técnicas de cloaking, que violam nossas diretrizes. Saiba mais sobre o conteúdo com paywall e de assinatura.

Exemplo

Veja um exemplo de dados estruturados de NewsArticle indicando conteúdo com 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>

Diretrizes

É preciso seguir as diretrizes gerais e as especificações técnicas de dados estruturados a fim de qualificar a página para exibição nos resultados da pesquisa. Além disso, as seguintes diretrizes são aplicadas a conteúdos com paywall.

  • Os formatos JSON-LD e microdados são métodos aceitos para especificar dados estruturados de conteúdo com paywall.
  • Não aninhe seções de conteúdo.
  • Só use seletores .class para a propriedade cssSelector.

Adicionar marcação a conteúdos com paywall

Se você oferecer acesso baseado em assinatura ao conteúdo do seu site, ou se os usuários precisarem se registrar para acessar qualquer conteúdo que você queira indexar, siga as etapas abaixo. O exemplo a seguir se aplica aos dados estruturados de NewsArticle. Siga estas etapas para todas as versões da sua página, incluindo AMP e não AMP.

  1. Adicione um nome de classe a cada seção com paywall da página. Exemplo:
    <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. Adicione os dados estruturados de NewsArticle.
  3. Adicione os dados estruturados JSON-LD destacados aos dados estruturados de NewsArticle.
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://example.org/article"
      },
      (...)
      "isAccessibleForFree": "False",
      "hasPart": {
        "@type": "WebPageElement",
        "isAccessibleForFree": "False",
        "cssSelector": ".paywall"
      }
    }

Várias seções com paywall

Se você tiver várias seções com paywall em uma página, adicione os nomes das classes como uma matriz.

Veja um exemplo de seções com paywall em uma página:

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

Veja um exemplo de dados estruturados de NewsArticle indicando várias seções com 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"
    }
  ]
}

Tipos compatíveis

Essa marcação é compatível com o tipo CreativeWork ou um dos seguintes tipos mais específicos de CreativeWork:

Vários tipos do schema.org podem ser usados, como o seguinte:

"@type": ["CreativeWork","Article","Person"]

Considerações sobre AMP

Se você usar páginas AMP, considere o seguinte:

  • Se você tiver uma página AMP com conteúdo com paywall, use amp-subscriptions (em inglês) quando apropriado.
  • Seu endpoint de autorização precisa conceder acesso ao conteúdo para os bots do Google e de terceiros. Isso varia de acordo com o editor.
  • A política de acesso do bot precisa ser a mesma para páginas AMP e não AMP, caso contrário, podem ocorrer erros de incompatibilidade de conteúdo exibidos no Search Console.

Conferir se o Google pode rastrear e indexar suas páginas

Para que o Google rastreie e indexe todo o conteúdo, incluindo as seções com paywall, verifique se o Googlebot e o Googlebot-News, se aplicável, têm acesso a ele.

Use a Ferramenta de inspeção de URL para testar como o Google rastreia e renderiza um URL do seu site.

Controlar as informações que são exibidas nos resultados da pesquisa

Para impedir que o Google mostre um link em cache para a página, use a metatag robots noarchive.

Para impedir que algumas seções do seu conteúdo sejam exibidas em snippets de resultados da pesquisa, use o atributo HTML data-nosnippet. Também é possível limitar o número de caracteres que um snippet de resultado da pesquisa pode ter usando a metatag robots max-snippet.

Solução de problemas

Se você tiver problemas para implementar os dados estruturados, veja alguns recursos que podem ajudar.