Skip to content

Restaurant Websites

Restaurant structured data: the schema that actually helps

A practical guide to restaurant schema markup: the properties Google documents, the ones worth the effort, how to validate them, and the claims to ignore.

Alex Opsenica, founder of Moolah Media

Alex Opsenica · Founder, Moolah Media

4 min read

Structured data is a block of machine-readable code that tells search engines what a page is about in terms they already understand: this is a restaurant, it serves this cuisine, it opens at these hours, it sits at this address, and this is its menu. It does not change what the page says to a guest. It changes how confidently a search engine can interpret it.

For restaurants the return is unusually good, because almost every fact a guest wants before booking — hours, address, price band, cuisine, menu — is a fact search engines have a documented property for.

Key takeaway

Mark up what is genuinely on the page: Restaurant, opening hours, address, menu and FAQ. Structured data makes accurate information easier to trust; it cannot make a thin page rank.

What structured data does and does not do

Google is explicit that structured data helps it understand content and can make a page eligible for rich results. Eligibility is not entitlement — a valid markup block is a request, not a guarantee, and Google can choose plain results for any query.

  • It does: describe entities and their properties in a standard vocabulary
  • It does: make a page eligible for certain enhanced search appearances
  • It does: reduce ambiguity where your name, address or hours appear inconsistently elsewhere
  • It does not: rank a page on its own
  • It does not: allow you to claim star ratings you have not genuinely collected on your own site

Source: Google Search Central — Intro to how structured data works — Google's own description of eligibility, formats and validation.

Worth avoiding

Self-serving review markup — a restaurant marking up its own aggregate star rating on its own site — is against Google's guidelines and is a common reason restaurant sites lose rich result eligibility entirely.

The markup a restaurant actually needs

Ignore the long tail of schema types. Four blocks cover almost everything a restaurant benefits from, and each maps to a page you should already have.

Restaurant structured data worth implementing

Restaurant

Where it belongs
Homepage and location pages
What it carries
Name, address, phone, cuisine, price range, hours, booking URL, geo coordinates

Menu / hasMenu

Where it belongs
Menu page, referenced from Restaurant
What it carries
Menu sections, items, descriptions and prices

FAQPage

Where it belongs
Pages with genuine question-and-answer content
What it carries
Questions and answers exactly as shown to the guest

BreadcrumbList

Where it belongs
Any page below the homepage
What it carries
The path a guest took, shown in the result

Multi-site groups add one Restaurant block per location page, each with that venue's own address, hours and phone number — never a single shared block repeated across every page.

Source: Google Search Central — Local business structured data — Restaurant is a LocalBusiness subtype; this page documents the supported properties, including menu and reservation actions.

Opening hours: the property most often wrong

Hours in structured data have to match the hours on the page, and both have to match the Business Profile. Where the three disagree, the profile usually wins in Maps and the guest loses in practice — arriving to a closed door and leaving a review about it.

Hours worth checking every quarter

  • Regular weekly hours, expressed per day rather than as a single range
  • Split service — lunch and dinner as separate periods rather than one long block
  • Kitchen close time distinguished from bar or room close time
  • Bank holiday and seasonal closures set in advance
  • The same hours reflected on the website, in the markup and on the Business Profile

Menu structured data is only as good as the page underneath it. A PDF menu cannot be marked up meaningfully, and a menu rendered as a flat image cannot be read at all. The markup is the last ten per cent; an HTML menu with real headings, dish names, descriptions and prices is the other ninety.

Example · hypothetical

Two menu pages, same restaurant

Page one links a 2.4 MB PDF. Nothing about the dishes, prices or dietary options is available to a search engine, and it is close to unusable on a phone. Page two lists sections as headings, dishes as text with prices, and carries Menu markup describing exactly that. Only the second can answer a query about a set menu price.

See this in practice

706,000 impressions — and the reservation page that leaks them.

Premium steakhouse group · name withheld · Dublin 2

706KSearch impressions · recorded in Google Search Console

The full funnel from impression to action, including a reservation page served 124,501 times at a 1.15% click-through rate.

See how page-level performance is read in a real engagement

How to implement it without breaking anything

  1. Write it as JSON-LD in a script tag — Google's recommended format, and the easiest to maintain
  2. Populate it from the same source as the visible page, so the two cannot drift apart
  3. Validate with the Rich Results Test before publishing
  4. Recheck in Search Console after indexing, under the relevant enhancement report
  5. Re-validate whenever hours, menus or booking links change

Source: Google Search Central — Rich Results Test — The validation tool that reports eligibility and errors for a live or pasted page.

Worth avoiding

Never mark up information that is not visible on the page. Structured data describing content a guest cannot see is a guidelines violation and can trigger a manual action.

How to tell whether it did anything

Structured data rarely produces a step change you can point at. What it produces is fewer misunderstandings: correct hours in the result, a breadcrumb path, an FAQ expanded under the listing, a menu that can be quoted. Watch Search Console's enhancement reports for valid items and errors, then watch click-through rate on the affected pages over a full month rather than a week.

Search Console enhancements

Valid items and errors

The only reliable confirmation that Google parsed the markup as intended, rather than that you wrote it correctly.

Search Console performance

Click-through rate, affected pages

Where an enhanced appearance pays off. Compare like-for-like months, not consecutive weeks.

Common questions

Does schema markup improve restaurant rankings?

Not directly. Google describes structured data as helping it understand a page and making it eligible for rich results. The commercial benefit comes from clearer, more trustworthy results, not from a ranking boost.

Can I add star ratings to my own restaurant website?

Not your own aggregate rating on your own site. Self-serving review markup breaches Google's guidelines. Reviews collected on Google, TripAdvisor or a booking platform appear through those platforms instead.

JSON-LD, microdata or RDFa?

JSON-LD. It is Google's recommended format, it sits in a single script tag, and it can be generated from the same data that renders the page, which keeps the two consistent.

Do I need separate markup for each venue in a group?

Yes. Each location page needs its own Restaurant block with that venue's address, phone number, hours and booking link. A shared block repeated site-wide tells search engines the wrong thing about every location.

How often should structured data be reviewed?

Whenever hours, menus, prices or booking links change, and as a standing quarterly check. Most restaurant markup errors are stale facts rather than broken code.

Working on this yourself? Website and technical SEO.

Not sure what your website is telling search engines?

A free visibility audit checks your markup, menu pages and hours against what guests actually see.

Get Your Free Visibility Audit

Written by

Alex Opsenica, founder of Moolah Media

Alex Opsenica

Founder, Moolah Media

Founder of Moolah Media, a founder-led restaurant marketing specialist based in Ireland, working with restaurants worldwide on websites, SEO and Google Maps, and Google Ads. Around 20 years in hospitality, including hands-on restaurant management.

More about how Moolah works.

Continue exploring

More on Restaurant WebsitesAll insights