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, Moolah Media
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.
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.
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.
| Type | Where it belongs | What it carries |
|---|---|---|
| Restaurant | Homepage and location pages | Name, address, phone, cuisine, price range, hours, booking URL, geo coordinates |
| Menu / hasMenu | Menu page, referenced from Restaurant | Menu sections, items, descriptions and prices |
| FAQPage | Pages with genuine question-and-answer content | Questions and answers exactly as shown to the guest |
| BreadcrumbList | Any page below the homepage | The path a guest took, shown in the result |
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.
Menu markup, and why the page matters more
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.
How to implement it without breaking anything
- Write it as JSON-LD in a script tag — Google's recommended format, and the easiest to maintain
- Populate it from the same source as the visible page, so the two cannot drift apart
- Validate with the Rich Results Test before publishing
- Recheck in Search Console after indexing, under the relevant enhancement report
- 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.
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.
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 AuditWritten by

Alex Opsenica
Founder, Moolah Media
Founder of Moolah Media, a specialist restaurant growth and local SEO agency based in Ireland, working directly with hospitality operators on search, Google Business Profile and bookings.
Continue exploring
Restaurant Websites
Restaurant menu pages that search engines can actually read
Menu pages are the most-visited page on most restaurant sites, and usually a PDF. How to build one that works for guests and for search.
4 min read
Read InsightRestaurant Websites
What every restaurant website needs for search
The website fundamentals that affect restaurant discovery and booking: readable menus, location content, schema and mobile speed.
3 min read
Read InsightRestaurant Websites
Restaurant location pages: structure, content and mistakes
How to structure a restaurant location page that ranks and converts: address and hours in text, directions, parking, menus, structured data and booking.
3 min read
Read Insight


