Suscripciones y contenido de paga

En esta página se describe cómo usar el método JSON-LD con el vocabulario de schema.org para indicar el contenido de paga de tu sitio mediante las propiedades de CreativeWork. Estos datos estructurados le permiten a Google diferenciar el contenido de paga de la práctica de encubrimiento, que infringe nuestros lineamientos. Obtén más información sobre las suscripciones y el contenido de paga.

Ejemplo

Este es un ejemplo de los datos estructurados de NewsArticle con contenido de paga.

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

Lineamientos

Si deseas que tu página aparezca en los resultados de la búsqueda, sigue los lineamientos generales para datos estructurados y los lineamientos técnicos. Además, se aplican los siguientes lineamientos al contenido de paga:

  • Se aceptan JSON-LD y los formatos de microdatos para especificar los datos estructurados del contenido de paga.
  • No anides las secciones de contenido.
  • Usa solo selectores .class para la propiedad cssSelector.

Cómo agregar lenguaje de marcado al contenido de paga

Si ofreces acceso al contenido de tu sitio basado en suscripciones, o si los usuarios deben registrarse para acceder a cualquier contenido que quieres que se indexe, sigue los pasos que se detallan a continuación. El siguiente ejemplo se aplica a los datos estructurados de NewsArticle. Asegúrate de seguir estos pasos en todas las versiones de tu página (lo que incluye AMP y no AMP).

  1. Agrega un nombre de clase en cada sección paga de la página. Por ejemplo:
    <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. Agrega los datos estructurados de NewsArticle.
  3. Agrega los datos estructurados de JSON-LD (que se muestran resaltados) a los 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"
      }
    }
    

Varias secciones pagas

Si tu página tiene varias secciones pagas, agrega los nombres de clase como un arreglo.

Este es un ejemplo de las secciones de paga en una 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>

Vemos aquí un ejemplo de datos estructurados de NewsArticle con varias secciones de pago.

{
  "@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 compatibles

Este lenguaje de marcado es compatible con el tipo CreativeWork o uno de los siguientes tipos de CreativeWork más específicos:

Puedes usar varios tipos de schema.org, como los siguientes:

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

Consideraciones para AMP

A continuación se muestra una lista de consideraciones que te resultarán útiles si usas páginas de AMP:

  • Si tienes una página de AMP con contenido de paga, usa amp-subscriptions cuando corresponda.
  • Asegúrate de que el extremo de autorización otorgue acceso al contenido a los bots de Google y de otros buscadores. Este acceso varía para cada publicador.
  • Asegúrate de que se use la misma política de acceso para bots en páginas de AMP y que no son de AMP. En caso contrario, podrían producirse errores de diferencia en el contenido que aparece en Search Console.

Cómo asegurarse de que Google pueda rastrear e indexar tus páginas

Hay varias formas de asegurarse de que Google pueda rastrear e indexar el contenido de tu página:

  • Si solo quieres que Google rastree e indexe contenido de una página que se encuentra fuera del muro de pago y que pueden ver todos los usuarios, omite este paso.
  • Si quieres que Google rastree y también indexe la página completa, incluidas las secciones pagas, asegúrate de que Googlebot y Googlebot-News (si corresponde) puedan acceder a tu página.
  • Si quieres impedir que Google muestre el vínculo en caché de tu página, usa la metaetiqueta robots noarchive.

Solución de problemas

Si tienes problemas para implementar datos estructurados, aquí tienes algunos recursos que pueden ayudarte.