How do I add structured data to a hotel website?
Short answer
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.
By Lodging Engine Editorial Team· Reviewed by Eric Zwanenburg· Last reviewed
Step 1: Decide what to mark up
| Page | Markup |
|---|---|
| Main property page (often the homepage) | Hotel or the right lodging type |
| Homepage | Organization (or the lodging type), WebSite |
| Pages with visible breadcrumbs | BreadcrumbList |
Start with the property page. See what schema hotels should use.
Step 2: Gather the facts
Collect the exact values as they appear on the page: official name, full postal address, phone, URL, latitude and longitude, check-in and check-out times, amenities, and photos. Google's guidelines say markup must describe content that's visible to users.
Step 3: Write the JSON-LD
JSON-LD sits in a <script type="application/ld+json"> block, separate from your visible HTML, which makes it the easiest format to maintain. Google recommends JSON-LD in most cases.
Step 4: Add it to the site
- CMS or theme settings: many hotel website platforms have fields for business details that output schema automatically — check what they produce before adding more.
- Plugins: convenient, but review the output; avoid two plugins outputting conflicting markup.
- Developer: add the script to the page template, generated from the same data that fills the visible page.
- JavaScript: Google can process structured data generated with JavaScript, but server-rendered markup is simpler to debug.
Step 5: Test before and after launch
- Paste the code or URL into the Rich Results Test and fix errors.
- Use the Schema Markup Validator to check schema.org syntax beyond Google-supported features.
- After launch, use URL Inspection in Search Console to confirm Google sees the markup.
See testing hotel structured data.
Step 6: Keep it in sync
Whenever your phone number, address, or policies change, update the markup at the same time — ideally by generating it from the same data source as the page. See keeping schema in sync.
Common mistakes
- Duplicate markup from a theme and a plugin with different values.
- Markup on every page claiming the same
Hotelentity with different details. - Values that don't appear anywhere on the page.
- Copying an example and forgetting to replace placeholder data.
Checklist
- Pages and types decided
- Facts match visible content exactly
- JSON-LD added in one place (no conflicting duplicates)
- Rich Results Test and Schema Markup Validator pass
- URL Inspection confirms Google sees the markup
- Update process tied to content changes
Sources
- General structured data guidelines — Google Search Central
- Local Business (LocalBusiness) Structured Data — Google Search Central
- Introduction to structured data markup in Google Search — Google Search Central
- Hotel — Schema.org
- Understand JavaScript SEO basics — Google Search Central