Wer nach einem Hotelzimmer sucht, will auf einen Blick die Sternekategorie, Ausstattung und Lage sehen. Google zeigt bei Unterkunft-Suchanfragen zunehmend Rich Results mit Bildern, Bewertungen und Buchungslinks — aber nur wenn die Website die richtigen strukturierten Daten bereitstellt. Das Accommodation Schema Markup ermöglicht Hotels, Hostels, Pensionen und Ferienwohnungen, diese Darstellung zu nutzen.
Dieser Artikel erklärt die Schema.org-Typen für Unterkünfte, zeigt welche Properties für Hotels und kleine Pensionen besonders wichtig sind, und enthält vollständige JSON-LD-Beispiele für verschiedene Unterkunftstypen.
Die Schema.org-Hierarchie für Unterkünfte
Schema.org bietet eine klare Struktur für Unterkunftsbetriebe. Der Oberbegriff ist Accommodation, der von Place erbt. Für kommerzielle Beherbergungsbetriebe ist LodgingBusiness der wichtigste Typ:
- Accommodation — Oberkategorie für alle Unterkunftsarten (erbt von Place)
- LodgingBusiness → Hotel, Pension, Hostel, alle kommerziellen Unterkünfte (erbt von LocalBusiness)
- Hotel → Klassisches Hotel (Untertyp von LodgingBusiness)
- Hostel → Jugendherberge, Backpacker-Hostel
- BedAndBreakfast → Pension, Bed & Breakfast, Gästehaus
- Motel → Motel (seltener in Deutschland)
- Resort → Ferienresort, Clubanlage
- CampingPitch → Campingplatz (von Accommodation)
Wähle immer den spezifischsten Typ. Ein Stadthotel wird als Hotel ausgezeichnet, eine kleine Pension am Land als BedAndBreakfast, ein Rucksackquartier als Hostel. Ferienwohnungen ohne Reception können mit Accommodation oder LodgingBusiness ausgezeichnet werden.
Die wichtigsten Properties für LodgingBusiness
LodgingBusiness erbt alle Standard-Properties von LocalBusiness und ergänzt sie um unterkunftsspezifische Felder:
Unterkunft-spezifische Properties
- starRating — Offizielle Sternebewertung als
Rating-Objekt (nicht zu verwechseln mit Kundenbewertungen) - numberOfRooms — Anzahl der Zimmer als
QuantitativeValueoder einfache Zahl - amenityFeature — Ausstattungsmerkmale als Array von
LocationFeatureSpecification-Objekten - checkinTime — Frühester Check-in als Zeit (z.B.
"14:00") - checkoutTime — Spätester Check-out als Zeit (z.B.
"11:00") - petsAllowed — Haustiere erlaubt? (
true/false) - audience — Zielgruppe (z.B. Familien, Geschäftsreisende)
amenityFeature: Ausstattung strukturiert beschreiben
Die Property amenityFeature ist besonders wertvoll, weil Google diese Informationen in erweiterten Suchergebnissen anzeigen kann. Jedes Ausstattungsmerkmal wird als LocationFeatureSpecification-Objekt angegeben:
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "WLAN",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Kostenloser Parkplatz",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Haustiere erlaubt",
"value": false
},
{
"@type": "LocationFeatureSpecification",
"name": "Schwimmbad",
"value": true
}
]
starRating: Offizielle Sterne einbinden
Die Property starRating bezieht sich auf die offizielle Klassifizierung durch DEHOGA oder einen anderen Klassifizierungsverband — nicht auf Kundenbewertungen. Kundenbewertungen gehören in aggregateRating:
"starRating": {
"@type": "Rating",
"ratingValue": "4"
}
Vollständiges JSON-LD-Beispiel: Stadthotel
Hier ist ein vollständiges Markup für ein Vier-Sterne-Hotel in Berlin. Alle wichtigen Properties sind enthalten:
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Hotel Berliner Hof",
"description": "Vier-Sterne-Hotel im Herzen Berlins. 85 modern eingerichtete Zimmer, kostenloses WLAN, Frühstücksrestaurant und Fitnessraum. Ideale Lage nahe Kurfürstendamm.",
"url": "https://www.hotel-berliner-hof.de",
"telephone": "+4930123456789",
"email": "info@hotel-berliner-hof.de",
"starRating": {
"@type": "Rating",
"ratingValue": "4"
},
"numberOfRooms": {
"@type": "QuantitativeValue",
"value": 85
},
"checkinTime": "15:00",
"checkoutTime": "11:00",
"petsAllowed": false,
"priceRange": "€€€",
"address": {
"@type": "PostalAddress",
"streetAddress": "Kurfürstendamm 120",
"addressLocality": "Berlin",
"postalCode": "10709",
"addressRegion": "BE",
"addressCountry": "DE"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.5034,
"longitude": 13.3286
},
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "Kostenloses WLAN", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Frühstücksrestaurant", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Fitnessraum", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "24h Rezeption", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Gepäckaufbewahrung", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Haustiere erlaubt", "value": false },
{ "@type": "LocationFeatureSpecification", "name": "Klimaanlage", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Parkplatz", "value": false }
],
"image": "https://www.hotel-berliner-hof.de/images/hotel-aussenansicht.jpg",
"hasMap": "https://maps.google.com/?q=Kurfürstendamm+120+Berlin",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.4",
"reviewCount": "523",
"bestRating": "5",
"worstRating": "1"
}
}
JSON-LD-Beispiel: BedAndBreakfast (Pension)
Für kleine Pensionen, Gästehäuser und Bed-&-Breakfast-Betriebe ist BedAndBreakfast der richtige Typ. Hier sind oft persönlichere Details wie Familiengeführt und Frühstück inklusive relevant:
{
"@context": "https://schema.org",
"@type": "BedAndBreakfast",
"name": "Pension Seebrise",
"description": "Familiengeführte Pension direkt am Bodensee. Frühstück inklusive, ruhige Zimmer mit Seeblick, kostenloser Parkplatz und Fahrradverleih.",
"url": "https://www.pension-seebrise.de",
"telephone": "+4975312345678",
"email": "info@pension-seebrise.de",
"numberOfRooms": 12,
"checkinTime": "14:00",
"checkoutTime": "10:30",
"petsAllowed": true,
"priceRange": "€€",
"address": {
"@type": "PostalAddress",
"streetAddress": "Seestraße 28",
"addressLocality": "Konstanz",
"postalCode": "78462",
"addressRegion": "BW",
"addressCountry": "DE"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 47.6779,
"longitude": 9.1732
},
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "Frühstück inklusive", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Kostenloser Parkplatz", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Fahrradverleih", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "WLAN", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Haustiere erlaubt", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Nichtraucherzimmer", "value": true }
],
"image": "https://www.pension-seebrise.de/images/pension-garten.jpg",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "97",
"bestRating": "5",
"worstRating": "1"
}
}
JSON-LD-Beispiel: Hostel
Für Jugendherbergen und Backpacker-Hostels wird der Typ Hostel verwendet. Wichtige Merkmale hier sind oft Gemeinschaftsküche, Schlafsäle und günstige Preisklasse:
{
"@context": "https://schema.org",
"@type": "Hostel",
"name": "Urban Hostel Hamburg",
"description": "Zentrales Hostel in Hamburg-Altstadt. Gemischte Schlafsäle und Privatbelegung, gemeinsame Küche, Gepäckraum, 24h Check-in.",
"url": "https://www.urban-hostel-hamburg.de",
"telephone": "+494098765432",
"email": "hallo@urban-hostel-hamburg.de",
"checkinTime": "14:00",
"checkoutTime": "11:00",
"petsAllowed": false,
"priceRange": "€",
"address": {
"@type": "PostalAddress",
"streetAddress": "Steinstraße 7",
"addressLocality": "Hamburg",
"postalCode": "20095",
"addressCountry": "DE"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 53.5480,
"longitude": 10.0090
},
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "24h Check-in", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Gemeinschaftsküche", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Schließfächer", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "WLAN", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Gepäckaufbewahrung", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Gemeinsames Badezimmer", "value": true }
],
"image": "https://www.urban-hostel-hamburg.de/images/hostel-common.jpg",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.3",
"reviewCount": "412",
"bestRating": "5",
"worstRating": "1"
}
}
Einzelne Zimmer auszeichnen: Accommodation
Hotels, die einzelne Zimmerkategorien für Google hervorheben möchten, können zusätzlich den Typ Accommodation für einzelne Zimmer verwenden. Das ist besonders sinnvoll für Boutiquehotels mit wenigen, sehr unterschiedlichen Zimmertypen. Verknüpfe die Zimmer über die Property containsPlace mit dem Hotel:
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Boutique Hotel Alte Post",
"url": "https://www.boutique-hotel-alte-post.de",
"containsPlace": [
{
"@type": "HotelRoom",
"name": "Deluxe Zimmer mit Balkon",
"description": "Geräumiges Zimmer (32 m²) mit Balkon und Bergblick. Kingsize-Bett, Marmorbad, Nespresso-Maschine.",
"numberOfRooms": 6,
"bed": {
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "Kingsize-Bett"
},
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "Balkon", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Bergblick", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Nespresso", "value": true }
]
},
{
"@type": "HotelRoom",
"name": "Standardzimmer",
"description": "Gemütliches Zimmer (22 m²) mit Doppelbett und Duschbad.",
"numberOfRooms": 12,
"bed": {
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "Doppelbett"
}
}
]
}
Für Ferienwohnungen: Apartment-Schema
Ferienwohnungen ohne Rezeptionsbetrieb passen weder zu Hotel noch zu BedAndBreakfast. Hier empfiehlt sich der Typ Apartment (von Accommodation) oder VacationRental:
{
"@context": "https://schema.org",
"@type": "Apartment",
"name": "Ferienwohnung Meerblick",
"description": "Schöne 2-Zimmer-Ferienwohnung auf Sylt mit direktem Meerblick. 65 m², komplett ausgestattet, für 4 Personen.",
"url": "https://www.ferienwohnung-sylt-meerblick.de",
"telephone": "+494651123456",
"numberOfRooms": 2,
"floorSize": {
"@type": "QuantitativeValue",
"value": 65,
"unitCode": "MTK"
},
"occupancy": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 4
},
"petsAllowed": false,
"address": {
"@type": "PostalAddress",
"streetAddress": "Strandpromenade 15",
"addressLocality": "Westerland",
"postalCode": "25980",
"addressCountry": "DE"
},
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "Meerblick", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Vollausgestattete Küche", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "WLAN", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Spülmaschine", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Waschmaschine", "value": true }
]
}
Häufige Fehler beim Accommodation Schema
starRating mit Kundenbewertungen verwechseln
Ein klassischer Fehler: starRating und aggregateRating werden vertauscht. starRating ist die offizielle DEHOGA-Klassifizierung (1–5 Sterne). aggregateRating sind die Kundenbewertungen (z.B. 4,3 von 5 auf Basis von 312 Bewertungen). Beide können gleichzeitig vorhanden sein, aber nie verwechselt werden.
checkinTime und checkoutTime als ISO 8601
Die Zeiten werden als einfache Time-Strings angegeben, nicht als ISO 8601 DateTime. Schreibe also "15:00" statt "2026-04-24T15:00:00+02:00". Einige Implementierungen verwenden fälschlicherweise das komplette Datumsformat.
Fehlende Adresse
Für lokale Sichtbarkeit ist die vollständige address mit PostalAddress zwingend erforderlich. Ohne Adresse kann Google die Unterkunft nicht in lokalen Suchergebnissen und Google Maps einbinden.
numberOfRooms als einfache Zahl statt QuantitativeValue
Schema.org akzeptiert für numberOfRooms sowohl eine einfache Zahl ("numberOfRooms": 85) als auch ein QuantitativeValue-Objekt. Für Hotels empfiehlt sich das Objekt, weil es semantisch präziser ist und zukünftige Erweiterungen erlaubt.
Structured Data testen und validieren
Nach der Implementierung des Accommodation-Schemas prüfe es mit dem JSON-LD Structured Data Validator. Achte besonders auf:
- Ist
@typekorrekt gesetzt (Hotel, BedAndBreakfast, Hostel)? - Enthält
addressalle Pflichtfelder (streetAddress, addressLocality, postalCode, addressCountry)? - Sind
checkinTimeundcheckoutTimeim richtigen Format (HH:MM)? - Werden
starRatingundaggregateRatingkorrekt unterschieden? - Hat jedes
amenityFeature-Objekt den TypLocationFeatureSpecification?
Tipp: Verwende unseren Schema-Markup-Generator für lokale Unternehmen, um die Basis-Properties schnell zu erfassen. Das resultierende LocalBusiness-Markup kannst du dann um die hotelspezifischen Properties erweitern.
Fazit: Accommodation Schema richtig einsetzen
Schema Markup für Unterkünfte lohnt sich besonders für kleine bis mittlere Betriebe, die in direkter Konkurrenz zu Buchungsportalen wie Booking.com oder TripAdvisor stehen. Mit den richtigen strukturierten Daten kann das eigene Google-Suchergebnis mit Sternebewertungen, Ausstattungsmerkmalen und Check-in/Check-out-Zeiten angereichert werden — was die Klickrate (CTR) deutlich verbessert.
Die wichtigsten Punkte im Überblick:
- Verwende den spezifischsten Typ:
Hotel,BedAndBreakfast,HosteloderResort - Trage
starRatingfür offizielle Sterneklassifizierung ein - Nutze
amenityFeaturemitLocationFeatureSpecificationfür Ausstattungsmerkmale - Gib
checkinTimeundcheckoutTimeimmer an - Trenne sauber zwischen
starRating(Klassifizierung) undaggregateRating(Kundenbewertungen) - Füge
geo-Koordinaten für lokale Sichtbarkeit hinzu
Mehr zur Umsetzung von Bewertungs-Schema findest du im Artikel über AggregateRating Schema Markup vertieft. Wer Öffnungszeiten für das Restaurant oder den Wellnessbereich einbinden möchte, findet die Details im Artikel OpeningHoursSpecification Schema Markup. Als Grundlage empfiehlt sich die vollständige LocalBusiness Schema Markup Anleitung.