Structured data for hotels: the fields that matter and a ten-minute check

A few lines of code tell every search engine and AI assistant what kind of place you are, where, and what you offer. Which schema.org fields to fill in, one rule not to break, and how to test it.

A lodge owner paddling a canoe on a misty lake at dawn

Your website says “Welcome to our family-run hotel by the sea” in beautiful type. A machine reading it has to guess what that means. Structured data removes the guessing: a short block of code, invisible to guests, that states the facts in a format Google, Bing and AI assistants all understand.

It is the first of the three fixes in almost every AI Visibility Check we run, because it is usually missing, incomplete or describes the wrong thing.

What it looks like

Structured data for a hotel uses the schema.org vocabulary, written as JSON-LD inside the page. A minimal, correct example:

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "Villa Aurelia",
  "url": "https://villa-aurelia.example/",
  "telephone": "+30 28210 00000",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 Akti Koundourioti",
    "addressLocality": "Chania",
    "postalCode": "73131",
    "addressCountry": "GR"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": 35.5172, "longitude": 24.0179 },
  "numberOfRooms": 14,
  "checkinTime": "14:00",
  "checkoutTime": "11:00",
  "petsAllowed": "Dogs up to 10 kg, €15 per night",
  "priceRange": "€€",
  "amenityFeature": [
    { "@type": "LocationFeatureSpecification", "name": "Free parking", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Cots available", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Breakfast on the terrace", "value": true }
  ]
}

The hotel is an example. Replace every value with your own.

The fields that matter most

schema.org defines dozens of properties for a Hotel (a type of LodgingBusiness). These are the ones that answer the questions guests actually ask an assistant:

Field What it answers
@type Hotel, BedAndBreakfast, Hostel, Resort, VacationRental: what kind of place you are
address and geo Where exactly, for “near the old harbour” or “walking distance to the beach”
numberOfRooms Boutique or large; families and groups care
checkinTime, checkoutTime Early arrivals and late flights
petsAllowed Yes, no, or the actual policy in words
amenityFeature Parking, pool, cots, accessibility, air conditioning, breakfast
priceRange A rough budget signal
starRating Only an official rating, if you have one

Use a plain sentence where a yes or no is not enough. “Dogs up to 10 kg, €15 per night” is more useful to a guest, and to an assistant, than true.

The one rule: mark up only what guests can see

Google’s general structured data guidelines are explicit: do not mark up content that is not visible to readers of the page, and do not mark up misleading content. If your structured data says “free parking” but no page says it, you are describing a different hotel from the one on the screen.

This rule protects you as well. Most contradictions we find are not lies, just old facts: the code still says check-in at 15:00 after the hotel moved it to 14:00. Assistants that find two answers tend to trust neither.

Rooms and holiday rentals

  • Rooms. If each room type has its own page, describe it there with HotelRoom (bed type, occupancy, size) on that page. One page per room type helps both guests and assistants answer “family room for four”.
  • Holiday rentals. schema.org has a VacationRental type. Google’s rich results for vacation rentals are currently limited to sites that work with a Google technical account manager through Hotel Center, so for most hosts the value is in clear, correct facts rather than a special listing in search.
  • Reviews. Do not mark up reviews of your own business on your own site to get stars in search. Google treats these as self-serving reviews and does not show them.

Check yours in ten minutes

  1. Open Google’s Rich Results Test (search for it) and paste your home page address.
  2. Look for a detected item of type Hotel, LodgingBusiness or LocalBusiness. If nothing is detected, you have no structured data.
  3. Open the item and compare every value with your website and your Booking.com page: name, address, phone, check-in time, pets, parking.
  4. Write down every difference. Each one is a fix.
  5. Repeat on your rooms page and your contact page.

If your site runs on WordPress, Wix or Squarespace, most of this can be added without a developer, through an SEO plugin or the site’s business information settings. During Setup we add it for you, matched to your listings, when you give us access.

Sources

Read on 4 November 2026.

Start with the free check.

Paste your website. Within 24 hours you know what AI assistants say about your hotel and the three fixes that matter most.

Get the free AI Visibility Check