Home/Playbook/Menu schema and structured data for restaurants

Local & discovery

Structured data: telling search engines exactly what you sell

Restaurant, Menu, Offer and Review schema: what to implement, in what order, and the mistakes that get markup ignored or penalised.

Local & discovery4 sections3 questions answered
Local & discovery illustration

Structured data will not make a bad site rank. What it does is remove ambiguity: it states your hours, your location, your menu, your prices and your delivery options in a form that requires no interpretation. For a restaurant, where hours and location and price are the whole decision, that clarity converts into richer results and better placement in the surfaces customers actually use.

Implement in this order

  1. Restaurant (LocalBusiness). Name, address, geo coordinates, phone, opening hours specification, price range, cuisine, accepted payment, delivery and takeaway availability. One block per location.
  2. Menu and MenuItem. Sections, items, descriptions, prices, dietary attributes. This is what powers menu-rich results.
  3. Offer. Where you have genuine promotional pricing with real validity dates.
  4. AggregateRating and Review. Only from reviews genuinely collected on your own site. Never republish third-party ratings as your own markup.
  5. FAQPage. On pages with real question-and-answer content, which for a restaurant means delivery areas, allergens, ordering and catering.
  6. BreadcrumbList. Cheap, and it improves how your URLs are displayed.

The rules that get markup ignored

Structured data is only useful when it is trusted, and trust is easy to lose.

  • Mark up only what is visible on the page. Markup describing content a user cannot see is a policy violation.
  • Keep prices accurate. Stale prices in markup generate complaints and can get the enhancement withdrawn.
  • Do not mark up ratings you did not collect. Self-serving review markup is explicitly disallowed.
  • One primary entity per page. Ten LocalBusiness blocks on one page tells a search engine nothing usable.
  • Use JSON-LD. It is the recommended format, it is separable from your templates, and it is far easier to validate.

Opening hours are the field worth getting exactly right

More customer frustration comes from wrong hours than from any other structured data field, and hours are also the field most often left stale. Mark up regular hours properly, and mark up special hours for holidays before the holiday rather than after the complaints.

For a business whose peak trade includes holidays, this is not a technical nicety. It is the difference between a customer ordering and a customer discovering you are closed.

Hours markup is the only SEO task that stops people driving to a locked door.

Validate, then watch

Run every template through a structured data validator on publication and again after any template change, because markup breaks silently during redesigns. Then watch search console for enhancement errors: a spike after a deployment usually means a developer changed a field name.

Questions

Does schema markup improve rankings?

Not directly in most cases. It improves how results are displayed and how confidently your business details are understood, which improves click-through and eligibility for richer result types. That is worth doing; the mechanism is just not a ranking boost.

Should every menu item have its own page?

Only where an item has genuine search demand and enough to say: a signature product, a distinctive regional style, a dietary category. Generating a thin page for every topping combination creates a low-quality footprint that hurts more than it helps.

How do I handle multiple locations?

One location page with one LocalBusiness block each, each with its own address, coordinates, hours and phone. Do not put every location into a single page: search engines cannot reliably attribute which is which, and neither can customers.

Keep reading

Related chapters

All 46 chapters

This is one chapter of the job.

marketing.pizza runs all of it, every night, across every store you have.