SwiftSchema Logo

    SwiftSchema

    Intuitive Schema Generation at Your Fingertips

    AboutLearnContact

    Hotel Schema Generator — Win More Qualified Stays

    Generate clean Hotel JSON‑LD for property pages. Clarify address, contact, geo, amenities, check‑in/out, and ratings to improve understanding and trust.

    Why many hotel pages underperform

    Pain points we solve

    • Incomplete address/phone and missing geo reduce map accuracy and discovery.
    • Amenities are listed in prose but not modeled (e.g., Free Wi‑Fi, Pool).
    • Star ratings are mixed with user reviews, causing confusion.
    • Check‑in/check‑out times and canonical image/URL are missing in markup.

    How SwiftSchema helps

    Solution

    The Hotel generator ensures a full PostalAddress, international telephone, geo coordinates, images, and a canonical URL are present in a copy‑ready JSON‑LD block.

    It supports amenityFeature via LocationFeatureSpecification, distinct starRating vs aggregateRating, and explicit checkinTime/checkoutTime to set expectations.

    How it works

    How it works

    1. Choose Hotel in the generator below.
    2. Enter property name, full PostalAddress, telephone, and canonical URL.
    3. Add geo coordinates and at least one image URL.
    4. List amenities using amenityFeature (name + value); set check‑in/out times.
    5. Use starRating for official stars and aggregateRating for user reviews. Copy JSON or Script, paste on the property page, and validate.
    Generate Hotel JSON‑LD

    Paste once per property. Validate. Ship.

    What is Hotel structured data?

    Hotel structured data describes core property details — name, address, contact, amenities, and ratings — so search engines can better understand your listings. Some travel surfaces require partner participation; use markup to keep details accurate and complete.

    Essential schema fields

    1. name
      — property name as displayed on signage and booking sites.
    2. url
      — canonical property page.
    3. image
      — hero photos of rooms, lobby, or exterior.
    4. telephone
      — international format contact number.
    5. address
      — full PostalAddress with street, city, region, postal code, country.
    6. geo
      — latitude/longitude for map accuracy.
    7. amenityFeature
      — list LocationFeatureSpecification entries (Wi-Fi, pool, spa).
    8. checkinTime
      /
      checkoutTime
      — ISO time strings.
    9. priceRange
      — optional; indicate “$$$” or starting rates.
    10. starRating
      — official star classification; separate from
      aggregateRating
      .
    11. aggregateRating
      — user ratings with ratingValue/count.

    Content prep checklist

    • Provide room types, amenities, and on-site services (restaurants, spa).
    • Include check-in/out times, parking info, and pet policies.
    • Add CTA buttons for booking/reservations; specify booking platforms if relevant.
    • List nearby attractions or transportation options to help searchers orient themselves.
    • Show high-quality images of rooms, common areas, and experiences.
    • Highlight accessibility features, sustainability initiatives, and loyalty programs.

    Implementation workflow

    1. Update the property page with the info above (amenities, policies, images).
    2. Generate Hotel JSON‑LD with address, geo, contact info, amenities, check-in/out times, and ratings.
    3. Add
      amenityFeature
      entries
      for differentiators (pool, EV chargers, childcare).
    4. Embed the schema once per property page; disable conflicting LocalBusiness schema if necessary.
    5. Validate using Rich Results Test; resolve warnings for address, telephone, or rating fields.
    6. Monitor Search Console and travel partner dashboards for data alignment.

    Handling multiple properties

    • Use Hotel schema per property. For chains, use Organization schema for the parent brand and link to property pages.
    • Maintain consistent amenity lists across languages/regional sites; localize
      name
      /
      description
      accordingly.
    • For multi-property landing pages, use ItemList to link to each property detail page.

    Ratings and user reviews

    • Use
      starRating
      for official stars;
      aggregateRating
      for user-generated ratings.
    • Ensure on-page ratings match structured data; don’t inflate numbers.
    • If you syndicate reviews from partners, confirm you have rights to display them before adding to schema.

    Troubleshooting checklist

    • Incomplete address: include full PostalAddress; mention suite/tower names.
    • Missing geo: add latitude/longitude for map accuracy.
    • Mixed ratings: keep starRating and aggregateRating separate.
    • Amenity mismatch: only include amenityFeature entries for amenities listed on the page.
    • Price confusion: update
      priceRange
      or offers when rates change; don’t leave stale pricing.

    Common Errors & Fixes

    • Incomplete address: include street, city, region, postal code, and country.
    • Confusing ratings: separate starRating (official) from user aggregateRating.
    • Amenity mismatch: keep amenityFeature aligned with visible amenities.

    Required properties

    • name
    • address.streetAddress
    • address.addressLocality
    • address.addressRegion
    • address.postalCode
    • address.addressCountry
    • telephone

    Recommended properties

    • url
    • image
    • geo.latitude
    • geo.longitude
    • priceRange
    • amenityFeature[].name
    • amenityFeature[].value
    • checkinTime
    • checkoutTime
    • starRating.ratingValue
    • aggregateRating.ratingValue
    • aggregateRating.ratingCount
    Minimal Hotel JSON-LD
    Validate
    {
      "@context": "https://schema.org",
      "@type": "Hotel",
      "name": "Hotel Swift",
      "url": "https://example.com/hotel-swift",
      "image": [
        "https://example.com/images/hotel-swift.webp"
      ],
      "telephone": "+1-555-555-0100",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "100 Main St",
        "addressLocality": "Austin",
        "addressRegion": "TX",
        "postalCode": "78701",
        "addressCountry": "US"
      },
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": 30.2672,
        "longitude": -97.7431
      },
      "checkinTime": "15:00",
      "checkoutTime": "11:00",
      "amenityFeature": [
        {
          "@type": "LocationFeatureSpecification",
          "name": "Free Wi‑Fi",
          "value": true
        },
        {
          "@type": "LocationFeatureSpecification",
          "name": "Pool",
          "value": true
        }
      ],
      "starRating": {
        "@type": "Rating",
        "ratingValue": 4
      },
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4.5",
        "ratingCount": "812"
      }
    }

    FAQs

    Does Hotel structured data make my property appear in Google Hotels?Show
    Hotel markup helps Google understand your property details. Appearance in Google Hotels also involves partner feeds and program participation; markup alone doesn’t guarantee placement.
    How do I represent amenities?Show
    Use `amenityFeature` entries with `LocationFeatureSpecification` objects including `name` (e.g., Free Wi‑Fi) and `value` (true/false).
    How should I publish ratings?Show
    Use `aggregateRating` for user ratings (ratingValue and ratingCount). For official star ratings, use `starRating` with a `Rating` object.
    Are check‑in and check‑out times supported?Show
    Yes. Include `checkinTime` and `checkoutTime` using ISO time strings (e.g., `15:00`).

    Generate Hotel schema

    Fill in page details, copy JSON or Script, and validate.

      Schema Type

      🏨 Hotel Schema Generator

      Enhance hotel listing pages with structured data including address, star rating, amenities, and aggregate ratings to qualify for rich travel experiences.

      Generated Schema

      Validate your schema here.