Warning: ini_set(): Cannot change zlib.output_compression - headers already sent in /home/content/51/4900151/html/wp-content/themes/thesis_186/custom/custom_functions.php on line 27
Schema.org Gets Hospitable with Release 3.1 for the Hotel Industry

Schema.org Gets Hospitable with Release 3.1 for the Hotel Industry

by Brad Brewer on August 8, 2016

in Search Engines, Semantic Web, SEO

Schema.org Gets Hospitable with Release 3.1 for the Hotel Industry

Dan Brickley of Google announced a major new release of schema.org today, bringing with it some fairly groundbreaking updates to the hotel and accommodation vocabulary. Dubbed “makemake,” schema.org version 3.1 integrates the work of Martin Hepp and Hepp Research GmbH with the existing hospitality schemas, constituting the most significant update for the hospitality industry since the initial releases of schema.org.

This update brings rich semantic hospitality to schema.org, which itself has been overwhelming adopted, to varying degrees, throughout the hospitality industry. Nearly all major hotel brands and OTAs (Online Travel Agencies) currently include at least one schema.org object in their online platforms, with some brands leading the pack with a wide variety of relevant types and properties, inlcuding Marriott and Wyndham Extra Holidays.

The Accommodation Ontology in schema.org

Hepp’s latest contributions are based on the STI Accommodation Ontology, a hospitality-centric extension of the GoodRelations ecommerce vocabulary. Initially released in 2012, Hepp’s Accommodation Ontology project now joins with schema.org to add a fairly broad array of properties and types, allowing administrators to define critical business details for hotels, vacation rentals, campgrounds and other common lodging businesses.

The extension aims to represent the business functions of any given lodging establishment through three core objects:

  • A Lodging Business – The business entity, e.g. hotels, hostels, campgrounds, etc.
  • An Accommodation – The actual units within the lodging business offered for rental, e.g. rooms, suites and houses
  • An Offer – The offer to let the accommodation for a certain price

In following existing schema.org conventions, accommodations function as products and all price information associated with an accommodation is expressed through offers:

The Accommodation Ontology Mapped to Schema.org

(click to enlarge)

The chart above shows just a few of the new properties and types included in today’s update, the most notable changes being the addition of the Accommodation item type and the significant expansion of available LodgingBusiness properties. Read on to learn more about what’s new in this release, and why it should matter to every hotelier online.

Key hotel/accommodation vocabulary updates in schema.org 3.1

Looking for a hotel and accommodation json-ld generator for schema.org?

What this means for hospitality

This update offers the hospitality industry the potential for an unprecedented level of search engine discoverability in the near future, which will dramatically improve the transparency and accessibility of their product offerings online. The addition of accommodation units, along with many of the other significant changes in this update, allows hoteliers to unambiguously declare their hotel star rating, the number of rooms and their floor space, the nightly prices and bed types for each room, hotel/room amenities, pet-friendliness and many more newly added or attached properties.

Since search engines will know exactly what your business has to offer, they can give searching consumers exactly what they want. This new mountain of information about your hotel will make it much easier for Google, Bing and Yahoo! to generate rich structured hotel cards for your business, matching customers to your accommodations with razor-sharp relevance by cross referencing your business offerings with a potential guest’s narrowly filtered hotel searches and profile behavior.

All these factors considered, the release of 3.1 should lead to schema.org markup becoming increasingly more applicable and actionable—and therefore adopted—across the hospitality industry at large. Just don’t get left behind!

Summary: schema.org 3.1 distilled

Along with some general bug fixes and dataset improvements, today’s release significantly expands schema.org’s hospitality vocabulary, allowing hoteliers and other lodging establishments to easily express their business offerings to search engines with dramatically improved specificity. Hotels are now rich semantic objects, complete with rooms, beds, administrative policies and nightly rates, empowering search engines to place your products in front of qualified travel searchers.

Code Example: Hotel with Nested Hotel Room in JSON-LD

<script type="application/ld+json">
  "@context": "http://schema.org",
  "@type": "Hotel",
  "name": "The Raphael Hotel",
  "url": "http://www.raphaelkc.com/",
  "logo": "http://developers.brewerdigitalmarketing.com/img/Raphael-Logo.gif",
  "description": "The Raphael Hotel is an upscale historic US Renaissance revival-style building dating dating back to 1928.",
  "telephone": "+1-816-756-3800",
  "email": "info@raphaelkc.com",
  "checkinTime": "2017-01-04T10:30-0700",
  "checkoutTime": "2017-01-08T10:30-0700",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "325 Ward Parkway",
    "addressLocality": "Kansas City",
    "addressRegion": "MO",
    "postalCode": "64112",
    "addressCountry": "USA"
  "geo": {
  "starRating": {
    "@type": "http://schema.org/Rating",
    "ratingValue": "4"
  "petsAllowed": "True",
  "smokingAllowed": "False",
  "amenityFeature": {
    "@type": "LocationFeatureSpecification", "value": "True", "name": "Fitness Center"
  "containsPlace": [ {
      "@type": "HotelRoom",
      "name": "Luxury King Guestroom",
      "url": "http://www.raphaelkc.com/suites/guest-room.aspx",
      "description": "The Raphael Hotel is an upscale historic US Renaissance revival-style building dating dating back to 1928.",
      "logo": "http://developers.brewerdigitalmarketing.com/img/Raphael-Room.jpg",
      "amenityFeature": [ {
         "@type" : "LocationFeatureSpecification", "value": "True", "name": "Keurig Gourmet Coffee and Tea Brewing System"
         } ]
      } ] 

Please note that Google's Structured Data Testing Tool usually takes 2-3 weeks to begin validating new updates to schema.org.

1 Rotimi August 9, 2016 at 8:15 am

Great post Brad Brewer.

I ran a quick check with the Google SDTT tool and found 10 errors with the code (sometimes I can’t help but think that tool was created to discourage everyone from using structured data on their websites).

Is it only the recently added properties that Google isn’t recognizing (for now)? Or is there actually something wrong with the JSON-LD snippet? I suspect the former is more likely the case anyway.

2 Brad Brewer August 9, 2016 at 8:32 am

Thanks, Rotimi.

Our example is using new schema.org types and properties released in 3.1, so the Structured Data Testing Tool is showing errors. Dan Brickley mentioned in past releases that Google’s SDTT usually takes 2-3 weeks to begin validating new updates to schema.org.

3 Rotimi August 11, 2016 at 4:29 am

I guessed as much. Thanks

4 Jeannie Hill August 9, 2016 at 10:40 am

Thanks for another great article, Aaron Bradley! It is interesting to see which niche comes up first in priorities for gaining new reach online via structured data. Since we need to give 2-3 weeks for Google’s Structured Data Testing Tool to adjust, how do you recommend that we test?

5 Brad Brewer August 9, 2016 at 11:10 am

Over at Brewer Digital Marketing we’ve found that Google Search Console will parse the new types and properties before the Structured Data Testing Tool. We recommend fetching as Google from Search Console and submitting pages directly for faster results.

6 Tim Backes August 10, 2016 at 6:38 pm

Just started getting into schema and didn’t realize just how much info you can highlight with it. I don’t currently have any clients in the hospitality sector, but if I get one I’m sure I’ll be back to this post.

7 ColinK August 12, 2016 at 3:57 pm

Great information.

Would be keen to read how Accomodation / House and Apartment can best be used fro Real Estate.

I know there is still discussion going on with RESO, for now it seems House and Apartment are just borrowing from the Hotel Schema. Eg If a house has an Aga Oven and Close to a School, could these be amenities?

8 Simona @ Alia Accommodation August 19, 2016 at 7:17 am

Very informative article. Our company offers serviced apartment in the same area of Bucharest, but they are distinct apartments in various buildings.
After reading schema.org as well I am really blocked…:
– our site is currently marked as lodgingBusiness and each apartment as Product (doesn’t sounds so great..but that is all I had..)

So, now “lodgingBusiness” becomes “Accommodation” and each apartment becomes “Apartment”? – I would bet for this version!
Do I keep “lodgingBusiness” and each apartment becomes “Accommodation”?

It is confusing from schema.org to understand…

I would appreciate an answer. Many thanks!

9 Keith Horwood September 7, 2016 at 9:40 am

I’m testing some of these new ones on a site at the moment. Accommodation + Room + Offer should be ideal for what I need.

Will follow up once live 🙂

10 Sidra Khan October 5, 2016 at 1:48 am

good post but i have homelocation error what should i do

11 Aaron Bradley December 1, 2016 at 9:27 am

I’d require more details to provide a meaningful response. If this is still an issue for you please post your question at Semantic Search Marketing.

12 Nick November 4, 2016 at 12:52 am

Is it possible to place the entire code in a single page?

I thought that only visible to the user content should be marked up. But I constantly see schema code with properties that are not mentioned on the source code.

Please advise on the best practices! Thanks.

13 Aaron Bradley December 1, 2016 at 9:39 am

The data provided doesn’t necessarily need to visible to users, as long as it accurately reflects the content present on the page. Google has this to say in its structured data guidelines:

High-quality structured data must not create a misleading or deceptive experience for search users. It should be an up-to-date and accurate reflection of the topic and content already found on the page, such as text, images, and videos.

14 sindhubell November 4, 2016 at 10:28 pm


I have definitely picked up anything new from right here. I did however expertise a few technical points using this site, They’re really convincing and will definitely work. Still, the posts are too brief for newbies. May you please extend them a little from subsequent time?

15 Marco Z November 22, 2016 at 12:54 am

This seems to be a very substantial update, I’m liking it. And thanks for providing code example — it was extremely helpful!

16 Matt L Scott December 2, 2016 at 11:17 am

Excellent post Brad. Have to admit I only understand the basics of schema. Interesting to see this roll out in industry specific fashion. Obviously theres going to be certain critical elements in some markets that the default schema would just be too basic for. Much to learn and thanks for the update.

17 Samuel December 21, 2016 at 10:51 am

Thank you for the post, two questions: is it necessary to include the JSON-LD structure in every page of the web site? How do you can manage multiple languages on properties like “description”?

18 Aaron Bradley March 9, 2017 at 8:26 am

One – where you need to include your code depends on the entity being marked up. Declarations for some types, like the Organization for a local business website, need only be coded on the home page. Other types, like an Article, require the markup to be added to every unique article page.

Two – you can encode an array of descriptions for different languages by using the @language and @value keys.

<script type="application/ld+json">
  "@context": "http://schema.org",
  "@type": "WebSite",
  "description": [
    "@language": "en",
    "@value": "A beautiful website."
    "@language": "fr",
    "@value": "Un beau site web."

19 PNR Enquiry December 28, 2016 at 12:22 pm

Thanks a lot for sharing such a useful information. Brad would you please tell me the schema about displaying technical support customer care number. As you search “sony toll free number” you get number on top, i want the schema like this can you help me.

20 Brad Brewer December 28, 2016 at 4:32 pm

Thanks for your question, PNR Enquiry.

You can view a live website using contactPoint at http://www.american-inn.com/, or I’ve provided a JSON-LD example below.

“@context”: “http:\/\/schema.org”,
“@type”: “Hotel”,
“name”: “American Inn of Bethesda”,
“address”: {
“@type”: “PostalAddress”,
“streetAddress”: “8130 Wisconsin Avenue”,
“addressLocality”: “Bethesda”,
“addressRegion”: “Maryland”,
“postalCode”: “20814”,
“addressCountry”: “USA”
“telephone”: “+1-301-656-9300”,
“url”: “http:\/\/www.american-inn.com\/”,
“logo”: “http:\/\/www.american-inn.com\/wp-content\/uploads\/2015\/01\/AmericanInnLogoL.png”,
“image”: “http:\/\/www.american-inn.com\/wp-content\/uploads\/2015\/01\/American-Inn-of-Bethesda-600×500.jpg”,
“priceRange”: “$$”,
“email”: “AmericanInnBethesda@baywoodhotels.com”,
“starRating”: {
“ratingValue”: “2”
“description”: “The American Inn of Bethesda offers a welcoming atmosphere, warm hospitality and a lineup of professional business amenities catering to corporate and pleasure travelers alike. With the perfect Bethesda location just 4 miles from D.C., the intimate American Inn is the closest hotel to NIH and offers a winning blend of well-appointed accommodations and amenities in a comfortable suburban location. Indulge in an array of modern conveniences, including free high-speed Wi-Fi, 24-hour business and fitness centers, complimentary breakfast, an on-site restaurant and free on-site parking, plus so much more! The American Inn is also happy to offer discounted rates to visitors to the National Institutes of Health on either corporate or personal business. Please contact the hotel directly for more information.”,
“amenityFeature”: [{
“@type”: “LocationFeatureSpecification”,
“value”: “True”,
“name”: “Accessible”
}, {
“@type”: “LocationFeatureSpecification”,
“value”: “True”,
“name”: “Air-conditioned”
}, {
“@type”: “LocationFeatureSpecification”,
“value”: “True”,
“name”: “Restaurant”
}, {
“@type”: “LocationFeatureSpecification”,
“value”: “True”,
“name”: “Smoke-free”
“smokingAllowed”: “False”,
“petsAllowed”: “False”,
“sameAs”: [“https:\/\/www.facebook.com\/American.Inn.Bethesda\/”, “https:\/\/www.tripadvisor.com\/Hotel_Review-g41003-d83963-Reviews-American_Inn_of_Bethesda-Bethesda_Maryland.html”, “https:\/\/twitter.com\/AmericanInnMD”, “https:\/\/plus.google.com\/+AmericanInnofBethesda”, “https:\/\/foursquare.com\/v\/american-inn-of-bethesda\/4bc3fe96dce4eee1badc719d”, “https:\/\/www.pinterest.com\/AmericanInnMD\/”],
“contactPoint”: {
“@type”: “ContactPoint”,
“contactType”: “Reservations”,
“telephone”: “+1-301-656-9300”,
“faxNumber”: “(301) 656-2907”,
“email”: “AmericanInnBethesda@baywoodhotels.com”

21 Jonathan Strong January 8, 2017 at 3:26 pm

Having Schema structure on a website can definitely add a boost in your conversions if you’re already seeing incoming traffic. Sadly I see lots of local businesses getting burned by SEO’s who pay for plugins to do this, fake the results and end up with penalized pages. Glad to hear that Schema is improving overall at least!

22 Barbara Bazos August 22, 2017 at 5:49 pm

Hi Brad,

For an apartment rental website which features furnished luxury apartments for rent across various high-rise complexes/properties throughout various cities nationwide (US), would you recommend using both the Schema.org markup for “Apartment” (http://schema.org/Apartment) and “RentAction” (http://schema.org/RentAction) or something different? Thanks!

23 Aaron Bradley August 25, 2017 at 12:26 pm

Short answer, something different. 🙂 I think you’ll find this GitHub thread useful in figuring out some of the code you should employ. Note in regard to code (especially this) that was flagged as not being properly parsed by Google’s Structured Data Testing Tool that they have since updated the Tool so that multi-typed entities are now correctly handled.

24 Jeroen September 28, 2017 at 1:11 am

Hi Brad

We run a travel website that offers all inclusive holiday packages, flight car and accommodation. I would really like some advise in how to approach this.

I have seen use offer and a product add a event etc.

In essence I have a accommodation which is hotel
I have a car with choices
I have flights with choices

And all of this has different prices and departure dates.

Any hint of direction will help 🙂



25 Jarno van Driel December 19, 2017 at 12:52 pm

Hi Jeroen,

Please ask your question here.

26 Lean March 9, 2018 at 2:38 am

What about the price range for hotelRoom type?
I’d like to test using price average for each hotel room type, rather than applying it to hotel type. Just a bit confused whether it’ll be accepted. Or should I use offers for it?

Previous post:

Next post: