Inhaltsverzeichnis
- LodgingBusiness-Typen und Schema-Hierarchie
- checkinTime und checkoutTime korrekt einbinden
- HotelRoom: Zimmertypen strukturiert beschreiben
- amenityFeature und LocationFeatureSpecification
- Resort: Spezifische Properties und Besonderheiten
- Vollständiges JSON-LD-Beispiel: Luxushotel
- Häufige Fehler und wie du sie vermeidest
- Testen und in Google Search Console überwachen
In unserem Grundlagenartikel zu Accommodation Schema Markup haben wir Hotel, Hostel und Pension als @type vorgestellt. In dieser Vertiefung gehen wir tiefer: Wie beschreibst du einzelne Zimmertypen mit HotelRoom? Wie bindest du Checkin-Zeiten korrekt ein? Und welche amenityFeature-Properties erscheinen wirklich in den Google-Suchergebnissen?
1. LodgingBusiness-Typen und Schema-Hierarchie
LodgingBusiness ist ein Subtyp von LocalBusiness (→ Organization → Thing) und dient als Basis für alle Beherbergungsbetriebe. Google kennt mehrere Spezialisierungen:
Wähle immer den spezifischsten Typ — ein 5-Sterne-Resort schreibst du als @type: Resort, nicht nur als Hotel. Du kannst auch Arrays verwenden, um mehrere Typen zu kombinieren:
{
"@context": "https://schema.org",
"@type": ["Hotel", "Resort"],
"name": "Grand Spa & Resort Bad Reichenhall"
}
Diese Kombination signalisiert Google: Das Haus hat die Eigenschaften eines Hotels (Zimmer, Rezeption) und eines Resorts (weitläufige Anlage, Spa, Freizeit-Infrastruktur).
Alle LodgingBusiness-Untertypen erben die Properties von LocalBusiness — also name, address, telephone, openingHoursSpecification usw. Du musst diese Properties nicht doppelt definieren, kannst sie aber auf der Unterkunfts-Seite ergänzen.
2. checkinTime und checkoutTime korrekt einbinden
Diese beiden Properties sind exklusiv für LodgingBusiness — kein anderer LocalBusiness-Typ kennt sie. Google nutzt diese Daten direkt in den Hotel-Rich-Results und zeigt sie neben dem Buchungsmodul an.
{
"@type": "Hotel",
"name": "Stadthotel Erfurt",
"checkinTime": "15:00",
"checkoutTime": "11:00"
}
Das Format ist einfach: HH:MM im 24-Stunden-Format, ohne Sekunden. Wenn Check-in flexibel ist (z. B. ab 12:00 bis 22:00), nutze den frühesten möglichen Zeitpunkt:
{
"@type": "Hotel",
"checkinTime": "12:00",
"checkoutTime": "12:00"
}
Manche Hotels bieten Early-Check-in und Late-Check-out gegen Aufpreis. Diese Information lässt sich nicht direkt im Schema kodieren — du kannst sie jedoch in der description oder über ein FAQPage Schema auf der Detailseite ergänzen.
Kombiniert mit OpeningHours
Check-in-Zeiten und Rezeptionsöffnungszeiten sind zwei verschiedene Dinge. Die Rezeption kann rund um die Uhr geöffnet sein (openingHoursSpecification), während der Check-in erst ab 15:00 möglich ist. Beides im gleichen Schema-Block:
{
"@type": "Hotel",
"name": "Boutique Hotel Weimar",
"checkinTime": "15:00",
"checkoutTime": "11:00",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday","Sunday"
],
"opens": "00:00",
"closes": "23:59"
}
]
}
Mehr zur OpeningHoursSpecification findest du in unserem detaillierten Artikel dazu.
3. HotelRoom: Zimmertypen strukturiert beschreiben
HotelRoom ist ein Subtyp von Accommodation und ermöglicht es, einzelne Zimmertypen mit ihren Eigenschaften zu beschreiben. Google kann diese Daten nutzen, um bei Hotel-Suchanfragen Zimmerkategorien anzuzeigen.
Du bindest HotelRoom-Objekte über die Property containsPlace in dein Hotel-Schema ein:
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Hotel Residenz München",
"containsPlace": [
{
"@type": "HotelRoom",
"name": "Standard-Einzelzimmer",
"description": "Gemütliches Einzelzimmer mit Stadtblick, Flat-TV und kostenlosem WLAN.",
"bed": {
"@type": "BedDetails",
"typeOfBed": "SingleBed",
"numberOfBeds": 1
},
"occupancy": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 1
},
"floorLevel": "2-5",
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Klimaanlage",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Kostenfreies WLAN",
"value": true
}
]
},
{
"@type": "HotelRoom",
"name": "Deluxe-Doppelzimmer",
"description": "Großzügiges Doppelzimmer mit Parkettboden, Badewanne und Minibar.",
"bed": [
{
"@type": "BedDetails",
"typeOfBed": "DoubleBed",
"numberOfBeds": 1
}
],
"occupancy": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 2
},
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Minibar",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Badewanne",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Klimaanlage",
"value": true
}
]
}
]
}
BedDetails: Betttypen korrekt angeben
Das Schema.org-Vokabular kennt folgende Betttypen für typeOfBed:
| typeOfBed-Wert | Deutsch |
|---|---|
| SingleBed | Einzelbett |
| DoubleBed | Doppelbett (für 2 Personen) |
| TwinBed | Zwei getrennte Einzelbetten |
| KingBed | Kingsize-Bett |
| QueenBed | Queensize-Bett |
| SofaBed | Schlafsofa |
| CoachBed | Liege/Ausklappbett |
| BunkBed | Stockbett/Etagenbett |
4. amenityFeature und LocationFeatureSpecification
amenityFeature ist die wichtigste Property für Hotelausstattungsmerkmale. Sie akzeptiert LocationFeatureSpecification-Objekte — ein Subtyp von PropertyValue. Der strukturierte Ansatz ist wertvoller als ein Freitext, da Google die Werte maschinell auswerten kann.
{
"@type": "Hotel",
"name": "Wellness Hotel Schwarzwald",
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Schwimmbad",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Sauna",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Haustiere erlaubt",
"value": false
},
{
"@type": "LocationFeatureSpecification",
"name": "Parkplatz",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Kostenfreies WLAN",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Restaurant",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Bar",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Barrierefreiheit",
"value": true
}
]
}
Der value-Wert ist in der Regel true (Feature vorhanden) oder false (nicht vorhanden). Du kannst auch Textwerte verwenden, wenn das Feature eine Spezifikation hat:
{
"@type": "LocationFeatureSpecification",
"name": "Parkplatz",
"value": "kostenlos, 50 Plätze"
},
{
"@type": "LocationFeatureSpecification",
"name": "Frühstück",
"value": "inklusive, 07:00–10:30 Uhr"
}
Nutze amenityFeature sowohl auf der Hotel-Ebene (Gemeinschaftseinrichtungen) als auch auf der HotelRoom-Ebene (Zimmerausstattung). Google unterscheidet zwischen beiden Ebenen.
5. Resort: Spezifische Properties und Besonderheiten
Ein Resort unterscheidet sich von einem einfachen Hotel durch seine weitläufige Anlage und das integrierte Freizeit- und Wellness-Angebot. Schema.org hat dafür den Typ Resort, der alle Hotel-Properties erbt, aber speziell für Anlagen mit eigenem Sportangebot, Spa, Golfplatz oder Strand konzipiert ist.
Zusätzliche Properties, die für Resorts besonders relevant sind:
| Property | Verwendung beim Resort |
|---|---|
| amenityFeature | Golfplatz, Tennisplatz, Reiten, Spa, Beachbar |
| containsPlace | HotelRoom + SportsActivityLocation + Restaurant |
| geo | GeoCoordinates für exakte Lage (wichtig bei Resort-Anlagen) |
| hasMap | Link zu Lageplan der Resort-Anlage |
| numberOfRooms | Gesamtzahl Zimmer/Bungalows |
| petsAllowed | Boolean — Haustiere erlaubt? |
| starRating | Offizielle DEHOGA-Klassifizierung (1-5 Sterne) |
Ein Resort kann außerdem mit einem SportsActivityLocation Schema kombiniert werden, wenn der Sportbereich ein eigenständiges Angebot hat.
6. Vollständiges JSON-LD-Beispiel: Luxushotel mit Spa
Hier ist ein praxisnahes, vollständiges Beispiel für ein 4-Sterne-Stadthotel mit Spa-Bereich und drei Zimmertypen:
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Hotel Vier Jahreszeiten Potsdam",
"description": "4-Sterne-Hotel in zentraler Lage Potsdams mit Spa, Rooftop-Bar und hauseigenem Restaurant.",
"url": "https://www.hotel-vier-jahreszeiten-potsdam.de",
"telephone": "+49 331 9876543",
"email": "info@hotel-vier-jahreszeiten-potsdam.de",
"checkinTime": "15:00",
"checkoutTime": "11:00",
"numberOfRooms": 84,
"petsAllowed": false,
"starRating": {
"@type": "Rating",
"ratingValue": "4",
"bestRating": "5",
"worstRating": "1"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": 312,
"bestRating": "5",
"worstRating": "1"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "Brandenburger Straße 55",
"addressLocality": "Potsdam",
"postalCode": "14467",
"addressRegion": "Brandenburg",
"addressCountry": "DE"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.3952,
"longitude": 13.0598
},
"image": [
"https://www.hotel-vier-jahreszeiten-potsdam.de/images/exterior.jpg",
"https://www.hotel-vier-jahreszeiten-potsdam.de/images/lobby.jpg",
"https://www.hotel-vier-jahreszeiten-potsdam.de/images/spa.jpg"
],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday","Sunday"
],
"opens": "00:00",
"closes": "23:59"
}
],
"amenityFeature": [
{"@type": "LocationFeatureSpecification", "name": "Spa & Wellness", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Kostenfreies WLAN", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Restaurant", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Rooftop-Bar", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Fitness-Center", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Parkplatz", "value": "kostenpflichtig, Tiefgarage"},
{"@type": "LocationFeatureSpecification", "name": "E-Ladestation", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Barrierefreiheit", "value": true},
{"@type": "LocationFeatureSpecification", "name": "24h-Rezeption", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Concierge", "value": true}
],
"containsPlace": [
{
"@type": "HotelRoom",
"name": "Classic-Zimmer",
"description": "Komfortables Zimmer (22–25 m²) mit Stadtblick und Regendusche.",
"bed": {
"@type": "BedDetails",
"typeOfBed": "DoubleBed",
"numberOfBeds": 1
},
"occupancy": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 2
},
"amenityFeature": [
{"@type": "LocationFeatureSpecification", "name": "Klimaanlage", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Smart-TV", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Schreibtisch", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Safe", "value": true}
]
},
{
"@type": "HotelRoom",
"name": "Superior-Zimmer mit Parkblick",
"description": "Geräumiges Zimmer (28–32 m²) mit direktem Blick auf den Stadtpark.",
"bed": {
"@type": "BedDetails",
"typeOfBed": "KingBed",
"numberOfBeds": 1
},
"occupancy": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 2
},
"amenityFeature": [
{"@type": "LocationFeatureSpecification", "name": "Klimaanlage", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Smart-TV", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Minibar", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Bademantel & Hausschuhe", "value": true}
]
},
{
"@type": "HotelRoom",
"name": "Junior-Suite",
"description": "Großzügige Suite (45 m²) mit getrenntem Wohnbereich und freistehender Badewanne.",
"bed": {
"@type": "BedDetails",
"typeOfBed": "KingBed",
"numberOfBeds": 1
},
"occupancy": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 3
},
"amenityFeature": [
{"@type": "LocationFeatureSpecification", "name": "Freistehende Badewanne", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Spa-Zuggang inklusive", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Nespresso-Maschine", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Butler-Service", "value": true}
]
}
]
}
7. Häufige Fehler und wie du sie vermeidest
Fehler 1: starRating mit aggregateRating verwechseln
starRating = offizielle Klassifizierung (DEHOGA, HotelStars Union) — vergibt eine externe Institution.
aggregateRating = Durchschnitt aller Kundenbewertungen — kommt aus Gästefeedback.
Beide können und sollen gleichzeitig vorhanden sein, aber niemals vermischen.
Fehler 2: checkinTime als ISO 8601 DateTime
Falsch: "checkinTime": "2026-04-24T15:00:00"
Richtig: "checkinTime": "15:00"
Das Feld erwartet eine einfache Zeit-Zeichenkette, keine vollständige DateTime.
Fehler 3: amenityFeature als einfacher String
Falsch: "amenityFeature": "WLAN, Pool, Restaurant"
Richtig: Array von LocationFeatureSpecification-Objekten.
Google kann einfache Strings nicht maschinell auswerten.
Fehler 4: HotelRoom ohne containsPlace
HotelRoom-Objekte müssen über containsPlace mit dem Hotel verknüpft sein. Ein isoliertes HotelRoom-Schema auf einer separaten Zimmerseite ohne Eltern-Hotel-Referenz verliert den Kontext.
8. Testen und in Google Search Console überwachen
Bevor du das Schema live schaltest, teste es mit dem JSON-LD Structured Data Validator. Das Tool zeigt Fehler und Warnungen direkt an.
Nach dem Go-Live überwachst du dein Hotel-Schema in der Google Search Console unter Suchergebnisse → Hotelliste. Google zeigt dort:
- Wie viele Seiten mit Hotel-Schema-Markup erkannt wurden
- Welche Fehler die Validierung gefunden hat
- Wie oft das Hotel in den Hotel-Rich-Results erschienen ist
- Klickrate aus den Hotel-Rich-Results vs. organische Ergebnisse
Checkliste: LodgingBusiness Schema Markup
- ✓Spezifischster @type gewählt (Hotel, Resort, BedAndBreakfast...)
- ✓checkinTime und checkoutTime als HH:MM formatiert
- ✓amenityFeature als Array von LocationFeatureSpecification
- ✓HotelRoom-Objekte über containsPlace verknüpft
- ✓starRating und aggregateRating klar getrennt
- ✓geo-Koordinaten für präzise Kartendarstellung
- ✓Mindestens 3 image-URLs in der richtigen Auflösung
- ✓Validierung mit JSON-LD Validator durchgeführt
Hotel-Website kostenlos analysieren
Unser kostenloser SEO-Checker erkennt, ob dein LodgingBusiness Schema korrekt implementiert ist und welche Properties fehlen.
Jetzt kostenlos prüfen →