In dieser Anleitung wird beschrieben, wie Sie Ihre Website mit Mikrodaten und Navigationsattributen taggen, damit der Crawler für die Preisgenauigkeit von Google automatisch durch Ihren Buchungstrichter navigieren und Ihre Zimmerpreise überprüfen kann.
Die vollständige technische Spezifikation aller verfügbaren Attribute für strukturierte Daten (einschließlich detaillierter Steuern, Gebühren und Zimmerdetails) finden Sie in der Referenz für strukturierte Daten für Hotelpreise.
1. Navigation implementieren (data-nav-*)
Verwenden Sie benutzerdefinierte data-nav-*-HTML-Attribute, um interaktive Elemente zu taggen und Trichterphasen zu deklarieren, damit der Crawler Ihren Buchungsablauf durchlaufen kann.
1.1 Deklaration der Phase oben auf der Seite (data-nav-stage)
Auf jeder Seite in Ihrem Buchungstrichter, auf der Preise angezeigt werden, sollte die
Phase deklariert werden. Fügen Sie dazu das Attribut `data-nav-stage` dem <body> Tag oder einem primären Wrapper-Tag (z. B.
<div>, <section>, oder <main>) hinzu. So erfährt der Crawler, welche Phase des
Buchungsablaufs aktiv ist, und Sie können später leichter Fehler beheben.
data-nav-stage(Empfohlen) : Deklariert die aktive Trichterphase. Es ist zwar nicht zwingend erforderlich, Namen anzugeben (z. B."landing","room-selection","checkout","ready-for-payment"), aber so lässt sich die aktive Phase bei der Validierung leichter identifizieren.
1.2 Indikator für die letzte Phase (data-nav-stage-final)
Fügen Sie auf der letzten Seite, auf der Preise angezeigt werden, bevor der Nutzer personenbezogene Daten oder Zahlungsinformationen eingibt, das Flag für die letzte Phase neben einer Phasenangabe (z. B. data-nav-stage="ready-for-payment") zum Container oben auf der Seite hinzu.
data-nav-stage-final(Optional): Setzen Sie das Attribut auf der letzten Preisseite vor der Zahlung auf"true"(data-nav-stage-final="true"). So wird dem Crawler mitgeteilt, dass diese Seite die letzte Seite ist und der Preis zur Validierung extrahiert werden kann. Diese Seite muss die Preisstruktur mit Mikrodaten-Tagging enthalten.
1.3 Attribute für die Interaktion auf dem kritischen Pfad
Taggen Sie auf Zwischenseiten die interaktiven Elemente (Schaltflächen oder Links), die den Nutzer auf dem kritischen Pfad der Buchung weiterleiten. Wenn auf derselben Seite mehrere Aktionen erforderlich sind, geben Sie die Ausführungsreihenfolge an. Der Crawler folgt der angegebenen Reihenfolge, bevor er versucht, den Preis auf der letzten Seite zu extrahieren.
| Attribut | Erforderlicher Wert | Zweck |
|---|---|---|
data-nav-criticalpath |
"true" |
Markiert die obligatorische Schaltfläche/den obligatorischen Link, auf die/den der Crawler klicken muss, um fortzufahren. |
data-nav-interactiontype |
"CLICK" |
Gibt an, dass eine Klickaktion erforderlich ist, um den Ablauf fortzusetzen. |
data-nav-interactionorder |
"1", "2", ... |
Gibt die Ausführungsreihenfolge an, wenn auf derselben Seite mehrere Aktionen erforderlich sind. |
Minimales Navigationsbeispiel
<button data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="1">
Continue
</button>
2. Preisangabe (Mikrodaten)
Taggen Sie auf der letzten zugänglichen Seite Ihres Buchungstrichters (vor der Eingabe personenbezogener Daten oder Zahlungsinformationen) das Preisangebot (ein Preisangebot) mit Mikrodaten-Tags. Auf der Seite sollte nur ein Angebot getaggt sein, das angibt, welchen Preis der Crawler extrahiert. Dieser Preis muss dem Preis entsprechen, der auf Google ausgewählt wurde, bevor der Nutzer auf Ihre Website gelangt. Weitere Informationen zum Definieren von Landingpage-Parametern, siehe Variablen und Bedingungen.
Google unterstützt die vollständige Hierarchie in der Referenz für strukturierte Daten für Hotelpreise (einschließlich detaillierter Basispreise, einzelner Steuern, Gebühren und Zimmerdetails). Google akzeptiert aber auch eine vereinfachte Struktur für strukturierte Daten , um Ihnen das Taggen von Hotelpreisen auf Ihren Webseiten zu erleichtern.
Der Gesamtpreis für den Aufenthalt ist für verfügbare Preise obligatorisch. Wenn ein Reiseplan oder ein Zimmer nicht verfügbar oder ausverkauft ist, deklarieren Sie https://schema.org/SoldOut unter makesOffer ohne priceSpecification:
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
<meta itemprop="availability" content="https://schema.org/SoldOut"/>
Sold Out
</div>
Weitere Informationen finden Sie in der
availability Spezifikation des Attributs.
2.1 Vereinfachte Struktur für strukturierte Daten
Um das Taggen auf Ihren Buchungsseiten zu vereinfachen, müssen Sie nur den Hotel- und Reservierungscontainer der obersten Ebene
, die Aufenthaltsdaten (YYYY-MM-DD), die Belegung und ein einzelnes Angebot
mit dem Gesamtpreis für den Aufenthalt deklarieren:
Hotel / LodgingReservation (Root Container)
├── identifier [Meta/Attribute] Hotel ID
├── name [Visible text] Hotel Name
├── checkinTime / checkoutTime [Visible text with YYYY-MM-DD in content="..."] Stay Dates
├── numAdults / numChildren [Visible text] Occupancy
└── makesOffer (Offer)
└── priceSpecification (CompoundPriceSpecification)
├── priceCurrency [ISO Code, such as "USD"] Currency
└── price [Visible text] Total Stay Price (Taxes & Fees Included)
2.2 Wichtige Regeln zur Sichtbarkeit
Damit Preise zuverlässig extrahiert werden können, müssen Sie beim Taggen Ihres HTML-Codes die folgenden Regeln zur Sichtbarkeit beachten:
- Gesamtpreis für den Aufenthalt muss sichtbar sein: Taggen Sie den sichtbaren Preis direkt
auf der Seite mit
itemprop="price". Verwenden Sie für den Preis keine verborgenen Metadaten (<meta>) oder Attributwerte (value="..."odercontent="..."). - Maschinenlesbare Aufenthaltsdaten:Taggen Sie die sichtbaren Aufenthaltsdaten so weit wie möglich auf der Seite. Bei Bedarf können Sie das Attribut
content="..."für<span>Elemente verwenden, um ein StandardformatYYYY-MM-DDanzugeben und gleichzeitig das sichtbare Datum anzuzeigen (z. B.<span itemprop="checkinTime" content="2026-08-10">August 10, 2026</span>). - Nicht sichtbare Felder: Für Felder, die nicht direkt auf der Seite angezeigt werden
(z. B. die Hotel-ID oder der Währungscode), können Sie
<meta>Tags odercontent="..."Attribute verwenden.
3. Beispiele
In den folgenden End-to-End-Beispielen wird gezeigt, wie Sie Zwischenschritte im Trichter und endgültige Checkout-Seiten mit Navigationsattributen und Mikrodaten taggen.
Beispiel 1: Zwischenseite mit anklickbarer Schaltfläche
Das folgende Snippet zeigt eine Zwischenseite zur Zimmerauswahl (room-selection) mit einer einzelnen Schaltfläche für die Aktion auf dem kritischen Pfad, die getaggt ist, um den Ablauf fortzusetzen:
<body data-nav-stage="room-selection">
<!-- Main page content -->
<button class="btn-continue"
data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="1">
Book This Room
</button>
</body>
Beispiel 2: Letzte Preisseite mit Phasenangabe und minimalen Mikrodaten
Das folgende Snippet zeigt die letzte Seite vor der Zahlung
(ready-for-payment), auf der data-nav-stage-final="true" für den
Wrapper deklariert ist und der maßgebliche Preis für den Aufenthalt sichtbar ist:
<body data-nav-stage="ready-for-payment" data-nav-stage-final="true">
<!-- Root Container: Co-Typed Hotel & LodgingReservation -->
<div itemscope itemtype="https://schema.org/Hotel https://schema.org/LodgingReservation">
<!-- Hotel Identifier (Can be hidden meta tag) -->
<meta itemprop="identifier" content="grand-view-001" />
<h1 itemprop="name">Grand View Hotel</h1>
<!-- Visible Stay Dates & Occupancy -->
<p>
Check-in: <span itemprop="checkinTime" content="2026-08-10">Aug 10, 2026</span> |
Check-out: <span itemprop="checkoutTime" content="2026-08-15">Aug 15, 2026</span> |
Guests: <span itemprop="numAdults">2</span> Adults, <span itemprop="numChildren">1</span> Child
</p>
<!-- Single Minimal Rate Offer -->
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<p class="summary-total">
Total Stay Price (Taxes & Fees Included):
<!-- 3-letter ISO Currency Code (can use content="" for hiding the 3-letter currency code while displaying a symbol) -->
<span itemprop="priceCurrency" content="EUR">€</span>
<!-- VISIBLE TOTAL STAY PRICE (Directly wrapped, no hidden attributes) -->
<span itemprop="price">650.00</span>
</p>
</div>
</div>
</div>
</body>
4. Implementierung überprüfen
Bevor Sie Ihre Änderungen bereitstellen, testen Sie Ihr Markup und das Navigationstagging, um sicherzustellen, dass der Crawler Ihre Preisdaten erfolgreich validieren kann.
4.1 Preis- und Mikrodatenstruktur überprüfen
Mit dem
Schema.org Validator
oder dem
Test für Rich-Suchergebnisse von Google
können Sie die Mikrodaten prüfen, die aus Ihrer Seiten-URL oder Ihrem HTML-Inhalt extrahiert wurden. Vergleichen Sie
die extrahierten Felder mit der Spezifikation in der
Referenz für strukturierte Daten für Hotelpreise,
und prüfen Sie, ob Ihr itemprop="price" Element ein sichtbares Element auf der Seite ist.
4.2 Navigation überprüfen
Um Ihre Tags zu überprüfen, öffnen Sie die Browser-Entwicklertools in Google Chrome. Klicken Sie dazu mit der rechten Maustaste auf Ihre Webseite und wählen Sie Untersuchen aus (oder drücken Sie F12), um das HTML-DOM zu prüfen.
Prüfen Sie, ob Ihre Implementierung die folgenden Anforderungen an die Navigation erfüllt:
- Phase oben auf der Seite deklariert: Jede Seite im Buchungsablauf
enthält
data-nav-stage="..."im<body>-Tag oder im Wrapper-Tag der obersten Ebene. Die letzte Preisseite enthältdata-nav-stage-final="true". - Kritischer Pfad vollständig: Die interaktiven
Elemente (Schaltflächen oder Links) auf Zwischenseiten sind mit
data-nav-criticalpath="true",data-nav-interactiontypeunddata-nav-interactionordermarkiert. Wenn mehrere Aktionen vorhanden sind, prüfen Sie, ob die Ordnungszahlen korrekt festgelegt sind.
4.3 Sichtbarkeit und Markup-Qualität überprüfen
Prüfen Sie, ob Ihre Mikrodaten alle Anforderungen an Struktur und Sichtbarkeit erfüllen (weitere Informationen finden Sie unter Vereinfachte Struktur für strukturierte Daten und Wichtige Regeln zur Sichtbarkeit):
- Strikte Hierarchie: Ihr Markup muss der erforderlichen Verschachtelungsreihenfolge folgen (entweder der vereinfachten Struktur oder der vollständigen Spezifikation der Referenz für strukturierte Daten ). Elemente, die in falscher Reihenfolge oder nicht korrekt verschachtelt sind, werden möglicherweise vom Crawler nicht erfasst.
- Sichtbarer Preis:
itemprop="price"umschließt direkt den sichtbaren Preis ohne verborgene Attribute oder<meta>Tags. - Maschinenlesbare Aufenthaltsdaten:
checkinTimeundcheckoutTimeenthalten das StandardformatYYYY-MM-DD(optional mitcontent="..."-Attributen). - Direktes Taggen von Elementen:Alle sichtbaren Attribute (Hotelname, Aufenthaltsdaten, Belegung) umschließen sichtbaren Text auf der Seite.