Strukturierte Daten für ein Event sind im Kern ein JSON-LD-Block, der Google mitteilt: Hier findet etwas statt, zu diesem Zeitpunkt, an diesem Ort. Klingt simpel, war es lange auch. Seit Oktober 2023 hat Google die Regeln für dieses eine Markup dreimal spürbar verändert, zuletzt im Juni 2025 mit einer Änderung, die viele bestehende Artikel zum Thema schlicht nicht mehr abbilden. Wer sein Event-Markup noch nach dem Stand von 2023 baut, riskiert kein bloß verspätetes Rich-Result. Er baut an einer Voraussetzung vorbei, die seit Juni 2025 strukturell fehlt. Vor der eigentlichen Bauanleitung lohnt deshalb ein Blick auf den aktuellen Schema Validator, mit dem du jedes fertige Markup gegen die tatsächlich gültige Syntax prüfst, bevor du es live schaltest.
Was ist Event-Schema-Markup?
Event-Schema-Markup ist ein JSON-LD-Objekt vom Typ Event, eingebettet in ein <script type="application/ld+json">-Tag auf der Seite, die zu deiner Veranstaltung gehört. Es beschreibt strukturiert, was sonst nur im Fließtext steht: Titel, Zeitpunkt, Ort, Preis. Google liest das aus und kann daraus ein Event-Rich-Result bauen, zumindest in den unterstützten Ländern, zu denen laut Googles eigener Ländertabelle unter anderem Australien, Brasilien, Kanada, Indien, Spanien, Großbritannien, die USA und ausdrücklich auch Deutschland gehören.
Ein vollständiges Beispiel für eine Präsenzveranstaltung mit Ticket:
{
"@context": "https://schema.org",
"@type": "Event",
"name": "PraxisTag Strukturierte Daten 2026",
"startDate": "2026-11-12T09:00+01:00",
"endDate": "2026-11-12T17:00+01:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "Kongresshaus Leipzig",
"address": {
"@type": "PostalAddress",
"streetAddress": "Pfaffendorfer Str. 25",
"addressLocality": "Leipzig",
"postalCode": "04105",
"addressCountry": "DE"
}
},
"image": "https://www.beispiel-praxistag.de/event-bild.jpg",
"description": "Ein Tag mit Praxis-Workshops zu Schema-Markup, technischem SEO und Search Console für Marketing-Teams.",
"offers": {
"@type": "Offer",
"price": "179",
"priceCurrency": "EUR",
"validFrom": "2026-09-01T00:00+02:00"
}
}
Kein Feld darin ist exotisch. Die Schwierigkeit liegt woanders: darin, zu wissen, welche drei Zeilen wirklich zählen und welche zehn nur helfen. Das klärt die nächste Tabelle.
Pflicht- und empfohlene Felder für Event-Schema-Markup
Laut Googles offizieller Dokumentation zu strukturierten Daten für Events (developers.google.com, Stand laut Seitenfooter 10.12.2025, live geprüft am 31.08.2026) sind nur drei Angaben verpflichtend, alles andere ist empfohlen und wirkt sich auf die Darstellungsqualität aus, nicht auf die Grundqualifikation.
| Feld | Status | Hinweis |
|---|---|---|
name | Pflicht | Klarer Veranstaltungstitel |
startDate | Pflicht | ISO-8601-Datum mit Uhrzeit und Zeitzone |
location (Place + PostalAddress) | Pflicht | Physischer Ort, seit Juni 2025 zwingend, siehe unten |
description | Empfohlen | Kurzbeschreibung der Veranstaltung |
endDate | Empfohlen | Besonders wichtig bei Mehrtagesveranstaltungen |
eventStatus | Empfohlen, Default EventScheduled | Fünf mögliche Werte, siehe eigener Abschnitt |
image | Empfohlen | Mehrere Auflösungen, zusammen mindestens 50.000 Pixel, Seitenverhältnis 16:9, 4:3 oder 1:1 |
offers | Empfohlen | Preis, Währung, validFrom |
organizer / performer | Empfohlen | Veranstalter beziehungsweise auftretende Person oder Gruppe |
previousStartDate | Empfohlen bei Verschiebung | Nur relevant bei eventStatus: EventRescheduled |
Für den physischen Ort gilt dieselbe Modellierung wie bei einem LocalBusiness-Eintrag: location verweist auf ein Place, das wiederum eine address vom Typ PostalAddress trägt. Wer bereits ein Unternehmensprofil mit dem LocalBusiness-Schema-Generator gebaut hat, kennt die Adressfelder bereits, hier tauchen sie nur unter einem anderen Elternobjekt wieder auf.
Was du nicht als Event markieren darfst
Google grenzt das Event-Markup bewusst eng ein, damit das Rich-Result nicht zur allgemeinen Werbefläche wird. Nicht förderfähig sind laut Googles eigener Dokumentation reine Produktseiten oder Reisepakete, kurzfristige Rabattaktionen, normale Geschäftsöffnungszeiten, Gutscheine und Coupons sowie Zuschauerveranstaltungen, deren primäres Publikum minderjährig ist und auf einem Schulgelände stattfindet. Ein Event muss außerdem für die Allgemeinheit buchbar sein: Eine Mitgliedschaft oder Einladung, die vor dem Ticketkauf verlangt wird, macht die Veranstaltung nicht förderfähig für das Event-Erlebnis. Ein Beispiel aus der Praxis: Ein SaaS-Anbieter, der einen 48-Stunden-Rabatt auf sein Jahresabo bewirbt, markiert damit kein Event, selbst wenn die Rabatt-Deadline wie ein Startdatum aussieht. Das ist eine Promo-Aktion mit Ablaufdatum, kein Ereignis mit Ort und Publikum.
Seit dem 25. Juni 2025: kein Rich-Result ohne physischen Ort
Rein virtuelle Events sind seit dieser Änderung nicht mehr für Googles Event-Erlebnis qualifiziert. Belegt durch zwei unabhängige Quellen: Googles aktuelle Event-Doku erwähnt eventAttendanceMode an keiner Stelle mehr, und Search Engine Roundtable berichtete am 6. Juni 2025 über die Ankündigung, dass die Pflicht zum physischen Ort ab dem 25. Juni 2025 gilt und Event-Einträge im Search-Console-Performance-Bericht seither spürbar zurückgingen (Search Engine Roundtable). eventAttendanceMode existiert als Enum in schema.org weiter, taucht in Googles eigener Feldliste aber nicht mehr auf. Das ist nicht dasselbe wie „wirkungslos“, nur nicht mehr dokumentiert, und Google äußert sich dazu nicht direkt.
Ein Detail dazu, das gern übersehen wird: Auch EventMovedOnline sitzt seit dieser Änderung in einer Sonderposition. Der Statuswert existiert weiter in schema.org, aber ein Event, das komplett online verlegt wurde, hat per Definition keinen physischen Ort mehr, folglich nach aktueller Doku auch keinen Weg mehr ins Rich-Result. Kein Drama, nur ein Statuswert, der praktisch ins Leere zeigt.
Der Stand 2023 bis 2025: eine Zeitleiste voller Kurskorrekturen
Wer 2023 zuletzt in dieses Thema geschaut hat, arbeitet mit einem völlig anderen Regelwerk als heute. Fünf Stationen, in chronologischer Reihenfolge:
| Datum | Ereignis | Quelle |
|---|---|---|
| 24.10.2023 | Event-Rich-Snippets komplett aus den normalen Textergebnissen entfernt, live bestätigt bei Google Search Central Live Zürich | Search Engine Land |
| 06.03.2024 | Neue Reporting-Kategorie in der Search Console, andere und niedrigere Zahlen im Bericht, kein zusätzlicher realer Traffic-Verlust | Search Engine Roundtable |
| 27.03.2025 | Neue Event-Suchfunktionen weltweit sichtbar (Teilen, Kalendereintrag, ähnliche Events, Location-Details), community-beobachtet, nicht offiziell von Google dokumentiert | Search Engine Roundtable |
| 25.06.2025 | Rein virtuelle Events verlieren die Qualifikation, physischer Ort wird Pflicht (Ankündigung dazu bereits am 06.06.2025) | Search Engine Roundtable |
| 10.12.2025 | Letzte erkennbare Aktualisierung der offiziellen Google-Doku zu Event-Markup, aktueller geprüfter Stand dieses Artikels | Google Search Central |
Auffällig an dieser Reihe: Keine einzelne Änderung war für sich genommen dramatisch, in Summe hat sich das Feld aber zweimal grundlegend verschoben, erst mit dem Wegfall der Snippets 2023, dann mit dem Ortszwang 2025. Ein Artikel, der nur eine dieser beiden Wellen kennt, ist streng genommen nur zur Hälfte aktuell.
eventStatus richtig setzen
EventStatusType in schema.org kennt fünf Werte, alle mit dem Präfix https://schema.org/ als String einzutragen: EventScheduled, EventCancelled, EventPostponed, EventRescheduled und EventMovedOnline (live geprüft am 31.08.2026 auf schema.org/EventStatusType). Fehlt das Feld, nimmt Google standardmäßig EventScheduled an, ein explizites Setzen lohnt sich trotzdem, sobald sich der Status ändert.
Für eine Verschiebung gehören eventStatus und previousStartDate zusammen, sonst fehlt der Kontext, wann das Event ursprünglich stattfinden sollte:
"eventStatus": "https://schema.org/EventRescheduled",
"startDate": "2027-02-18T09:00+01:00",
"previousStartDate": "2026-11-12T09:00+01:00"
Eine Sache noch zur Klarstellung, weil hier oft mehr Feldpflege betrieben wird, als der aktuelle Stand rechtfertigt: eventAttendanceMode weiter exakt zu pflegen, also penibel zwischen Offline, Online und Hybrid zu unterscheiden, ist für die meisten Websites seit Juni 2025 verschwendete Zeit. Google liest das Feld laut eigener aktueller Doku nicht mehr für die Rich-Result-Qualifikation aus, entscheidend ist allein, ob ein physischer Ort vorhanden ist. Wer ein Hybrid-Event betreibt, sollte trotzdem beide Orte angeben, aber wegen der Nutzer, nicht wegen eines Rankingeffekts, den es an dieser Stelle nicht mehr gibt.
Hybrid-Event mit Online-Anteil
Ein Hybrid-Event mit physischem Ort und zusätzlichem Livestream-Link bleibt qualifiziert, solange der physische Ort vollständig als Place mit PostalAddress angegeben ist. Der Streaming-Link selbst wirkt sich auf die Qualifikation nicht mehr aus, hilft aber weiterhin den Besuchern, die nicht vor Ort sein können.
So baust du valides Event-Markup
- Leg zuerst die drei Pflichtfelder fest: Titel, Startdatum mit Zeitzone, physische Adresse als
PlacemitPostalAddress. Ohne einen dieser drei Werte ist das Markup für Google nicht auswertbar. - Ergänze die empfohlenen Felder aus der Tabelle oben, mindestens
description,endDateundeventStatus. - Bei einem kostenpflichtigen Ticket trägst du
offersmitprice,priceCurrencyundvalidFromein. - Bette das fertige JSON-LD als
<script type="application/ld+json">im<head>oder<body>der jeweiligen Event-Seite ein, nicht als sichtbaren Text. - Prüfe das Ergebnis vor der Veröffentlichung mit Googles eigenem Rich Results Test, der Fehler und Warnungen pro Feld einzeln auflistet.
Wer diese Schritte nicht von Hand in JSON schreiben will, spart sich das Tippen mit dem SchemaValid Event-Schema-Generator: Formular ausfüllen, JSON-LD kopieren, fertig, ohne Konto und ohne dass die eingegebenen Daten den Browser verlassen.
Event Schema GeneratorErzeuge Event-JSON-LD für Veranstaltungen vor Ort, online und hybrid.Zum ToolHäufige Fehler bei Event-Schema-Markup
Die meisten Fehlermeldungen in der Search Console gehen auf zwei Ursachen zurück: eine falsch verschachtelte Adresse oder ein Event, das strukturell gar nicht mehr qualifiziert ist.
| Fehler | Ursache | Behebung |
|---|---|---|
| Adresse wird nicht erkannt | location zeigt direkt auf Felder statt auf Place → address → PostalAddress | Verschachtelung korrigieren, drei Ebenen einhalten |
| Event erscheint gar nicht erst | Rein virtuelles Event ohne physischen Ort seit Juni 2025 | Physischen Ort ergänzen oder Event bewusst ohne Rich-Result-Anspruch führen |
eventStatus fehlt bei Absage oder Verschiebung | Feld wird nach der Änderung im echten Leben nicht im Markup nachgezogen | eventStatus bei jeder Statusänderung aktiv setzen, nicht nur einmalig |
| Bild wird ignoriert | Auflösung unter 50.000 Pixel gesamt oder unpassendes Seitenverhältnis | Bild in mindestens einer der drei erlaubten Ratios (16:9, 4:3, 1:1) bereitstellen |
Am schnellsten findest du eine falsch verschachtelte Adresse mit dem Schema Validator, der die drei Ebenen location, address und PostalAddress einzeln auflistet, statt nur eine allgemeine Fehlermeldung zu zeigen.
Der Adressfehler ist dabei kein neues Problem. Schon 2022 berichtete Search Engine Land, dass die Search Console eine falsch modellierte location als eigenen Fehlertyp ausweist. Was sich seitdem geändert hat: Die Frage „online-only, ja oder nein“ war 2022 höchstens eine Warnung, heute führt sie direkt zur Nicht-Qualifikation. Dieselbe Struktur-Fehlerlogik gilt weiter, nur eine ihrer Konsequenzen ist seit Juni 2025 deutlich härter geworden.
