72%

of first-page Google results use schema markup — versus fewer than 30% of all websites. Travel sites with schema.org achieve 35% higher organic click-through rates. (Source: Sixth City Marketing, 2026)

Schema.org Hotel is a structured data vocabulary you integrate into your site to describe your property in machine language. Concretely, it's a JSON-LD block you place in the <head> or <body> of your pages.

Search engines use it to display rich snippets. AI assistants — ChatGPT, Perplexity, Gemini — use it to understand your hotel, compare it to others, and recommend you for precise conversational searches.

Essential Hotel Schema Properties

The Hotel type inherits from LodgingBusiness, which itself inherits from LocalBusiness. Here are the properties to implement first:

Identification properties (required)

  • @type: Hotel (or LodgingBusiness for a more generic type)
  • name: exact property name
  • url: canonical website URL
  • address: complete PostalAddress object (street, city, postcode, country)
  • telephone: property phone number (not a central reservations line)
  • geo: precise GPS coordinates (GeoCoordinates with latitude and longitude)

Quality properties (very important for AI)

  • starRating: official classification (Rating object with ratingValue)
  • aggregateRating: average score with review count (ratingValue, reviewCount)
  • priceRange: price bracket (e.g. "€€" or "120-350€")
  • description: precise and complete property description

Service properties (decisive for filtered searches)

  • amenityFeature: list of amenities (LocationFeatureSpecification) — pool, spa, parking, wifi, restaurant, gym...
  • checkinTime: arrival time (ISO 8601 format, e.g. 15:00)
  • checkoutTime: departure time (e.g. 12:00)
  • petsAllowed: pet policy (true/false)
  • numberOfRooms: total room count

Booking properties (critical for agentic AI)

  • potentialAction: booking action (ReserveAction) with reservation engine URL
  • hasMap: link to Google Maps

Complete JSON-LD Example for a Hotel

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "@id": "https://www.your-hotel.com/#hotel",
  "name": "The Grand Palace Hotel",
  "url": "https://www.your-hotel.com",
  "description": "4-star hotel in the heart of Paris, 200m from the Louvre. 85 rooms and suites, 600m² spa, Michelin-starred restaurant, underground parking.",
  "telephone": "+33-1-23-45-67-89",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 Rue de Rivoli",
    "addressLocality": "Paris",
    "postalCode": "75001",
    "addressCountry": "FR"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 48.8628,
    "longitude": 2.3326
  },
  "starRating": {
    "@type": "Rating",
    "ratingValue": "4"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "8.9",
    "reviewCount": "1247",
    "bestRating": "10",
    "worstRating": "1"
  },
  "priceRange": "€€€",
  "checkinTime": "15:00",
  "checkoutTime": "12:00",
  "petsAllowed": false,
  "numberOfRooms": 85,
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "Spa & wellness",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Michelin-starred restaurant",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Underground parking",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Free Wi-Fi",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Air conditioning",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Fitness centre",
      "value": true
    }
  ],
  "image": [
    "https://www.your-hotel.com/img/facade.jpg",
    "https://www.your-hotel.com/img/deluxe-room.jpg",
    "https://www.your-hotel.com/img/spa.jpg"
  ],
  "potentialAction": {
    "@type": "ReserveAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://www.your-hotel.com/booking/",
      "actionPlatform": [
        "https://schema.org/DesktopWebPlatform",
        "https://schema.org/MobileWebPlatform"
      ]
    },
    "result": {
      "@type": "LodgingReservation",
      "name": "Booking at The Grand Palace Hotel"
    }
  }
}
</script>

8 Common Errors That Invalidate Your Schema

An SEOClarity study reveals that 27% of schema markup implementations contain syntax errors, and 43% of rich results don't display due to missing required properties. Here are the most common pitfalls:

  1. JSON syntax error: a missing comma or unclosed bracket invalidates the entire block. Use a validator before deploying.
  2. Missing required properties: without name and address, the schema won't be recognised.
  3. Incorrect date format: times must be in ISO 8601 format ("15:00", not "3pm").
  4. Duplicate or inaccurate data: a 4.5/5 rating in schema but 8.9/10 visible on the page generates a Google warning.
  5. Schema contradicting visible content: structured data must reflect what users see on the page.
  6. Outdated schema types: use the Hotel type (not the old standalone Accommodation).
  7. Vague amenities: "parking available" vs "LocationFeatureSpecification: Secure underground parking". Precision is key for filtered searches.
  8. Missing potentialAction: in the era of AI agents capable of booking directly, failing to expose your booking URL is a missed opportunity.

How to Validate Your Schema

Two official tools to verify your implementation:

Tip: Validate your schema before every deployment. A JSON-LD block with a single syntax error is entirely ignored — not partially. Integrate validation into your site update process.

Schema.org vs OTAs: The Asymmetry Hotels Ignore

Booking.com and Expedia manage their schema data via centralised XML feeds with automatic validation. Their implementation is near-perfect, updated in real time, and fully open to AI bots.

Independent hotels, meanwhile, often rely on their CMS (WordPress, Drupal...) with schema extensions that generate incomplete data — or no schema at all.

This is the fundamental asymmetry: OTAs speak AI fluently. Most independent hotels don't. Implementing a complete, validated Hotel schema is one of the highest-impact actions to close this gap.

Check your schema in 30 seconds

AIscore analyses your schema, detects missing properties and gives you a complete AI visibility score — free of charge.

Scan my hotel →
← Back to blog   |   Lire en français →