В этом руководстве описано, как добавить на ваш сайт микроданные и атрибуты навигации , чтобы поисковый робот Google, проверяющий точность цен, мог автоматически перемещаться по вашей воронке бронирования и подтверждать цены на номера.
Полную техническую спецификацию всех доступных свойств структурированных данных (включая подробную информацию о налогах, сборах и номерах) см. в справочнике по структурированным данным цен на номера в отелях .
1. Реализация навигации ( data-nav-* )
Используйте пользовательские HTML-атрибуты data-nav-* для аннотирования интерактивных элементов и объявления этапов воронки продаж, чтобы поисковый робот мог пройти по вашему процессу бронирования.
1.1 Объявление этапа в верхней части страницы ( data-nav-stage )
На каждой странице вашей воронки бронирования, отображающей цены, необходимо указывать этап, прикрепляя его к тегу <body> или основному тегу-обертке (например, <div> , <section> или <main> ). Это сообщает поисковому роботу, какой этап процесса бронирования активен, и помогает в дальнейшем устранении неполадок.
-
data-nav-stage(Рекомендуется): Объявляет активный этап воронки продаж. Хотя это не является строго обязательным, указание имен (например,"landing","room-selection","checkout","ready-for-payment") помогает идентифицировать активный этап во время валидации.
1.2 Индикатор финального этапа ( data-nav-stage-final )
На последней странице, отображающей цены перед вводом личных данных пользователя или платежной информации, добавьте флаг final-stage в контейнер в верхней части страницы вместе с объявлением этапа (например, data-nav-stage="ready-for-payment" ).
-
data-nav-stage-final(Необязательно): Установите значение"true"(data-nav-stage-final="true") на странице с окончательной ценой перед оплатой. Это указывает поисковому роботу, что эта страница является последней, и цена может быть извлечена для проверки. Эта страница должна содержать структуру цены с микротегами.
1.3 Атрибуты взаимодействия критического пути
На промежуточных страницах отметьте интерактивные элементы (кнопки или ссылки), которые продвигают пользователя по критическому пути бронирования. Если на одной странице требуется несколько действий, укажите порядок их выполнения. Поисковый робот следует указанному порядку, прежде чем попытаться извлечь цену на финальной странице.
| Атрибут | Требуемое значение | Цель |
|---|---|---|
data-nav-criticalpath | "true" | Отмечает обязательную кнопку/ссылку, на которую должен нажать поисковый робот для перехода на следующий уровень. |
data-nav-interactiontype | "CLICK" | Указывает, что для продолжения процесса требуется щелчок мышью. |
data-nav-interactionorder | "1" , "2" , ... | Определяет последовательность выполнения, если на одной странице требуется выполнить несколько действий. |
Пример минимальной навигации
<button data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="1">
Continue
</button>
2. Указание цены (микроданные)
На последней доступной странице вашей воронки бронирования (перед вводом личной информации или платежных данных) пометьте ценовое предложение (одно ценовое предложение) микротегами. На странице должно быть помечено только одно предложение, указывающее, какой тариф будет извлечен поисковым роботом, соответствующий тарифу, выбранному в Google до того, как пользователь попадет на ваш сайт. Подробную информацию об определении параметров целевой страницы см. в разделе « Переменные и условия» .
Хотя Google полностью поддерживает полную иерархию в справочнике структурированных данных о ценах на отели (включая детализированные базовые тарифы, отдельные налоги, сборы и информацию о номерах), Google также принимает упрощенное дерево структурированных данных , чтобы упростить добавление тегов к ценам на отели на ваших веб-страницах.
Для получения доступных тарифов обязательно указана общая стоимость проживания. Если маршрут или номер недоступны или распроданы, укажите https://schema.org/SoldOut в разделе makesOffer без priceSpecification :
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
<meta itemprop="availability" content="https://schema.org/SoldOut"/>
Sold Out
</div>
Для получения более подробной информации см. спецификацию availability свойств .
2.1 Упрощенное структурированное дерево данных
Для упрощения тегирования на страницах бронирования вам достаточно указать основной отель и контейнер бронирования, даты проживания ( YYYY-MM-DD ), количество проживающих и единое предложение, содержащее общую стоимость проживания:
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 Правила критической видимости
Для обеспечения надежного извлечения цен следуйте этим правилам видимости при разметке HTML-кода:
- Общая стоимость проживания должна быть видимой: укажите видимую цену непосредственно на странице, используя
itemprop="price". Не используйте скрытые метаданные (<meta>) или значения атрибутов (value="..."илиcontent="...") для указания цены. - Даты пребывания в машиночитаемом формате: По возможности указывайте видимые даты пребывания на странице. При необходимости можно использовать атрибут
content="..."для элементов<span>, чтобы при отображении видимой даты указать стандартный форматYYYY-MM-DD(например,<span itemprop="checkinTime" content="2026-08-10">August 10, 2026</span>). - Невидимые поля: Поля, которые не отображаются непосредственно на странице (например, идентификатор отеля или код валюты), могут использовать теги
<meta>или атрибутыcontent="...".
3. Примеры
Приведенные ниже примеры демонстрируют, как помечать промежуточные этапы воронки продаж и страницы оформления заказа атрибутами навигации и микроданными.
Пример 1: промежуточная страница с кликабельной кнопкой
Следующий фрагмент кода демонстрирует промежуточную страницу выбора номера ( room-selection ) с одной кнопкой, выполняющей действие по критическому пути для продвижения по процессу:
<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>
Пример 2: страница с итоговой ценой, индикатором этапа и минимальным количеством микроданных.
Следующий фрагмент кода демонстрирует последнюю страницу перед оплатой ( ready-for-payment ), где в оболочке объявлен атрибут data-nav-stage-final="true" , и отображается фактическая цена проживания:
<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. Проверьте свою реализацию.
Перед внедрением изменений протестируйте разметку и теги навигации, чтобы убедиться, что поисковый робот сможет успешно проверить ваши данные о ценах.
4.1 Проверка цены и структуры микроданных
Для проверки микроданных, извлеченных из URL-адреса вашей страницы или HTML-контента, вы можете использовать валидатор Schema.org или тест расширенных результатов Google . Проверьте извлеченные поля на соответствие спецификации в справочнике структурированных данных цен на отели и убедитесь, что ваш элемент itemprop="price" является видимым элементом на странице.
4.2 Проверка навигации
Чтобы проверить теги, откройте инструменты разработчика в Google Chrome, щелкнув правой кнопкой мыши по веб-странице и выбрав «Просмотреть код элемента» (или нажав F12 ), чтобы изучить HTML DOM.
Убедитесь, что ваша реализация соответствует следующим требованиям к навигации:
- Объявлен этап в верхней части страницы: каждая страница в процессе бронирования включает
data-nav-stage="..."в свой тег<body>или корневой тег-обертку, а страница с окончательной ценой включаетdata-nav-stage-final="true". - Критический путь завершен: интерактивные элементы (кнопки или ссылки) на промежуточных страницах помечены параметрами
data-nav-criticalpath="true",data-nav-interactiontypeиdata-nav-interactionorder. Если присутствует несколько действий, убедитесь, что номера порядков заданы правильно.
4.3 Проверка видимости и качества разметки
Убедитесь, что ваши микроданные соответствуют всем требованиям к структуре и видимости (подробнее см. упрощенное дерево структурированных данных и правила критической видимости ):
- Строгая иерархия: убедитесь, что ваша разметка соответствует требуемому порядку вложенности (либо упрощенному дереву, либо полной спецификации ссылок на структурированные данные ). Элементы, расположенные не по порядку или неправильно вложенные, могут быть пропущены поисковым роботом.
- Видимая цена:
itemprop="price"напрямую содержит видимое числовое значение цены без скрытых атрибутов или тегов<meta>. - Даты пребывания в машиночитаемом формате:
checkinTimeиcheckoutTimeсодержат стандартные значенияYYYY-MM-DD(опционально с использованием атрибутовcontent="..."). - Прямая разметка элементов: все видимые свойства (название отеля, даты проживания, заполняемость) переносят видимый текст страницы.