Strukturierte Daten für Abo- und Paywall-Inhalte (CreativeWork)

Hier erfährst du, wie du schema.org-konformes JSON-LD verwendest, um Paywall-Inhalte auf deiner Website mithilfe von CreativeWork-Properties auszuzeichnen. Diese strukturierten Daten helfen Google, Paywall-Inhalte von Cloaking zu unterscheiden, einer Technik, die gegen unsere Spamrichtlinien verstößt. Weitere Informationen zu Abo- und Paywall-Inhalten

Beispiel

Hier ein Beispiel für strukturierte NewsArticle-Daten mit Paywall-Inhalten:

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

Richtlinien

Damit deine Seite in den Suchergebnissen angezeigt werden kann, musst du die allgemeinen Richtlinien für strukturierte Daten und die technischen Richtlinien beachten. Darüber hinaus gelten die folgenden Richtlinien für Paywall-Inhalte:

  • JSON-LD und Mikrodatenformate sind akzeptierte Methoden, wenn du strukturierte Daten für Paywall-Inhalte angeben willst.
  • Verschachtele keine Inhaltsabschnitte.
  • Verwende für die cssSelector-Property nur .class-Selektoren.

Markup zu Paywall-Inhalten hinzufügen

Wenn Nutzer deine Inhalte abonnieren können oder sich für den Zugriff auf Inhalte, die indexiert werden sollen, registrieren müssen, führe die unten stehenden Schritte aus. Das folgende Beispiel gilt für strukturierte NewsArticle-Daten. Führe diese Schritte für alle Versionen deiner Seite durch, einschließlich AMP- und Nicht-AMP-Seiten.

  1. Füge einen Klassennamen vor und nach jedem Paywall-Abschnitt deiner Seite hinzu. Beispiel:
    <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. Füge strukturierte Daten vom Typ NewsArticle hinzu.
  3. Füge die hervorgehobenen strukturierten JSON-LD-Daten zu deinen strukturierten NewsArticle-Daten hinzu.
    {
    "@context": "https://schema.org",
    "@type": "NewsArticle",
    "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.org/article"
    },
    (...)
    "isAccessibleForFree": false,
    "hasPart": {
    "@type": "WebPageElement",
    "isAccessibleForFree": false,
    "cssSelector": ".paywall"
    }
    }
  4. Prüfe deinen Code mit dem Test für Rich-Suchergebnisse und behebe alle kritischen Fehler.

Mehrere Paywall-Abschnitte

Wenn du mehrere Paywall-Abschnitte auf einer Seite hast, füge die Klassennamen als Array hinzu.

Hier ein Beispiel für die Paywall-Abschnitte auf einer Seite:

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

Hier siehst du ein Beispiel für strukturierte NewsArticle-Daten mit mehreren Paywall-Abschnitten.

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

Unterstützte Typen

Dieses Markup wird für den Typ CreativeWork oder einen der folgenden spezifischeren CreativeWork-Typen unterstützt:

Du kannst mehrere Schema.org-Typen verwenden, z. B.:

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

Du musst alle erforderlichen Properties angeben, damit Google erkennt, dass dein Artikel Paywall-Inhalte enthält. Du kannst die empfohlenen Properties hinzufügen, um genauer anzugeben, welche Bereiche einer Seite sich hinter einer Paywall befinden (oder ein Abo oder eine Registrierung erfordern).

Erforderliche Properties
isAccessibleForFree

Boolean

Ob der Artikel für alle Nutzer zugänglich ist oder ob er sich hinter einer Paywall befindet (oder ein Abo oder eine Registrierung erfordert). Setze die Property isAccessibleForFree auf false, um anzugeben, dass sich dieser Abschnitt hinter einer Paywall befindet.

Empfohlene Properties
hasPart.cssSelector

CssSelectorType

Ein CSS-Selektor, der auf den Klassennamen verweist, den du im HTML-Code festgelegt hast, um den Paywall-Abschnitt anzugeben.

hasPart.@type

Text

Setze den Wert @type auf WebPageElement.

hasPart.isAccessibleForFree

Boolean

Ob sich dieser Abschnitt des Artikels hinter einer Paywall befindet (oder ein Abo oder eine Registrierung erfordert). Setze die Property isAccessibleForFree auf False, um anzugeben, dass sich dieser Abschnitt hinter einer Paywall befindet.

Hinweise zu AMP-Seiten

Bei der Verwendung von AMP-Seiten solltest du einige Aspekte beachten:

  • Wenn es um eine AMP-Seite mit Paywall-Inhalten geht, solltest du gegebenenfalls amp-subscriptions verwenden.
  • Bots von Google und anderen Suchmaschinen-Crawlern müssen über deinen Autorisierungsendpunkt Zugriff auf Inhalte haben. Dies ist je nach Publisher unterschiedlich.
  • Deine Bot-Zugriffsrichtlinie muss für AMP- und Nicht-AMP-Seiten identisch sein. Andernfalls kann es in der Search Console zu Fehlern mit nicht übereinstimmenden Inhalten kommen.

Überlegungen zu generativer KI in der Google Suche

SGE-Übersichten (Search Generative Experience) werden mithilfe von KI generiert. Sie werden durch Informationen aus dem Web und aus dem Knowledge Graph von Google unterstützt, einer Sammlung von Informationen zu Personen, Orten und Dingen. Inhalte, die mithilfe von Snippet-Steuerelementen blockiert wurden, werden nicht in Übersichten angezeigt.

SGE soll Nutzern dabei helfen, hilfreiche Informationen im Web zu finden, die die Informationen in der Übersicht bestätigen und einen Ausgangspunkt für weitere Nachforschungen bieten. Wie auch in der Google Suche allgemein enthalten SGE-Übersichten unter Umständen Links zu Paywall-Inhalten, damit Nutzer diese Seiten finden.

SGE beim Surfen, eine andere Funktion als SGE in der Google Suche, zeigt keine wichtigen Punkte für Paywall-Artikel an, wenn auf der Seite strukturierte Daten zur Paywall vorhanden sind.

Google muss Webseiten crawlen und indexieren können

Soll Google deine Inhalte, einschließlich der Paywall-Abschnitte, crawlen und indexieren, müssen der Googlebot und ggf. der Googlebot-News auf deine Seite zugreifen können.

Mit dem URL-Prüftool können Sie testen, wie Google eine URL auf Ihrer Website crawlt oder rendert.

Festlegen, welche Informationen in den Suchergebnissen angezeigt werden

Wenn du nicht möchtest, dass Google den im Cache gespeicherten Link für deine Seite anzeigt, verwende das noarchive-robots-meta-Tag.

Wenn du verhindern möchtest, dass bestimmte Abschnitte deiner Inhalte in Suchergebnis-Snippets erscheinen, kannst du das data-nosnippet-HTML-Attribut verwenden. Mit dem max-snippet-robots-meta-Tag kannst du auch die Anzahl der Zeichen beschränken, die ein Suchergebnis-Snippet enthalten kann.

Fehlerbehebung

Falls du Probleme bei der Implementierung oder Fehlerbehebung von strukturierten Daten hast, versuch es mit diesen Lösungsansätzen:

  • Wenn du ein CMS (Content-Management-System) verwendest oder jemand anderes sich um deine Website kümmert, bitte diese Person oder den CMS-Support, dir zu helfen. Leite am besten alle Search Console-Nachrichten, in denen das Problem beschrieben ist, entsprechend weiter.
  • Google kann nicht garantieren, dass Funktionen, die strukturierte Daten nutzen, in den Suchergebnissen angezeigt werden. Eine Liste mit häufigen Gründen, aus denen Google deine Inhalte möglicherweise nicht in einem Rich-Suchergebnis anzeigt, findest du im Artikel Allgemeine Richtlinien für strukturierte Daten.
  • Möglicherweise sind deine strukturierten Daten fehlerhaft. Näheres dazu findest du in der Liste der Fehler bei strukturierten Daten.
  • Wenn auf deiner Seite eine manuelle Maßnahme gegen strukturierte Daten vorliegt, werden die strukturierten Daten auf der Seite ignoriert, obwohl die Seite weiter in den Ergebnissen der Google Suche erscheinen kann. Nutze den Bericht zu manuellen Maßnahmen, um Probleme mit strukturierten Daten zu beheben.
  • Lies dir die Richtlinien noch einmal durch und prüfe, ob deine Inhalte den Richtlinien entsprechen. Das Problem kann durch Spaminhalte oder die Verwendung von Spam-Markup verursacht sein. Allerdings ist es auch möglich, dass das Problem kein Syntaxproblem ist und daher beim Test für Rich-Suchergebnisse nicht identifiziert werden kann.
  • Eine Fehlerbehebung für den Fall, dass Rich-Suchergebnisse fehlen oder die Gesamtzahl der Rich-Suchergebnisse zurückgeht, findest du hier.
  • Plane genug Zeit für das erneute Crawling und die Neuindexierung ein. Nachdem eine Seite veröffentlicht wurde, kann es einige Tage dauern, bis sie von Google gefunden und gecrawlt wurde. Antworten auf allgemeine Fragen zum Crawlen und Indexieren erhältst du auf der Seite Häufig gestellte Fragen zum Crawling und zur Indexierung in der Google Suche.
  • Oder du postest deine Frage im Forum von Google Search Central.