Uporządkowane dane dotyczące treści płatnych i dostępnych w ramach subskrypcji (CreativeWork)

Z tego artykułu dowiesz się, jak używać formatu JSON-LD schema.org, aby oznaczać w witrynie treści płatne za pomocą właściwości CreativeWork. Uporządkowane dane pomagają Google odróżnić treści płatne od maskowania, które jest niezgodne z zasadami dotyczącymi spamu. Dowiedz się więcej o treściach płatnych i dostępnych w ramach subskrypcji.

Przykład

Oto przykład uporządkowanych danych NewsArticle z treściami płatnymi.

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

Wytyczne

Aby umożliwić wyświetlanie strony w wynikach wyszukiwania, musisz zapewnić jej zgodność z ogólnymi wytycznymi dotyczącymi uporządkowanych danych oraz ze wskazówkami technicznymi. W przypadku treści płatnych obowiązują też te wytyczne:

  • Użycie formatu JSON-LD i mikrodanych to akceptowane metody definiowania uporządkowanych danych w przypadku treści płatnych.
  • Nie zagnieżdżaj sekcji z treścią.
  • Dla właściwości cssSelector używaj tylko selektorów .class.
  • Jeśli nie chcesz, aby treści były dostępne dla przeglądarki w momencie wyświetlania, wybierz implementację paywalla, która nie udostępnia przeglądarce treści objętych paywallem. Jeśli używasz rozwiązania JavaScript po stronie klienta, zapoznaj się z naszymi wskazówkami dotyczącymi implementowania treści za paywallem za pomocą JavaScriptu.

Dodawanie znaczników do treści płatnych

Jeśli korzystanie z Twojej witryny jest oparte na subskrypcji lub jeśli dostęp do treści, które mają być indeksowane, wymaga rejestracji użytkownika, wykonaj te czynności. Podany tu przykład dotyczy uporządkowanych danych NewsArticle. Pamiętaj, żeby wykonać te czynności w przypadku wszystkich wersji Twojej strony (w tym AMP i innych niż AMP).

  1. Dodaj nazwę klasy do każdej sekcji z treściami płatnymi na stronie. Przykład:
    <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. Dodaj uporządkowane dane NewsArticle.
  3. Dodaj zaznaczone uporządkowane dane JSON-LD do uporządkowanych danych obiektu 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. Zweryfikuj kod za pomocą testu wyników z elementami rozszerzonymi i napraw błędy krytyczne.

Wiele sekcji z treściami płatnymi

Jeśli na stronie masz wiele sekcji z treściami płatnymi, dodaj nazwy klas w postaci tablicy.

Oto przykład sekcji z treściami płatnymi na stronie:

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

Oto przykład uporządkowanych danych obiektu NewsArticle z wieloma sekcjami zawierającymi treści płatne.

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

Typy obsługiwane

Te znaczniki są obsługiwane w przypadku typu CreativeWork lub jednego z bardziej określonych typów CreativeWork:

Można używać wielu typów schema.org, np. tych:

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

Aby robot Google rozpoznał, że Twój artykuł zawiera treści płatne, musisz w nim określić wymagane właściwości. Możesz dodać właściwości zalecane, aby dokładniej określić, które sekcje strony są dostępne za paywallem (albo wymagają subskrypcji bądź rejestracji).

Właściwości wymagane
isAccessibleForFree

Boolean

Określa, czy artykuł jest ogólnodostępny czy ukryty za paywallem (albo wymaga subskrypcji lub rejestracji). Ustaw właściwość isAccessibleForFree na false, aby wskazać, że ta sekcja jest za paywallem.

Właściwości zalecane
hasPart.cssSelector

CssSelectorType

Selektor CSS, który odwołuje się do nazwy klasy ustawionej w kodzie HTML, aby określić sekcję płatną.

hasPart.@type

Text

Ustaw wartość @type na WebPageElement.

hasPart.isAccessibleForFree

Boolean

Określa, czy ta sekcja artykułu jest dostępna za paywallem (albo wymaga subskrypcji lub rejestracji). Ustaw właściwość isAccessibleForFree na False, aby wskazać, że ta sekcja jest za paywallem.

Uwaga dotycząca AMP

Oto lista uwag, o których musisz pamiętać, jeśli używasz stron AMP:

  • Jeśli masz stronę AMP z treściami płatnymi, użyj w odpowiednich przypadkach komponentu amp-subscriptions.
  • Upewnij się, że punkt końcowy autoryzacji zapewnia dostęp do treści odpowiednim robotom Google i innych firm – zależy to od wydawcy.
  • Upewnij się, że zasady dostępu dla botów są takie same w przypadku stron AMP i stron w innych formatach. W przeciwnym razie w Search Console mogą zostać zgłoszone błędy niezgodności treści.

Uwagi na temat generatywnej AI w wyszukiwarce

Przeglądy od AI i tryb AI umożliwiają podgląd informacji związanych z danym tematem lub zapytaniem, wygenerowany na podstawie różnych źródeł, w tym stron internetowych. W związku z tym podlegają ustawieniom podglądu treści w wyszukiwarce.

Jak sprawdzić, czy Google może indeksować i skanować Twoje strony

Jeśli chcesz, żeby roboty Google indeksowały i skanowały całą stronę (w tym sekcje płatne), sprawdź, czy Googlebot (a w odpowiednich przypadkach także Googlebot-News) ma dostęp do strony.

Użyj narzędzia do sprawdzania adresów URL, by zobaczyć, jak Google indeksuje i renderuje adres URL w Twojej witrynie.

Określanie, jakie informacje mają być widoczne w wynikach wyszukiwania

Jeśli chcesz wykluczyć niektóre fragmenty treści z wyników wyszukiwania, użyj atrybutu HTML data-nosnippet. Możesz też ograniczyć liczbę znaków we fragmencie w wyniku wyszukiwania, używając tagu max-snippet robots meta.

问题排查

如果您在实施或调试结构化数据时遇到问题,请查看下面列出的一些实用资源。

  • 如果您使用了内容管理系统 (CMS) 或其他人负责管理您的网站,请向其寻求帮助。请务必向其转发列明问题细节的任何 Search Console 消息。
  • Google 不能保证使用结构化数据的功能一定会显示在搜索结果中。如需查看导致 Google 无法将您的内容显示为富媒体搜索结果的各种常见原因,请参阅结构化数据常规指南
  • 您的结构化数据可能存在错误。请参阅结构化数据错误列表
  • 如果您的网页受到结构化数据手动操作的影响,其中的结构化数据将会被忽略(但该网页仍可能会出现在 Google 搜索结果中)。如需修正结构化数据问题,请使用“人工处置措施”报告
  • 再次查看相关指南,确认您的内容是否未遵循指南。问题可能是因为出现垃圾内容或使用垃圾标记导致的。不过,问题可能不是语法问题,因此富媒体搜索结果测试无法识别这些问题。
  • 针对富媒体搜索结果缺失/富媒体搜索结果总数下降进行问题排查
  • 请等待一段时间,以便 Google 重新抓取您的网页并重新将其编入索引。请注意,网页发布后,Google 可能需要几天时间才会找到和抓取该网页。有关抓取和索引编制的常见问题,请参阅 Google 搜索抓取和索引编制常见问题解答
  • Google 搜索中心论坛中发帖提问。