Dados estruturados de assinatura e conteúdo com paywall (CreativeWork)

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 esse material das técnicas de cloaking, que violam as políticas de spam. Saiba mais sobre o conteúdo com paywall e de assinatura.

Exemplo

Confira 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",
      "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>

Diretrizes

É preciso seguir as diretrizes gerais e as especificações técnicas de dados estruturados para 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 estas etapas. 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"
      }
    }
  4. Valide o código com o Teste de pesquisa aprimorada e corrija os erros críticos.

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.

Confira 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, or requires a subscription or registration.</div>
</body>

Confira 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": ["Article", "LearningResource"]

É necessário incluir as propriedades obrigatórias para que o Google entenda que seu artigo tem conteúdo com paywall. É possível adicionar as propriedades recomendadas para ter mais granularidade sobre quais seções de uma página estão atrás de um paywall (ou exigem uma assinatura ou registro).

Propriedades obrigatórias
isAccessibleForFree

Boolean

Se o artigo é acessível a todos ou protegido por um paywall (ou exige uma assinatura ou registro). Defina a propriedade isAccessibleForFree como false para especificar que essa seção é protegida por um paywall.

Propriedades recomendadas
hasPart.cssSelector

CssSelectorType

Um seletor de CSS que faz referência ao nome de classe definido no HTML para especificar a seção com paywall.

hasPart.@type

Text

Defina @type como WebPageElement.

hasPart.isAccessibleForFree

Boolean

Indica se a seção do artigo é protegida por um paywall (ou exige uma assinatura ou registro). Defina a propriedade isAccessibleForFree como False para especificar que essa seção é protegida por um paywall.

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

Considerações sobre a IA generativa na Pesquisa

Os resumos gerados com IA oferecem uma prévia de um tópico ou uma consulta com base em várias fontes, incluindo fontes da Web. Por isso, eles estão sujeitos aos controles de visualização da Pesquisa.

As ferramentas de IA durante a navegação, um recurso separado dos resumos gerados com IA, não vão mostrar os pontos principais de matérias com paywall, se os dados estruturados de paywall estiverem na página.

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 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 de um snippet de resultado da pesquisa usando a meta tag robots max-snippet.

Solução de problemas

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