Blog / Schema Markup

Course Schema Markup: Online-Kurse als Rich Snippets in Google

Strukturierte Daten für Kurse, Seminare und Weiterbildungsangebote — so implementierst du Course Schema Markup richtig und gewinnst mehr Klicks aus den Suchergebnissen.

Course Schema Markup für Online-Kurse und Rich Snippets in Google
Shift07 Team
17. April 2026
11 Min. Lesezeit
Schema Markup

Online-Kurse, Seminare und Weiterbildungsangebote kämpfen in den Suchergebnissen um Aufmerksamkeit. Course Schema Markup ist ein mächtiges Werkzeug, das deine Kurse direkt in den Google-Suchergebnissen mit zusätzlichen Informationen anreichert — und so die Klickrate deutlich steigern kann.

In diesem Artikel erfährst du, was Course Schema Markup ist, wann Google Rich Snippets für Kurse anzeigt, wie du das Markup korrekt implementierst und welche häufigen Fehler du vermeiden musst. Mit vollständigen JSON-LD-Beispielen, die du sofort einsetzen kannst.

Was ist Course Schema Markup?

Course Schema Markup ist ein strukturiertes Daten-Format aus dem Schema.org-Vokabular, das Suchmaschinen mitteilt: „Diese Seite beschreibt einen Kurs oder eine Weiterbildungsmaßnahme." Google verwendet diese Informationen, um in den Suchergebnissen erweiterte Vorschauen — sogenannte Rich Results — anzuzeigen.

Konkret können folgende Informationen als Rich Snippet erscheinen:

  • Kursname und Anbieter
  • Kursbeschreibung
  • Kursplattform (z. B. „Udemy", „Coursera", deine eigene Plattform)
  • Preis (kostenlos oder kostenpflichtig)
  • Sprache des Kurses
  • Bewertungen und Rezensionen
Tipp: Course Schema Markup eignet sich für alle Arten von Bildungsangeboten — von Online-Kursen über Präsenzseminare bis hin zu Webinaren, Zertifikatskursen und Universitätslehrveranstaltungen.

Voraussetzungen: Wann zeigt Google Course Rich Snippets an?

Google stellt klare Anforderungen, bevor Course Rich Results angezeigt werden. Deine Seite muss:

  1. Einem echten Kurs gewidmet sein — nicht einer allgemeinen Themen-Übersicht oder einer Kategorienseite
  2. Die Pflichtfelder korrekt ausfüllen (Name, Beschreibung, Provider)
  3. Qualitativ hochwertig und inhaltlich konsistent mit dem Markup sein
  4. Indexierbar sein — kein noindex gesetzt haben

Außerdem gelten die üblichen Richtlinien für strukturierte Daten: Das Markup muss die tatsächlichen Inhalte der Seite widerspiegeln — kein Spam, keine irreführenden Angaben.

Die Pflichtfelder von Course Schema

Google definiert einige Felder als Pflichtangaben, andere als empfohlen. Fehlen die Pflichtfelder, werden keine Rich Snippets angezeigt.

Feld Status Beschreibung
name Pflicht Name des Kurses
description Pflicht Kursbeschreibung (min. 50 Zeichen)
provider Pflicht Organisation, die den Kurs anbietet
url Empfohlen URL der Kursseite
hasCourseInstance Empfohlen Kursinstanz mit konkreten Details
offers Empfohlen Preisinformationen
aggregateRating Empfohlen Bewertungen (nur aus echten Reviews!)
inLanguage Empfohlen Sprache des Kurses (BCP47-Code)

Minimales Course Schema Markup (JSON-LD)

Hier ist ein vollständiges Minimalbeispiel, das die Pflichtfelder enthält:

{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "SEO-Grundlagen für Einsteiger",
  "description": "Lerne in diesem Kurs die wichtigsten Grundlagen der Suchmaschinenoptimierung. Von Keyword-Recherche über On-Page-SEO bis zu Backlinks — alles kompakt erklärt.",
  "provider": {
    "@type": "Organization",
    "name": "Shift07",
    "sameAs": "https://shift07.ai"
  }
}

Dieses Markup erfüllt die Mindestanforderungen. Google kann damit die Kursseite als solche erkennen — Rich Snippets in den Suchergebnissen werden aber erst mit den empfohlenen Zusatzfeldern wirklich attraktiv.

Erweitertes Course Schema mit CourseInstance

Die wichtigste Ergänzung ist hasCourseInstance. Sie beschreibt konkrete Kursinstanzen — also wann, wo und wie der Kurs stattfindet. Das ist besonders wichtig für:

  • Online-Kurse auf eigenen Plattformen
  • Präsenzseminare mit festen Terminen
  • Webinare mit Startdatum
  • Self-paced Kurse (jederzeit startbar)
{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "SEO-Grundlagen für Einsteiger",
  "description": "Lerne die wichtigsten SEO-Techniken: Keyword-Recherche, On-Page-Optimierung, Backlinks und technische SEO. Mit praktischen Übungen und echten Beispielen.",
  "url": "https://shift07.ai/kurse/seo-grundlagen",
  "provider": {
    "@type": "Organization",
    "name": "Shift07",
    "sameAs": "https://shift07.ai"
  },
  "inLanguage": "de",
  "hasCourseInstance": [
    {
      "@type": "CourseInstance",
      "courseMode": "Online",
      "courseWorkload": "PT3H",
      "instructor": {
        "@type": "Person",
        "name": "Laurenz Thümmler"
      }
    }
  ],
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "url": "https://shift07.ai/kurse/seo-grundlagen"
  }
}

Wichtige Werte für courseMode

Das Feld courseMode beschreibt das Format des Kurses. Gültige Werte sind:

  • "Online" — reiner Online-Kurs
  • "Onsite" — Präsenzkurs
  • "Blended" — Kombination aus Online und Präsenz
  • "https://schema.org/Distance" — Fernlernkurs

courseWorkload: Zeiten im ISO-8601-Format

Die Kursdauer wird im ISO-8601-Dauerformat angegeben — ähnlich wie bei HowTo Schema:

  • PT30M — 30 Minuten
  • PT2H — 2 Stunden
  • PT3H30M — 3 Stunden 30 Minuten
  • P2D — 2 Tage
  • P3W — 3 Wochen
  • P6M — 6 Monate

Vollständiges Beispiel mit Bewertungen und Kurs-Kategorien

Hier ein Praxisbeispiel, das alle wichtigen empfohlenen Felder enthält — ideal für eine Kursseite mit echten Kundenbewertungen:

{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "Technisches SEO: Fortgeschrittener Kurs",
  "description": "Dieser Kurs vermittelt fortgeschrittene technische SEO-Kenntnisse: Core Web Vitals, Crawl-Budget, Log-File-Analyse, JavaScript-SEO und strukturierte Daten. Für Webmaster, die ihre Rankings nachhaltig verbessern wollen.",
  "url": "https://shift07.ai/kurse/technisches-seo-fortgeschritten",
  "image": "https://shift07.ai/kurse/images/technisches-seo-kurs.jpg",
  "provider": {
    "@type": "Organization",
    "name": "Shift07",
    "sameAs": "https://shift07.ai",
    "url": "https://shift07.ai"
  },
  "inLanguage": "de",
  "educationalLevel": "advanced",
  "teaches": [
    "Core Web Vitals optimieren",
    "Crawl-Budget verstehen und managen",
    "JavaScript SEO",
    "Strukturierte Daten implementieren",
    "Log-File-Analyse für SEO"
  ],
  "hasCourseInstance": [
    {
      "@type": "CourseInstance",
      "courseMode": "Online",
      "courseWorkload": "PT8H",
      "startDate": "2026-05-01",
      "endDate": "2026-05-31",
      "location": {
        "@type": "VirtualLocation",
        "url": "https://shift07.ai/kurse/technisches-seo-fortgeschritten"
      },
      "instructor": {
        "@type": "Person",
        "name": "Laurenz Thümmler",
        "url": "https://shift07.ai"
      }
    }
  ],
  "offers": {
    "@type": "Offer",
    "price": "197",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "validFrom": "2026-04-01",
    "url": "https://shift07.ai/kurse/technisches-seo-fortgeschritten"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "142",
    "bestRating": "5",
    "worstRating": "1"
  }
}
Wichtig zu aggregateRating: Verwende aggregateRating nur, wenn du tatsächlich echte Kundenbewertungen hast und diese auf der Seite sichtbar sind. Gefälschte oder versteckte Bewertungen im Markup verstoßen gegen Googles Richtlinien und können zur Abwertung der Seite führen.

Course Schema für kostenlose Kurse

Kostenlose Kurse kennzeichnest du mit "price": "0" — das ist ein klarer Vorteil in den Suchergebnissen, weil „Kostenlos" oft die Klickrate stark erhöht:

"offers": {
  "@type": "Offer",
  "price": "0",
  "priceCurrency": "EUR",
  "category": "Free",
  "availability": "https://schema.org/InStock"
}

Alternativ kannst du auch "category": "Paid" oder "category": "Subscription" verwenden, um das Abrechnungsmodell zu kommunizieren.

Mehrere Kursinstanzen (z. B. Präsenz + Online)

Ein Kurs kann mehrere Instanzen haben — zum Beispiel eine Online-Version und einen Präsenzkurs im selben Quartal. Das ist mit einem Array im hasCourseInstance-Feld möglich:

"hasCourseInstance": [
  {
    "@type": "CourseInstance",
    "courseMode": "Online",
    "courseWorkload": "PT6H",
    "startDate": "2026-05-01",
    "location": {
      "@type": "VirtualLocation",
      "url": "https://shift07.ai/kurse/seo-workshop-online"
    }
  },
  {
    "@type": "CourseInstance",
    "courseMode": "Onsite",
    "courseWorkload": "PT8H",
    "startDate": "2026-05-15",
    "endDate": "2026-05-16",
    "location": {
      "@type": "Place",
      "name": "Shift07 Office Potsdam",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "Leonardo-da-Vinci-Straße 15",
        "addressLocality": "Potsdam",
        "postalCode": "14467",
        "addressCountry": "DE"
      }
    }
  }
]

Course Schema in WordPress implementieren

In WordPress gibt es zwei Hauptwege für Course Schema Markup:

Weg 1: Plugin (Yoast SEO Premium, Schema Pro, Rank Math)

Rank Math und Schema Pro haben native Course-Schema-Unterstützung. Du gibst die Kursdetails im Backend ein, das Plugin generiert automatisch das JSON-LD. Das ist der einfachste Weg, besonders wenn du viele Kurse verwaltest.

Weg 2: Manuell per Code-Snippet

Füge das JSON-LD direkt in den <head> der Kursseite ein:

// In functions.php oder einem Custom Plugin:
function add_course_schema() {
    if ( is_singular('course') ) { // Custom Post Type 'course'
        $course_id = get_the_ID();
        $schema = array(
            '@context' => 'https://schema.org',
            '@type' => 'Course',
            'name' => get_the_title($course_id),
            'description' => get_the_excerpt($course_id),
            'url' => get_permalink($course_id),
            'provider' => array(
                '@type' => 'Organization',
                'name' => get_bloginfo('name'),
                'sameAs' => home_url()
            )
        );
        echo '<script type="application/ld+json">';
        echo json_encode($schema, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
        echo '</script>';
    }
}
add_action('wp_head', 'add_course_schema');

Häufige Fehler bei Course Schema Markup

Diese Fehler werden in Googles Rich Results-Test am häufigsten angezeigt:

1. Fehlende Pflichtfelder

Ohne name, description und provider werden keine Rich Snippets angezeigt. Prüfe mit dem Rich Results Test, ob alle Pflichtfelder erkannt werden.

2. Beschreibung zu kurz

Google empfiehlt mindestens 50 Zeichen für die description. Kurze Einzeiler wie „SEO-Kurs" reichen nicht aus — beschreibe den Inhalt und Nutzen des Kurses konkret.

3. Markup stimmt nicht mit dem Seiteninhalt überein

Das Schema.org-Markup muss die tatsächlichen Inhalte der Seite widerspiegeln. Wenn im Markup ein Preis von 197 € steht, aber die Seite keinen Preis nennt, wertet Google das als irreführend.

4. aggregateRating ohne sichtbare Bewertungen

Bewertungen im Markup, die nicht auf der Seite sichtbar sind, verstoßen gegen Googles Richtlinien. Entweder zeigst du die Bewertungen auf der Seite an — oder du lässt das Feld weg.

5. Falsches Format für startDate/endDate

Datumsangaben müssen im ISO-8601-Format angegeben werden: "2026-05-01" (Datum) oder "2026-05-01T09:00:00+02:00" (mit Uhrzeit und Zeitzone). Formate wie „01.05.2026" werden nicht erkannt.

6. courseMode-Werte falsch geschrieben

Die gültigen Werte für courseMode sind case-sensitive: "Online", "Onsite", "Blended". Kleinschreibung oder Tippfehler führen zu Validierungsfehlern.

Course Schema Markup validieren

Bevor du das Markup live schaltest, validiere es mit diesen Tools:

  • Google Rich Results Test: Zeigt an, ob dein Markup Rich Snippets auslösen kann und welche Fehler vorhanden sind
  • Schema.org Validator: Prüft das Markup gegen das vollständige Schema.org-Vokabular
  • Shift07 JSON-LD Validator: Unser kostenloser Validator für strukturierte Daten — direkt im Browser nutzbar

Nach der Validierung empfiehlt es sich, die URL in der Google Search Console zu indexieren und anschließend den URL-Inspektion-Bericht zu prüfen, um zu sehen, ob Google das Markup korrekt erkannt hat.

Course Schema und die Search Console

In der Google Search Console gibt es unter „Erweiterungen" → „Kurse" einen eigenen Bericht für Course Rich Results. Dort siehst du:

  • Wie viele Kursseiten mit gültigem Markup erkannt wurden
  • Welche Fehler oder Warnungen vorliegen
  • Auf welchen Seiten das Markup implementiert ist

Dieser Bericht erscheint erst, wenn Google mindestens eine Kursseite mit gültigem Schema Markup gecrawlt hat. Das kann nach dem ersten Implementieren einige Tage dauern.

Course Schema vs. andere Bildungs-Schemas

Neben dem Course-Schema gibt es weitere relevante Schema-Typen für Bildungsanbieter:

Schema-Typ Geeignet für Rich Result möglich?
Course Online-Kurse, Seminare, Weiterbildungen ✅ Ja
EducationalOrganization Schulen, Hochschulen, Bildungseinrichtungen Indirekt (Knowledge Panel)
Event Webinare mit konkretem Termin ✅ Ja (Event Rich Results)
HowTo Schritt-für-Schritt-Anleitungen ✅ Ja (HowTo Rich Results)
LearningResource Allgemeine Lernressourcen Begrenzt

Für Webinare mit festem Termin kann es sinnvoll sein, sowohl Course als auch Event Schema Markup auf derselben Seite zu verwenden — beide in separaten <script type="application/ld+json">-Blöcken.

Checkliste: Course Schema Markup richtig implementieren

  • name gesetzt (prägnanter Kurstitel)
  • description gesetzt (min. 50 Zeichen, inhaltlich konkret)
  • provider mit Name und sameAs definiert
  • hasCourseInstance mit courseMode und courseWorkload
  • offers mit Preis (auch 0 für kostenlos)
  • inLanguage gesetzt (z. B. "de")
  • ✅ Datumsfelder im ISO-8601-Format
  • aggregateRating nur wenn Bewertungen sichtbar auf der Seite
  • ✅ Markup mit Rich Results Test validiert
  • ✅ URL in Google Search Console eingereicht
  • ✅ Markup stimmt mit dem Seiteninhalt überein

Fazit: Lohnt sich Course Schema Markup?

Ja — besonders für Kursanbieter, die in einem wettbewerbsintensiven Markt sichtbar sein wollen. Rich Snippets für Kurse erhöhen die Klickrate, weil zusätzliche Informationen (Preis, Bewertung, Anbieter) bereits in den Suchergebnissen sichtbar sind. Nutzer können die Relevanz einschätzen, bevor sie klicken — das führt zu qualifizierterem Traffic.

Die Implementierung ist mit dem JSON-LD-Format einfach und risikoarm. Beginne mit den Pflichtfeldern, füge schrittweise die empfohlenen Felder hinzu und validiere das Markup regelmäßig. In Kombination mit einer vollständigen Schema-Markup-Strategie und gutem technischen SEO kannst du die Sichtbarkeit deiner Kursseiten erheblich steigern.

Nächster Schritt: Prüfe mit unserem JSON-LD Validator, ob dein bestehendes Schema Markup fehlerfrei ist. Oder nutze den HowTo Schema Generator, falls du auch Schritt-für-Schritt-Anleitungen für deine Kursseiten erstellen möchtest.

Teste deine Website jetzt kostenlos

Erhalte eine vollständige SEO-Analyse mit konkreten Verbesserungsvorschlägen.

Analyse starten