How to Get Started with New Restaurant Menu Schema Markup

Up until recently Schema.org’s support for structured data in website design and implementation has lacked any sophisticated functionality for restaurant websites to markup their menus. It was never intended as a comprehensive vocabulary for every specialized business function, but in the latest release webmasters for restaurant websites will now have the ability to do more with schema.

Restaurant Menus in Schema

Before this update, restaurants could do little more than mark up their basic info such as name, address, phone number, hours of operation, (etc.).

In terms of structuring the data in their menus, all restaurant business websites had before was a basic menu property that could mark up their entire menu as a string of text, or point to the URL where their menu can be found. There was no way of actually marking up individual menu items and their associated information, such as prices or what type of menu they are on (breakfast, lunch, dinner).

The Schema Restaurant Update

Now restaurant owners and those who optimize restaurant websites for search engines now have the ability to use several new properties and types to actually structure the data rich information contained in a restaurant menu. These properties will also be of use to websites for other businesses that have menus, like coffee shops, bakeries, bars, and so forth.

hasMenu and hasMenuItem in Schema

So, to get started you’ll want to visit the schema.org/Restaurant page, where you’ll notice the old menu property has been replaced with a hasMenu property. Menus are now actual entities in schema.org with their own properties and subtypes. Objects of the type Menu now also have a hasMenuItem property, which can point to the new MenuItem entities, used to markup individual menu items.

Now for each MenuItem you will be able to mark up its name, a description, its price, and even its nutritional values. Another feature related to nutrition is the suitableForDiet property to categorize menu items that are low calorie, paleo, vegan, gluten free, or friendly to some other specialize dietary requirements.

hasMenuSection in Schema

Most restaurants have more than one menu, such as a lunch and dinner menu, so schema has built in a hasMenuSection property to cover this, and a MenuSection type that can be used to mark up the different menus. It can also be used to markup categories within these menu sections, such as appetizers, soups and salads, entrees, beverages, and desserts within the dinner menu.

Marking Up Restaurant Menus with Schema

First, use the hasMenu property on the home page to point to the menu like this:

“name”: “Your Restaurant’s Name”,