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.
Hotelis a type ofLodgingBusiness, which is a type ofLocalBusiness. - `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
LocalBusinessandOrganization, so don't add ratings for your own hotel. - FAQs: Google no longer shows FAQ rich results;
FAQPagemarkup is optional.
- What schema should hotels use?
- Marking up rooms and offers
- Review schema for hotels
- Should hotels use FAQPage schema?
What to mark up on a typical hotel site
| Page | Markup | Notes |
|---|---|---|
| Main property page | Hotel (or a more accurate lodging type) | Name, address, phone, URL, geo, check-in/out, amenities |
| Homepage | Organization or the lodging type, WebSite | Often the same page as the property page for single hotels |
| Pages with breadcrumbs | BreadcrumbList | Must match the visible breadcrumb trail |
| Room pages | Optional HotelRoom | Only 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.
- How to test structured data
- Common structured data errors
- Keeping schema in sync
- Can structured data show prices in Google?
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
starRatingthat 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
- Check what your pages output today — themes, plugins, and widgets often add markup.
- Keep one source of markup for the property.
- Use the most specific accurate lodging type with name, address, phone, URL, geo, check-in/out times, and key amenities.
- Remove self-serving review markup.
- 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
- Introduction to structured data markup in Google Search — Google Search Central
- General structured data guidelines — Google Search Central
- Local Business (LocalBusiness) Structured Data — Google Search Central
- Hotel — Schema.org
- Review snippet (Review, AggregateRating) structured data — Google Search Central
- Google Search Central documentation updates (FAQ rich result removed; llms.txt clarification) — Google Search Central
- AI features and your website — Google Search Central
- HotelRoom (schema.org type) — schema.org
Hotel Structured Data questions
- How do I keep hotel structured data in sync with my website?Keep hotel structured data in sync by generating it from the same source as your visible content, rather than maintaining a separate hand-written block. When your phone number, address, check-in times, or amenities change in your CMS or property data, the page and its markup should update together. Add a structured data check to your change process — after edits, renovations, rebrands, and redesigns — and test key pages regularly with the Rich Results Test and URL Inspection. Google's guidelines require markup to be accurate and up to date.
- Should I use JSON-LD or microdata for my hotel?For most hotel websites, JSON-LD is the better choice. Google supports JSON-LD, microdata, and RDFa equally as long as the markup is valid, but recommends using the format that's easiest to implement and maintain — in most cases JSON-LD. Because it sits in a separate script block rather than being woven into your HTML, it's simpler to generate from your property data, update, and debug. Microdata is fine if your platform already produces it correctly. The real risk is mixing formats that describe your hotel with different details.
- How should a hotel group structure schema across multiple properties?A hotel group should mark up the brand once and each property on its own page. Use `Organization` on the group homepage for the company or brand, and a `Hotel` (or other lodging type) on each property page with that property's own name, address, phone, URL, coordinates, and details. Link properties to the brand where useful, keep every value consistent with the visible page and with each property's Business Profile, and avoid repeating every hotel's full markup on every page. One page, one property entity, is the simplest rule.
- How do I mark up hotel reviews and ratings?For your own hotel, you generally shouldn't add review or rating markup expecting stars in Google. Google's review snippet guidelines say pages about `LocalBusiness` or `Organization` types — which includes hotels — aren't eligible for star ratings when the business controls the reviews about itself, known as self-serving reviews. Review markup is meant for sites that review other businesses or products. Show genuine guest reviews on your website as visible content, link to your profiles on Google and review platforms, and focus on earning reviews there.
- Can structured data show my hotel's prices in Google?Not in the way most hotels hope. The rates Google shows in its hotel booking module — through free booking links and hotel ads — come from price feeds sent through Google Hotel Center, usually by your booking engine or an integration partner, not from schema.org markup on your website. Price markup on your pages can describe offers explicitly, but it won't by itself put your rates next to OTAs in Google's hotel results. If you want your direct rate shown on Google, ask your booking engine provider about free booking links.
- How do I mark up hotel rooms and offers?You can describe hotel rooms with the schema.org `HotelRoom` type — including bed details, occupancy, floor size, and room amenities — and connect rooms to your `Hotel`. Offers (a room at a price for dates) can be described with `Offer`. Keep expectations realistic: room and offer markup can make your pages more explicit, but Google doesn't document a rich result for hotel room markup, and its hotel prices come from price feeds rather than page markup. If you add room markup, make sure every value matches what's visible on the room page and stays current.
- What structured data errors are common on hotel websites?The most common structured data problems on hotel websites are conflicting duplicate markup from themes and plugins, the wrong or overly generic type (only `Organization`, no lodging type), outdated values such as old phone numbers or addresses, markup describing content that isn't visible on the page, self-serving review and rating markup, and leftover placeholder data copied from examples. Most are easy to fix once found: decide on a single source of markup, use the right lodging type, match every value to the visible page, and remove review markup for your own property.
- How do I test my hotel's structured data?Test hotel structured data in three places. Google's Rich Results Test shows whether markup is valid for Google-supported features and flags critical errors. The Schema Markup Validator checks general schema.org syntax, including types Google doesn't use for rich results. Search Console's URL Inspection tool confirms what Google actually found on the live page, and its enhancement reports track issues across the site. Fix errors first; warnings about missing recommended properties are worth fixing when you have accurate data, but aren't required for eligibility.
- How do I add structured data to a hotel website?To add structured data to a hotel website, decide which pages need markup (usually the main property page, plus organization and breadcrumb data), write JSON-LD using the most accurate schema.org lodging type, and fill it with facts that are visible on the page — name, address, phone, URL, geo coordinates, check-in and check-out times, amenities. Add it through your CMS, theme settings, a plugin, or your developer, then test it with Google's Rich Results Test and the Schema Markup Validator, and check in Search Console that Google has found it.
- Should hotels use FAQPage schema?For most hotels, FAQPage schema is now optional and low priority. Google stopped showing FAQ rich results in Search in 2026 and removed the documentation for the feature, so the markup no longer produces an enhanced result there. Valid FAQPage markup that matches visible questions and answers isn't harmful, and other systems may still read it, but it won't change how your hotel appears in Google. Put the effort into writing clear, visible answers to real guest questions instead — that's what helps guests, search engines, and answer engines.
- Does structured data help hotels in AI search?Structured data helps search engines interpret your hotel's facts, but it isn't a special key to AI search. Google states there's no special schema.org structured data needed to appear in its AI features such as AI Overviews and AI Mode, and no additional requirements beyond normal Search eligibility. It does advise making sure your structured data matches the visible text on the page. So accurate `Hotel` markup is a sensible foundation, while the bigger factors are crawlable pages, clear facts in visible text, and consistent information across sources.
- What schema should hotels use?Most hotels should mark up their main property page with the schema.org `Hotel` type (or `LodgingBusiness` for accommodation that isn't a hotel, such as a B&B or guest house, where more specific types like `BedAndBreakfast` exist). Include your name, address, telephone, URL, geo coordinates, check-in and check-out times, and amenities via `amenityFeature` — all matching what's visible on the page. Add `Organization` and `WebSite` information on the homepage and `BreadcrumbList` where you show breadcrumbs. Use JSON-LD, which Google recommends.
- Does my hotel need structured data?Most hotel websites benefit from structured data, but it's not a magic switch. Structured data describes your hotel in a standard, machine-readable way — name, address, check-in times, amenities — so search engines and other systems can interpret your pages with less ambiguity. It can make pages eligible for certain 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. If your basic property markup is missing or wrong, adding accurate markup is a worthwhile, low-risk improvement.