Skip to content
Structured Data 3 min read

Hotel Structured Data: The Complete Guide

Overview

Structured data describes your hotel to search engines in a standard, machine-readable way — your property type, name, address, coordinates, check-in times, and amenities — usually as JSON-LD using schema.org vocabulary. Accurate markup reduces ambiguity and can make pages eligible for some enhanced search features, but it doesn't guarantee rich results or better rankings, and Google says no special schema is needed for its AI features. Most hotels need a small amount done well: the right lodging type on the property page, matching visible content, tested, and kept in sync.

By Lodging Engine Editorial Team· Reviewed by Eric Zwanenburg· Last reviewed

Do you need it?

Structured data is a low-risk improvement when your site has no lodging markup or has wrong details left by an old theme. It's not a magic switch:

  • It makes pages eligible for enhanced features Google supports — not guaranteed.
  • It doesn't directly improve rankings on its own.
  • Google states there's no special schema required for AI Overviews or AI Mode.

Choosing types

  • `Hotel` for hotels; `BedAndBreakfast`, `Hostel`, `Motel`, `Resort` where they fit better; `LodgingBusiness` if none applies. Hotel is a type of LodgingBusiness, which is a type of LocalBusiness.
  • `Organization` and `WebSite` on the homepage; `BreadcrumbList` where breadcrumbs are visible.
  • Rooms can be described with `HotelRoom` (bed, occupancy, amenities), but don't expect special search features from it.
  • Reviews: Google doesn't allow self-serving review markup for LocalBusiness and Organization, so don't add ratings for your own hotel.
  • FAQs: Google no longer shows FAQ rich results; FAQPage markup is optional.

What to mark up on a typical hotel site

PageMarkupNotes
Main property pageHotel (or a more accurate lodging type)Name, address, phone, URL, geo, check-in/out, amenities
HomepageOrganization or the lodging type, WebSiteOften the same page as the property page for single hotels
Pages with breadcrumbsBreadcrumbListMust match the visible breadcrumb trail
Room pagesOptional HotelRoomOnly describe what the page shows

Single-property hotels often keep it simple: one accurate lodging block on the homepage, plus breadcrumbs.

A minimal example

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "Hotel Example",
  "url": "https://www.hotel-example.com/",
  "telephone": "+34 900 000 000",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Calle Ejemplo 1",
    "addressLocality": "Altea",
    "postalCode": "03590",
    "addressCountry": "ES"
  },
  "checkinTime": "15:00",
  "checkoutTime": "11:00"
}

Example values only — every value must match your hotel's real, visible details.

Implementation

Google recommends JSON-LD in most cases: a script block separate from visible HTML, easy to maintain. Add it through your CMS, a plugin, or your developer — ideally generated from the same data that fills the page, so it can't drift out of sync. Hotel groups should mark up each property on its own page.

Google's core rule: markup must describe content that's visible to users on that page.

Testing and maintenance

  • Rich Results Test for Google-supported features and critical errors.
  • Schema Markup Validator for general schema.org syntax.
  • URL Inspection to confirm what Google found on the live page.

Common problems: duplicate markup from themes and plugins, outdated phone numbers, invisible values, self-serving reviews, placeholder data. Google notes that structured data issues can lead to a manual action that removes rich result eligibility.

Common mistakes

  • Two or three markup blocks for the same hotel with different details.
  • Only Organization, with no lodging type.
  • Amenities in markup that the page never mentions.
  • A starRating that isn't an official classification.
  • Old addresses and phone numbers after a rebrand or move.
  • Copying a tutorial example and forgetting to replace placeholders.

Where to start

  1. Check what your pages output today — themes, plugins, and widgets often add markup.
  2. Keep one source of markup for the property.
  3. Use the most specific accurate lodging type with name, address, phone, URL, geo, check-in/out times, and key amenities.
  4. Remove self-serving review markup.
  5. Test, then re-test after any site change.

Our free structured data checker shows the types a page declares and which recommended hotel properties are missing.

Sources

  1. Introduction to structured data markup in Google Search — Google Search Central
  2. General structured data guidelines — Google Search Central
  3. Local Business (LocalBusiness) Structured Data — Google Search Central
  4. Hotel — Schema.org
  5. Review snippet (Review, AggregateRating) structured data — Google Search Central
  6. Google Search Central documentation updates (FAQ rich result removed; llms.txt clarification) — Google Search Central
  7. AI features and your website — Google Search Central
  8. HotelRoom (schema.org type) — schema.org

Hotel Structured Data questions