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

З цієї статті ви дізнаєтеся, як за допомогою властивостей для типу 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.
  • Щоб контент не міг з’являтися в браузері під час показу, налаштуйте один з варіантів платного доступу, при якому це виключено. Якщо ви використовуєте клієнтське рішення на основі JavaScript, вивчіть керівництво про те, як розмічати платний контент за допомогою JavaScript.

Якщо ви хочете, щоб роботи 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-subscriptions, якщо це необхідно.
  • Переконайтеся, що ваш інструмент авторизації надає роботам Google та іншим пошуковим системам доступ до контенту. Тільки сам видавець може його коректно налаштувати.
  • Перевірте, чи однакові правила доступу до звичайних і AMP-сторінок ви налаштували для робота. В іншому випадку в Search Console будуть спостерігатися помилки невідповідності контенту.

В оглядах від ШІ і в режимі ШІ представлена загальна інформація про певну тему або запит, підібрана на основі матеріалів з різних джерел, включаючи сайти. Тому такими оглядами можна керувати за допомогою налаштувань попереднього перегляду.

Якщо вам потрібно, щоб ми сканували та індексували ваш контент, у тому числі в платних розділах, забезпечте доступ до них роботу Googlebot (і роботу Googlebot-News за необхідності).

Використовуйте інструмент перевірки URL, щоб отримати дані про те, як Google сканує та обробляє ваші вебсторінки.

Щоб заборонити показ у Google контенту з певних розділів, використовуйте HTML-атрибут data-nosnippet. Ви також можете задати обмеження на довжину фрагмента в результатах пошуку за допомогою тегу meta з атрибутом max-snippet robots.

Якщо у вас виникли труднощі з додаванням або налагодженням структурованих даних, вам допоможуть ресурси та інформація, доступні за наведеними нижче посиланнями.