Структурированные данные для подписок и платного контента (CreativeWork)

Из этой статьи вы узнаете, как с помощью свойств для типа CreativeWork в формате JSON-LD от schema.org пометить на своем сайте платный контент. Структурированные данные помогают Google отличить платный контент от материалов, которые скрыты с помощью маскировки и тем самым нарушают наши правила в отношении веб-спама. Подробнее о подписках и платном контенте

Пример

Ниже приведен пример кода, в котором платный контент помечен с помощью структурированных данных типа NewsArticle.

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

Правила

Чтобы ваша страница появлялась в результатах поиска, вы должны соблюдать общие правила в отношении структурированных данных и технические требования. Кроме того, разметка платного контента должна соответствовать правилам, приведенным ниже.

  • Для структурирования платного контента используйте микроданные или формат JSON-LD.
  • Не вкладывайте разделы с контентом друг в друга.
  • Для свойства cssSelector указывайте только селекторы .class.

Как добавить разметку для платного контента

Если вы хотите, чтобы роботы Google индексировали ваш контент, для доступа к которому нужна подписка или регистрация, выполните описанные ниже действия. В качестве примера приведена разметка контента со структурированными данными типа NewsArticle. Повторите перечисленные действия для всех вариантов страницы, включая ее AMP-версию.

  1. Присвойте имя класса каждому разделу с платным контентом на вашей странице. Пример:
    <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. Добавьте структурированные данные типа NewsArticle.
  3. Включите структурированные данные JSON-LD, которые выделены в нашем примере, в структурированные данные типа 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. Протестируйте свой код с помощью инструмента проверки расширенных результатов. Если будут обнаружены критические ошибки, устраните их.

Что делать, если платных разделов несколько

Если на странице имеется несколько разделов с платным контентом, объедините их имена классов в один массив.

Код страницы с двумя платными разделами может выглядеть так:

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

Вот пример того, как внедрить структурированные данные типа NewsArticle для этих разделов:

{
  "@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"
    }
  ]
}

Поддерживаемые типы

Такую разметку можно использовать с типом CreativeWork или одним из следующих подтипов CreativeWork:

Можно указать несколько типов schema.org, например такие:

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

Чтобы указать роботам Google на наличие в вашей статье платного контента, необходимо задать все обязательные свойства. В то же время вы можете также добавить рекомендуемые свойства, которые позволяют более точно обозначить разделы страницы, доступ к которым требует оплаты, подписки или регистрации.

Обязательные свойства
isAccessibleForFree

Boolean

Указывает на то, является ли статья общедоступной или для доступа к ней требуется оплата, подписка или регистрация. Если раздел платный, задайте для свойства isAccessibleForFree значение false.

Рекомендуемые свойства
hasPart.cssSelector

CssSelectorType

Селектор CSS, который ссылается на имя класса, указанное в HTML, чтобы обозначить платный раздел.

hasPart.@type

Text

Задайте для свойства @type значение WebPageElement.

hasPart.isAccessibleForFree

Boolean

Указывает на то, является ли раздел платным или доступ к нему требует подписки или регистрации. Если раздел платный, задайте для свойства isAccessibleForFree значение False.

О чем следует помнить, если у вас есть AMP-страницы

Следуйте этим рекомендациям:

  • Если у вас есть AMP-страницы с платным контентом, используйте при необходимости компонент amp-subscriptions.
  • Убедитесь, что ваше средство авторизации предоставляет роботам Google и других поисковых систем доступ к контенту. Корректно настроить его может только сам издатель.
  • Проверьте, одинаковые ли правила доступа к обычным и AMP-страницам вы настроили для робота. В противном случае в Search Console будут наблюдаться ошибки несоответствия контента.

Особенности генеративной модели Google Поиска

В обзорах от ИИ представлены общие сведения об определенной теме или запросе, подобранные на основе материалов разных источников, в том числе сайтов. Поэтому подобными обзорами можно управлять с помощью настроек предварительного просмотра.

В отличие от функции "обзор от ИИ", инструменты ИИ для просмотра сайтов не позволят посмотреть основные положения платных статей, если на странице имеются структурированные данные для платного контента.

Убедитесь, что Google может сканировать и индексировать ваши страницы

Если вам нужно, чтобы мы сканировали и индексировали ваш контент, в том числе в платных разделах, обеспечьте доступ к ним роботу Googlebot (и роботу Googlebot-News в случае необходимости).

Используйте инструмент проверки URL, чтобы получить данные о том, как Google сканирует и обрабатывает ваши веб-страницы.

Управляйте показом своего контента в результатах поиска

Чтобы запретить показ в Google контента из определенных разделов, используйте HTML-атрибут data-nosnippet. Вы также можете задать ограничение на длину фрагмента в результатах поиска с помощью тега meta с атрибутом max-snippetrobots.

Устранение неполадок

Если у вас возникли трудности с добавлением или отладкой структурированных данных, вам помогут ресурсы и сведения, доступные по приведенным ниже ссылкам.