Este guia descreve como marcar seu site com microdados e atributos de navegação para que o rastreador de nível de precisão do preço do Google possa navegar automaticamente pelo funil de reservas e validar as diárias.
Para conferir a especificação técnica completa de todas as propriedades de dados estruturados disponíveis (incluindo impostos, taxas e detalhes do quarto discriminados), consulte a referência de dados estruturados de preços de hotéis.
1. Implementação de navegação (data-nav-*)
Use atributos HTML data-nav-* personalizados para anotar elementos interativos e declarar etapas do funil para que o rastreador possa percorrer o fluxo de reservas.
1.1 Declaração de etapa na parte de cima da página (data-nav-stage)
Cada página do funil de reservas que mostra tarifas precisa declarar a sua
etapa, anexada à tag <body> ou a uma tag de wrapper principal (como
<div>, <section>, ou <main>). Isso informa ao rastreador qual etapa do
fluxo de reservas está ativa e ajuda a solucionar problemas mais tarde.
data-nav-stage(recomendado) : declara a etapa ativa do funil. Embora não seja estritamente necessário, especificar nomes (por exemplo,"landing","room-selection","checkout","ready-for-payment") ajuda a identificar a etapa ativa durante a validação.
1.2 Indicador de etapa final (data-nav-stage-final)
Na página final que mostra os preços antes da entrada de informações pessoais ou de pagamento
do usuário, adicione a flag de etapa final ao contêiner da parte de cima da página
junto com uma declaração de etapa (por exemplo,
data-nav-stage="ready-for-payment").
data-nav-stage-final(Opcional): Definido como"true"(data-nav-stage-final="true") na página de preço final antes do pagamento. Isso indica ao rastreador que essa é a página final e o preço pode ser extraído para validação. Essa página precisa conter a estrutura de preços com a marcação de microdados.
1.3 Atributos de interação de caminho crítico
Nas páginas intermediárias, marque os elementos interativos (botões ou links) que avançam o usuário ao longo do caminho crítico da reserva. Se várias ações forem necessárias na mesma página, especifique a ordem de execução. O rastreador segue a ordem especificada antes de tentar extrair o preço na página final.
| Atributo | Valor necessário | Finalidade |
|---|---|---|
data-nav-criticalpath |
"true" |
Marca o botão/link obrigatório em que o rastreador precisa clicar para avançar. |
data-nav-interactiontype |
"CLICK" |
Declara que uma ação de clique é necessária para avançar o fluxo. |
data-nav-interactionorder |
"1", "2", ... |
Declara a sequência de execução se várias ações forem necessárias na mesma página. |
Exemplo mínimo de navegação
<button data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="1">
Continue
</button>
2. Declaração de preço (microdados)
Na página acessível final do funil de reservas (antes da entrada de informações pessoais ou de pagamento), marque a oferta de preço (uma oferta de preço) com tags de microdados. Apenas uma oferta precisa ser marcada na página, indicando qual tarifa o rastreador extrai, correspondente à tarifa selecionada no Google antes que o usuário chegue ao seu site. Para detalhes sobre como definir parâmetros da página de destino, consulte Variáveis e condições.
Embora o Google ofereça suporte total à hierarquia completa na referência de dados estruturados de preços de hotéis (incluindo tarifas básicas discriminadas, impostos individuais, taxas e detalhes do quarto), o Google também aceita uma árvore de dados estruturados simplificada para facilitar a marcação de preços de hotéis nas suas páginas da Web.
O preço total da estadia é obrigatório para as tarifas disponíveis. Se um itinerário ou quarto estiver indisponível ou esgotado, declare https://schema.org/SoldOut em makesOffer sem um priceSpecification:
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
<meta itemprop="availability" content="https://schema.org/SoldOut"/>
Sold Out
</div>
Para mais informações, consulte a
availability propriedade
especificação.
2.1 Árvore de dados estruturados simplificada
Para simplificar a marcação nas páginas de reservas, você só precisa declarar o contêiner raiz do hotel e da reserva, as datas de estadia (YYYY-MM-DD), a ocupação e uma única oferta que contenha o preço total da estadia:
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 Regras de visibilidade críticas
Para garantir a extração confiável de preços, siga estas regras de visibilidade ao marcar seu HTML:
- O preço total da estadia precisa estar visível: marque o número do preço visível diretamente
na página usando
itemprop="price". Não use metadados ocultos (<meta>) ou valores de atributos (value="..."oucontent="...") para o número do preço. - Datas de estadia legíveis por máquina:marque as datas de estadia visíveis na página o máximo possível. Se necessário, você pode usar o atributo
content="..."em<span>elementos para fornecer um formatoYYYY-MM-DDpadrão ao mostrar a data visível (por exemplo,<span itemprop="checkinTime" content="2026-08-10">August 10, 2026</span>). - Campos não visíveis: os campos que não são mostrados diretamente na página
(como o ID do hotel ou o código da moeda) podem usar
<meta>tags oucontent="..."atributos.
3. Exemplos
Os exemplos completos a seguir mostram como marcar etapas intermediárias do funil e páginas de finalização de compra com atributos de navegação e microdados.
Exemplo 1: página intermediária com botão clicável
O snippet a seguir demonstra uma página intermediária de seleção de quartos (room-selection) com um único botão de ação de caminho crítico marcado para avançar o fluxo:
<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>
Exemplo 2: página de preço final com indicador de etapa e microdados mínimos
O snippet a seguir demonstra a última página antes do pagamento
(ready-for-payment), em que data-nav-stage-final="true" é declarado no
wrapper e o preço de estadia autorizado é mostrado de forma visível:
<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. Verificar sua implementação
Antes de implantar as mudanças, teste a marcação e a navegação para garantir que o rastreador possa validar seus dados de preços.
4.1 Verificar o preço e a estrutura de microdados
Você pode usar o
validador do Schema.org
ou
teste de pesquisa aprimorada do Google
para inspecionar os microdados extraídos do URL da página ou do conteúdo HTML. Verifique
os campos extraídos em relação à especificação na
referência de dados estruturados de preços de hotéis,
e confira se o elemento itemprop="price" é um item visível na página.
4.2 Verificar a navegação
Para verificar as tags, abra as Ferramentas para desenvolvedores do navegador no Google Chrome clicando com o botão direito do mouse na página da Web e selecionando Inspecionar (ou pressionando F12) para examinar o DOM HTML.
Confira se a implementação atende aos seguintes requisitos de navegação:
- A etapa da parte de cima da página é declarada: cada página no fluxo de reservas
inclui
data-nav-stage="..."na tag<body>ou de wrapper raiz, e a página de preço final incluidata-nav-stage-final="true". - O caminho crítico está completo: As páginas intermediárias têm os elementos interativos (botões ou links) marcados com
data-nav-criticalpath="true",data-nav-interactiontypeedata-nav-interactionorder. Se várias ações estiverem presentes, confira se os números de ordem estão definidos corretamente.
4.3 Verificar a visibilidade e a qualidade da marcação
Confira se os microdados atendem a todos os requisitos de estrutura e visibilidade (para detalhes, consulte a árvore de dados estruturados simplificada e as regras de visibilidade críticas):
- Hierarquia estrita: confira se a marcação segue a ordem de aninhamento necessária (a árvore simplificada ou a especificação completa da referência de dados estruturados ). Elementos fora de ordem ou aninhados incorretamente podem ser perdidos pelo rastreador.
- Preço visível:
itemprop="price"envolve diretamente o preço visível número sem atributos ocultos ou<meta>tags. - Datas de estadia legíveis por máquina:
checkinTimeecheckoutTimecontêm padrãoYYYY-MM-DD(opcionalmente usando atributoscontent="..."). - Marcação direta de elementos:todas as propriedades visíveis (nome do hotel, datas de estadia, ocupação) envolvem o texto visível da página.