If you’re not a technologist, but instead a restauranteur, this might be a dense technical topic. And while it’s futurecasting a bit, it’s information that might have immense value for your restaurant in the near future. We’re going to talk about the steps that you can take to make sure that search engines, and other automated devices, are able to keep your most valuable information (phone number, hours of operation, location, menu, etc.) up to date, while presenting the best data to your potential customer.

One of the ways this is done is through a language called schema, and the benefits to understanding this language and incorporating it into your website continue to increase.

Schema and Microformatting

We’re going to start by getting the dry and dense out of the way as quickly as possible.

Schema and microformatting are a way to turn the content of your websites into content that is more easily understood by Google and other search engines.

Search engines are always trying to learn more about your business, information such as the type of food you serve, your hours of operation, contact information… as well as what’s a menu, what’s a blog post, what’s a review, etc. Your website can make the search engine’s job easier, and thereby (potentially) get better results and better rankings simply by implementing a language designed to structure your content for easier parsing. We do this through microformatting (HTML is a formatting language, microformatting defines within it), using a structure called Schema.

Below is an example of the same block of information, but the second example has microformatting applied to give the address block greater structure:

<address>
1234 Main Street
Somewhereville, MA 12345-9876
phone: (123) 123-4567
fax: (123)123-9876
</address>

Compared to:
<address itemscope itemtype=”http://schema.org/PostalAddress”>
<span itemprop=”streetAddress”>1234 Main Street</span>
<span itemprop=”addressLocality”>Somewhereville</span>, <span itemprop=”addressRegion”>MA</span> <span itemprop=”postalCode”>12345-9876</span>
phone: <span itemprop=”telephone”>(123) 123-4567</span>
fax: <span itemprop=”faxNumber”>(123) 123-9876</span>
</address>

You can hopefully see how that extra formatting makes it easy for a machine to understand just what it’s “reading”. You can learn more about how schema fits into your semantic search strategy.

Schema’s effects for restaurants

Back in September 2015, I wrote an epic article Restaurant SEO: Your Guide to Google My Business & Local Search. The focus in that article was in encouraging restaurants to claim their Google My Business page in the Google index, and to keep it up to date.

While you might be aware of this, Google is actively pulling information from sources such as 3rd party directories and your own website in order to create these “knowledge panels” that are displayed. It might find that your hours of operation say one thing in Open Table, but might say something else entirely on your own website. And sometimes it gets that information wrong based on how it interprets the data on your website. For many websites, schema isn’t on their radar, and instead Google My Business is the best means for keeping that data correct. But you need to also remember that Google isn’t the only source actively seeking to keep the data up to date, so don’t stop at just Google My Business. Your website’s data that is microformatted aids in the maintenance of your most valuable pieces of information.

Keep in mind: in a large percentage of the queries where this data is shown, this data is fulfilling the information needs of the visitor. That visitor might not need to now go to your website in order to get the information they need to visit your restaurant. The knowledge panel is providing them with many of the primary information points that a potential customer needs when they’re googling your business.

(this might result in fewer visits to your website, but increased customers walking through your doors)

Is schema pushing data formatting beyond Google My Business’s capabilities?

A client case recently gave us pause. Before this case, we knew that Google was looking at your website and parsing the data in order to keep your hours of operation up to date. We didn’t believe that it was possible, beyond “open hours”, to give designations to specific blocks of time, let alone blocks of time within a larger block. Except here, with the example listed below, we seem to have evidence that not only is Google parsing the data in your site in order to update Google My Business hours, but is giving access to fields/functionality beyond that given by the Google My Business access methods.

Google seems to be identifying the “happy hour” block of hours that were specified in the code and giving them special designations within the Google display of the business hours.

How Google is finding and verifying data

Google has told us that it uses schema in order to generate and update the knowledge panels in the search pages. But we should also look at the other methods that Google uses to gather and verify information.

External directories

Google makes extensive use of 3rd party directories to validate data, or to create new records when a record is cross-referenced by multiple high-level directories. Tools such as Moz Local are a cost-effective means of keeping your top-level information accurate across a wide spectrum of directories.

Local Contributors

Over the last two years Google has created an expanded a program called Google Local Guides. The Local Guides program is strongly attached to a person’s Google account, Google Maps, and Google Local, and encourages people to contribute to local listings, leave reviews, upload and share pictures… and verify data.

Google looks for corroboration when it comes to data that has been provided to them from the disparate sources, and one of the ways that Google seems to validate changes is through a human editor. While Google has been using editors in their Mapmaker program (which is closing in March 2017), they now seem to be confident in their usage of directories, schema, Google My Business and local contributors to keep the data accurate.

If a person is signed up as a Local Contributor, when they’re in proximity to a business or the location tracking has noticed them to have been at the business’s location, they’ll get messaged that there is an opportunity for an update available.

Crowdsourced data can be valuable… or it can be notoriously poor. A contributed review might have lots of semantic value, but how much do you trust someone to actually look up the hours of a business and correctly validate the information?

While we can’t be certain how much credibility Google lends to the many ways that it is finding and validating information, we can only hope that it gives priority to structured data on your own website, as well as information supplied by the owner through Google My Business. Don’t leave your data up to chance and local contributors if you can help it: take advantage of schema and Google My Business.

Google My Business

When it comes to managing your business information Google, the best bet is to get set up in Google My Business and check back in on your listing periodically.

Yes, periodically.

When you first claim your listing, you’re likely spending a bit of time to get all of the details in and to make the listing as complete and accurate as possible. And that’s what you should be doing.

But your listing information isn’t static. It’s being added to, suggested changes are being made, Google is cross-referencing that data against other directory data … and it’s imperative that you check your data periodically so that your business isn’t being misrepresented or having incorrect data supplied to your customers.

The case for Menu schema

example of an interactive menu in Google Search results

A restaurant’s menu is one of the most sought-after pieces of data that a restaurant can provide to potential customers (along with phone number, address, hours of operation, all handled in Google My Business). People want easy access to the menu (text not PDFs!), especially on mobile, so they can see what their options are before they choose to “buy” and reserve a table or make plans. Google, being focused on users’ needs, knows this and created a Knowledge Panel for the menu (graphic displayed here), and made it easily interactive for a wide variety of devices.

The only problem is that Google didn’t give restaurants a direct way of updating this data, instead relying on 3rd party providers to give them the requisite data feed. When Google provided this functionality back in March of 2014, I brought the issue up with Google Engineers and Community Managers, but nothing was ever done. The restaurant could be updating their website’s menu daily to feature specials or changing seasonal menus, but their menu in Google Search might be showing dishes that were no longer on the menu from weeks or months ago, leading to irate patrons or missed opportunities. You could structure the data as clearly as you wanted in the website, but while Google would scrape other content from your site (contact info, hours, etc.), it didn’t pull menu data the same way. It was even more disconcerting since Google was choosing not to go with the original source of the data, but with 3rd party providers that were “aggregating” (screen scraping) the content from restaurant websites.

In August 2016 I joined the Schema working group’s repository, with the sole purpose of initiating the creation of a set of definitions to expand how restaurant menus are treated in schema data. A quick refresher: Microformatting, often using schema, is one way that you can provide greater structure and understanding to search engines about your content, and the more you can help them understand your content, often the greater value they place on your content.

I initiated a discussion by submitting an Issue/Request, discussing the current limitations in how menus were treated within Schema for restaurants, and identifying some of the problems that were occurring minus this definition. (You can read the discussion here.) After lengthy discussion with some incredibly detail-oriented engineers and a long period of silence, we have learned that Menu, MenuSection and MenuItem have been added to the forthcoming release (3.2) of schema! We believe our clients, One Midtown Kitchen and TWO Urban Licks, were the first restaurants to take advantage of the new schema.

This isn’t live yet, and it’s not yet being used by Google or other search engines, but it’s important for restaurants to be aware of this and to implement it once it is ready.

How to implement Menu schema microformatting

The Menu schema hasn’t yet been upgraded, and details of it are still being hotly debated and defined, but we’ve taken a stab at how it could be implemented.

<div>
<h4>STARTERS</h4>
<b>Ceasar Salad</b>
<i>A lovely salad with croutons and grated parmesan</i>
$10
-Add poached salmon $5
-Add grilled chicken $4
-Add grilled shrimp $7
</div>

Becomes:

<div itemscope itemtype=”http://schema.org/MenuSection”>
<h4 itemprop=”name”>STARTERS</h4>
<div itemscope itemtype=”http://schema.org/MenuItem”>
<b itemprop=”name”>Ceasar Salad</b>
<i itemprop=”description”>A lovely salad with croutons and grated parmesan</i>
<span itemscope itemtype=”http://schema.org/offers”><span itemprop=”price”>$10</span></span>
<ul itemprop=”hasAddOn” itemscope itemtype=”http://schema.org/MenuItem”>
<li>-Add <span itemprop=”name”>poached salmon</span> <span itemscope itemtype=”http://schema.org/offers”><span itemprop=”price”>$5</span></span></li>
<li>-Add <span itemprop=”name”>grilled chicken</span> <span itemscope itemtype=”http://schema.org/offers”><span itemprop=”price”>$4</span></span></li>
<li>-Add <span itemprop=”name”>grilled shrimp</span> <span itemscope itemtype=”http://schema.org/offers”><span itemprop=”price”>$7</span></span></li>
<ul>
</div>
</div>

A whole lot more detail and structure, but turning an unstructured block of text into a very structured detail of your menu, easily parsed and reverse-rendered by a machine.

Why is this important?

At this time our main focus is in helping get restaurants to use the Menu schema so that Google will begin to incorporate it into their own menu displays. If Google begins to make use of the schema, restaurants could be encouraged to create a variety of menus, and have those menus displayed in the most favorable way within the search engine.

For example,

  • A prix fixe menu
  • A holiday menu available for just one day (user Google’s a restaurant’s Valentine’s Day menu)
  • Daily offerings, date or day based (every Wednesday there is meatloaf added to the menu)
  • Daily specials
  • Variable pricing based on time of day (happy hour appetizers different pricing)
  • Certain items only available during specified hours, the rest of the menu all day

You might notice a few time and date-centric ideas in that list; this is because Google is getting smarter about displaying time-relevant information, so we’re making assumptions that those innovations would also be available for display purposes.

There is now a language and structure defining the data that a menu and menu item should have…. Now we just need Google and other companies to start using it!

So when you’re designing and developing your website, don’t get about the unseen aspects of your website, the schema, as it might be the most important piece of your web presence.

Based on past experiences, if Google is inclined to begin using the Menu schema, they’ll do so by encouraging a limit test inclusion of restaurants to pull data from, or via an announcement along the lines of “Webmasters can gain control of their menu display in our search results by implementing the Menu / MenuItem schema”.  Based on the fact that Google’s representative within the schema working group was involved in this addition, it seems far more likely that it will be implemented.

Empower your restaurant’s digital marketing

Give us a call at 413-282-8742 or contact us to schedule a meeting

Update 4/12/2017

Google has added the ability within Google My Business for restaurant owners to set a link to their online menu. Previously Google would decide what link to use, and this was often (by default) set to a 3rd party rather than the original source (the restaurant).

Update 4/26/2017

Google is now providing structured menus in the Google My Business API, but they seem to have begun implementation before the Menu schema was created (our best guess). Instead, they are using a more generic structure.

Update 6/28/2017

Google has added a Posts functionality to Google My Business that enables restaurants to post their specials, special events, and more directly to the search engine results page and Maps displays.