Z tego przewodnika dowiesz się, jak otagować witrynę za pomocą mikrodanych i atrybutów nawigacji, aby robot sprawdzający dokładność cen w Google mógł automatycznie poruszać się po ścieżce rezerwacji i weryfikować stawki za pokój.
Pełną specyfikację techniczną wszystkich dostępnych właściwości danych strukturalnych (w tym wyszczególnionych podatków, opłat i szczegółów pokoju) znajdziesz w artykule Dane strukturalne dotyczące cen hoteli.
1. Implementacja nawigacji (data-nav-*)
Użyj niestandardowych atrybutów HTML data-nav-*, aby oznaczyć elementy interaktywne i zadeklarować etapy ścieżki, dzięki czemu robot będzie mógł poruszać się po ścieżce rezerwacji.
1.1 Deklaracja etapu na początku strony (data-nav-stage)
Każda strona w ścieżce rezerwacji, na której wyświetlają się ceny, powinna deklarować swój
etap. Deklaracja powinna być dołączona do tagu <body> lub głównego tagu kontenera (np.
<div>, <section>, lub <main>). Dzięki temu robot wie, który etap
ścieżki rezerwacji jest aktywny, co ułatwia rozwiązywanie problemów w przyszłości.
data-nav-stage(zalecane): deklaruje aktywny etap ścieżki. Chociaż nie jest to bezwzględnie wymagane, określenie nazw (np."landing","room-selection","checkout","ready-for-payment") pomaga zidentyfikować aktywny etap podczas sprawdzania poprawności.
1.2 Wskaźnik etapu końcowego (data-nav-stage-final)
Na ostatniej stronie, na której wyświetlają się ceny przed wprowadzeniem danych osobowych lub płatności przez użytkownika, dodaj flagę etapu końcowego do kontenera na początku strony wraz z deklaracją etapu (np. data-nav-stage="ready-for-payment").
data-nav-stage-final(opcjonalne): ustaw wartość"true"(data-nav-stage-final="true") na ostatniej stronie z ceną przed płatnością. Informuje to robota, że ta strona jest ostatnią i można z niej wyodrębnić cenę na potrzeby weryfikacji. Ta strona musi zawierać strukturę cen z tagami mikrodanych.
1.3 Atrybuty interakcji na ścieżce krytycznej
Na stronach pośrednich otaguj elementy interaktywne (przyciski lub linki), które przenoszą użytkownika na ścieżkę krytyczną rezerwacji. Jeśli na tej samej stronie wymaganych jest kilka działań, określ kolejność ich wykonywania. Robot będzie postępował zgodnie z określoną kolejnością, zanim spróbuje wyodrębnić cenę na ostatniej stronie.
| Atrybut | Wymagana wartość | Cel |
|---|---|---|
data-nav-criticalpath |
"true" |
Oznacza obowiązkowy przycisk lub link, który robot musi kliknąć, aby przejść dalej. |
data-nav-interactiontype |
"CLICK" |
Deklaruje, że do przejścia dalej wymagane jest kliknięcie. |
data-nav-interactionorder |
"1", "2", ... |
Deklaruje kolejność wykonywania działań, jeśli na tej samej stronie wymaganych jest kilka działań. |
Minimalny przykład nawigacji
<button data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="1">
Continue
</button>
2. Deklaracja ceny (mikrodane)
Na ostatniej dostępnej stronie ścieżki rezerwacji (przed wprowadzeniem danych osobowych lub płatności) otaguj ofertę cenową (jedną ofertę cenową) za pomocą tagów mikrodanych. Na stronie powinien być otagowany tylko 1 produkt, który wskazuje, jaką cenę ma wyodrębnić robot. Cena ta powinna odpowiadać cenie wybranej w Google, zanim użytkownik trafi na Twoją stronę. Więcej informacji o definiowaniu parametrów strony docelowej znajdziesz w sekcji Zobacz Zmienne i warunki.
Google w pełni obsługuje całą hierarchię w artykule Dane strukturalne dotyczące cen hoteli (w tym wyszczególnione stawki podstawowe, poszczególne podatki, opłaty i szczegóły pokoju), ale akceptuje też uproszczone drzewo danych strukturalnych , aby ułatwić Ci oznaczanie cen hoteli na stronach internetowych.
Łączna cena pobytu jest obowiązkowa w przypadku dostępnych cen. Jeśli plan podróży lub pokój jest niedostępny lub wyprzedany, zadeklaruj https://schema.org/SoldOut w sekcji makesOffer bez priceSpecification:
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
<meta itemprop="availability" content="https://schema.org/SoldOut"/>
Sold Out
</div>
Więcej informacji znajdziesz w
availability specyfikacji właściwości.
2.1 Uproszczone drzewo danych strukturalnych
Aby uprościć oznaczanie na stronach rezerwacji, musisz tylko zadeklarować główny
kontener hotelu i rezerwacji, daty pobytu (YYYY-MM-DD), liczbę osób i jedną
ofertę zawierającą łączną cenę pobytu:
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 Krytyczne reguły widoczności
Aby zapewnić niezawodne wyodrębnianie cen, podczas oznaczania kodu HTML przestrzegaj tych reguł widoczności:
- Łączna cena pobytu musi być widoczna: otaguj widoczną cenę bezpośrednio
na stronie za pomocą
itemprop="price". Nie używaj ukrytych metadanych (<meta>) ani wartości atrybutów (value="..."lubcontent="...") dla ceny. - Daty pobytu czytelne dla maszyn: otaguj widoczne daty pobytu na stronie w jak największym stopniu. W razie potrzeby możesz użyć atrybutu
content="..."w elementach<span>, aby podać standardowy formatYYYY-MM-DDpodczas wyświetlania widocznej daty (np.<span itemprop="checkinTime" content="2026-08-10">August 10, 2026</span>). - Pola niewidoczne: pola, które nie są wyświetlane bezpośrednio na stronie
(np. identyfikator hotelu lub kod waluty), mogą używać tagów
<meta>lubcontent="..."atrybutów.
3. Przykłady
Poniższe przykłady kompleksowe pokazują, jak otagować pośrednie etapy ścieżki i ostatnie strony płatności za pomocą atrybutów nawigacji i mikrodanych.
Przykład 1. Strona pośrednia z przyciskiem, który można kliknąć
Poniższy fragment kodu przedstawia pośrednią stronę wyboru pokoju (room-selection) z jednym przyciskiem polecenia na ścieżce krytycznej, który jest otagowany w celu przejścia dalej:
<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>
Przykład 2. Ostatnia strona z ceną ze wskaźnikiem etapu i minimalnymi mikrodanymi
Poniższy fragment kodu przedstawia ostatnią stronę przed płatnością
(ready-for-payment), na której w kontenerze zadeklarowano data-nav-stage-final="true", a cena pobytu jest widoczna:
<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. Sprawdzanie poprawności implementacji
Zanim wdrożysz zmiany, przetestuj tagi znaczników i nawigacji, aby upewnić się, że robot może prawidłowo sprawdzić dane o cenach.
4.1 Sprawdzanie struktury ceny i mikrodanych
Aby sprawdzić mikrodane wyodrębnione z adresu URL strony lub treści HTML, możesz użyć narzędzia do sprawdzania schematów Schema.org lub testu wyników z elementami rozszerzonymi Google. Sprawdź
wyodrębnione pola z specyfikacją w
artykule Dane strukturalne dotyczące cen hoteli,
i upewnij się, że element itemprop="price" jest widoczny na stronie.
4.2 Sprawdzanie nawigacji
Aby sprawdzić tagi, otwórz Narzędzia dla programistów w przeglądarce w Google Chrome. Kliknij prawym przyciskiem myszy stronę i wybierz Zbadaj (lub naciśnij F12), aby sprawdzić kod HTML DOM.
Upewnij się, że implementacja spełnia te wymagania dotyczące nawigacji:
- Zadeklarowano etap na początku strony: każda strona w ścieżce rezerwacji
zawiera
data-nav-stage="..."w tagu<body>lub głównym tagu kontenera, a ostatnia strona z ceną zawieradata-nav-stage-final="true". - Ścieżka krytyczna jest kompletna: strony pośrednie mają elementy interaktywne (przyciski lub linki) oznaczone za pomocą
data-nav-criticalpath="true",data-nav-interactiontypeidata-nav-interactionorder. Jeśli występuje kilka działań, upewnij się, że numery kolejności są prawidłowo ustawione.
4.3 Sprawdzanie widoczności i jakości znaczników
Upewnij się, że mikrodane spełniają wszystkie wymagania dotyczące struktury i widoczności (szczegółowe informacje znajdziesz w sekcjach Uproszczone drzewo danych strukturalnych i Krytyczne reguły widoczności):
- Ścisła hierarchia: upewnij się, że znaczniki są zgodne z wymaganą kolejnością zagnieżdżenia (uproszczone drzewo lub pełna specyfikacja danych strukturalnych ). Elementy w nieprawidłowej kolejności lub nieprawidłowo zagnieżdżone mogą zostać pominięte przez robota.
- Widoczna cena:
itemprop="price"bezpośrednio otacza widoczną cenę bez ukrytych atrybutów ani tagów<meta>. - Daty pobytu czytelne dla maszyn:
checkinTimeicheckoutTimezawierają standardowy formatYYYY-MM-DD(opcjonalnie z atrybutamicontent="..."). - Bezpośrednie oznaczanie elementów: wszystkie widoczne właściwości (nazwa hotelu, daty pobytu, liczba osób) otaczają widoczny tekst na stronie.