Pilar 02 · Implementação

Schema.org/Hotel — JSON-LD que IAs leem.

JSON-LD comentado linha a linha, com priceRange dinâmico, amenityFeature por categoria, aggregateRating e checagem automática via validator.

TL;DR · 3 ideias-chave
  • Schema.org/Hotel é o RG estruturado do seu hotel pras IAs. Sem ele, a IA tem que adivinhar metadados a partir do HTML — perde precisão e pula você na resposta.
  • Use JSON-LD, não Microdata. Mais limpo, mais fácil de manter, melhor suportado por todas as IAs. Cole entre as tags <head>.
  • Valide sempre no validator.schema.org. Schema com erro silencioso é pior que Schema ausente — IAs descartam objeto inteiro com 1 campo malformado.

Por que Schema.org é o sinal mais subestimado

Em 2025, em estudo da Ahrefs analisando 25 milhões de respostas geradas por IA, 73% das fontes citadas tinham Schema.org completo, contra apenas 28% das fontes ignoradas. A diferença é dramática — porque Schema é a forma mais limpa que a IA tem de entender, em segundos, exatamente o que seu site oferece.

Imagine: a IA recebeu pergunta "pousada boutique pet-friendly em Ilhabela faixa R$ 600-900". Ela tem 200ms pra escanear 50 sites possíveis e escolher 3 pra citar. Site A tem texto bonito mas nenhum Schema — a IA precisa ler tudo, interpretar, inferir. Site B tem Schema completo com petsAllowed: true, priceRange: "R$ 600-900", geo exato — a IA confirma o match em milissegundos.

Site B vence. Sempre.

JSON-LD vs Microdata: use JSON-LD

Schema.org permite 3 sintaxes — JSON-LD, Microdata, RDFa. Use JSON-LD. É mais limpo, separável do HTML visual (vai dentro de <script type="application/ld+json">), e melhor suportado por todas as IAs em 2025+.

Cole o bloco entre as tags <head> ou no fim do <body> — o local não importa, contanto que esteja no HTML.

Template completo comentado

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "@id": "https://seuhotel.com.br/#hotel",
  "name": "Pousada Mar Adentro",
  "description": "Pousada boutique de 14 suítes em Ilhabela, vista pro canal, café da manhã caiçara, aceita pets até 10kg.",
  "url": "https://seuhotel.com.br",
  "telephone": "+55-12-99999-9999",
  "email": "reservas@seuhotel.com.br",
  "image": [
    "https://seuhotel.com.br/img/fachada.jpg",
    "https://seuhotel.com.br/img/suite.jpg",
    "https://seuhotel.com.br/img/cafe.jpg"
  ],
  "priceRange": "R$ 580 a R$ 1.200",
  "checkinTime": "14:00",
  "checkoutTime": "12:00",
  "numberOfRooms": 14,
  "petsAllowed": true,
  "starRating": {
    "@type": "Rating",
    "ratingValue": "4"
  },
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Av. Pereque, 1000",
    "addressLocality": "Ilhabela",
    "addressRegion": "SP",
    "postalCode": "11630-000",
    "addressCountry": "BR"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": -23.7817,
    "longitude": -45.3619
  },
  "amenityFeature": [
    {"@type": "LocationFeatureSpecification", "name": "WiFi grátis", "value": true},
    {"@type": "LocationFeatureSpecification", "name": "Café da manhã incluso", "value": true},
    {"@type": "LocationFeatureSpecification", "name": "Estacionamento grátis", "value": true},
    {"@type": "LocationFeatureSpecification", "name": "Pet-friendly até 10kg", "value": true},
    {"@type": "LocationFeatureSpecification", "name": "Vista pro mar", "value": true},
    {"@type": "LocationFeatureSpecification", "name": "Piscina", "value": true},
    {"@type": "LocationFeatureSpecification", "name": "Ar-condicionado", "value": true}
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": 142,
    "bestRating": 5,
    "worstRating": 1
  },
  "makesOffer": [
    {
      "@type": "Offer",
      "name": "Suíte Standard",
      "description": "Suíte 25m², cama queen, vista parcial pro mar",
      "priceSpecification": {
        "@type": "PriceSpecification",
        "minPrice": 580,
        "maxPrice": 850,
        "priceCurrency": "BRL"
      }
    },
    {
      "@type": "Offer",
      "name": "Suíte Master Vista Mar",
      "description": "Suíte 40m² com hidromassagem e varanda privada",
      "priceSpecification": {
        "@type": "PriceSpecification",
        "minPrice": 850,
        "maxPrice": 1200,
        "priceCurrency": "BRL"
      }
    }
  ]
}
</script>

Os 7 campos críticos que IAs realmente usam

  1. name — nome próprio. Sem variações ("Pousada Mar Adentro" vs "Mar Adentro Pousada"). IA escolhe o canônico.
  2. description — 1-2 frases factuais. Não copie da homepage. Reescreva em prosa direta.
  3. priceRange — faixa real, não "consulte". Use formato "R$ X a R$ Y".
  4. geo — latitude e longitude exatas. Pega no Google Maps clicando no ponto exato do hotel. Diferença de 50m altera respostas a queries do tipo "hotel perto de [referência]".
  5. amenityFeature — lista de amenidades como objetos individuais. Mais granular = mais matches em queries qualitativas.
  6. aggregateRating — só preencher se tiver review real. Se você tem 142 reviews entre Booking, TripAdvisor e Google, agregue a média ponderada.
  7. petsAllowed — boolean simples. 38% das queries conversacionais sobre hotelaria boutique no Brasil mencionam pet. Sem esse campo, você perde essas queries.

Como agregar reviews de Booking + TripAdvisor + Google

Você não pode citar diretamente notas de OTAs (termos de uso). Mas pode agregar matemática própria:

  1. Some o número total de reviews (ex: 80 Booking + 47 TripAdvisor + 15 Google = 142)
  2. Calcule média ponderada por contagem (ex: (80×9.2 + 47×4.7 + 15×4.6)/142 em escala respeitada)
  3. Normalize pra escala 1-5 (Booking usa 1-10, divide por 2)
  4. Use só sua própria contagem de reviews diretas no aggregateRating Schema. NÃO finja que reviews de OTAs estão no seu site.

Alternativa mais limpa: peça reviews diretas no seu site (formulário pós-stay), construa contagem orgânica. O método dos 7 toques ensina a estruturar isso operacionalmente.

Validar sempre antes de publicar

Cole o JSON-LD em validator.schema.org. Se aparecer erro vermelho em qualquer campo, corrija antes de subir. Schema com 1 erro silencioso = IA descarta objeto inteiro. Não vale o risco.

Também rode no Google Rich Results Test — embora seja focado em SERP, ele captura erros estruturais que IAs também rejeitam.

Erros que vejo todo dia

  • priceRange como string vaga ("$"). Use faixa real: "R$ 580 a R$ 1.200".
  • aggregateRating com ratingValue maior que bestRating. Se best é 5, value não pode ser 5.2.
  • image apontando pra arquivo bloqueado por robots.txt. Confirme que /img/* não está em Disallow.
  • Esquecer @id. O @id é o identificador único do objeto. Sem ele, IA pode confundir múltiplos objetos do mesmo tipo.
  • Latitude/longitude trocadas. No Brasil, lat é negativo (~-23). Long também é negativo (~-45). Se aparecer positivo, está errado.

Perguntas frequentes

Em que página devo colocar o Schema?

Pelo menos na home. Idealmente também em /quartos, /sobre e cada página de tipo de suíte. Schema é específico por página — uma página de Suíte Master pode ter o Hotel Schema E um Service Schema próprio aninhado.

Posso ter mais de um @type? Por exemplo Hotel e LocalBusiness juntos?

Sim, usando @graph. Crie um array de objetos: { "@graph": [Hotel, FAQPage, BreadcrumbList] }. Cada objeto com @id próprio. IAs processam todos.

Schema é só pra grandes hotéis?

Pelo contrário — pousada de 6 suítes ganha mais com Schema porque o conteúdo concreto é mais escasso. Schema dá clareza estrutural que substitui falta de volume.

Como mantenho Schema atualizado quando muda preço?

Coloque o JSON-LD em arquivo único (ex: /schema/hotel.json) e injete via include no template. Aí basta atualizar 1 arquivo quando algo muda. WordPress: use plugin tipo Schema & Structured Data for WP.

Vale a pena pagar pra alguém implementar?

Pra hotéis com score abaixo de 30, sim — Implementação Assistida (R$ 1.497) ou Plano de Ação (R$ 597) entregam Schema validado em 24h. Pra score acima de 65, vale fazer manualmente seguindo este post.

Quer Schema completo no seu hotel?

Plano de Ação (R$ 597) entrega Schema.org/Hotel completo + llms.txt + robots.txt + plano de copy em 24h.

Plano de Ação · R$ 597

Publicado em 9 de maio de 2026 · Por Thiago Acerola.
Esse post é parte da série "Implementação técnica" do Arsenal Hospitality.