Schema.org for restaurants: menu, hours and FAQ that machines can read
Guide · Structured data · · 2 min · by the Renver team
Quick answer
Summary
At the least, a restaurant needs Restaurant (name, address, phone, servesCuisine, priceRange), OpeningHoursSpecification for its hours, Menu with MenuSection and MenuItem carrying prices, and, if you like, FAQPage for real frequently asked questions. The markup has to match what is visible on the page.
Structured data is the most direct way to tell a search engine: “this is a restaurant, it opens at noon, it serves moqueca for R$ 89”. For AI assistants it reduces ambiguity: instead of guessing from a PDF menu, the system reads fields that have names.
The types that matter
| Type | What for | Essential fields |
|---|---|---|
Restaurant | The place's identity | name, address, telephone, servesCuisine, priceRange, geo |
OpeningHoursSpecification | Hours, including special ones | dayOfWeek, opens, closes, validFrom, validThrough |
Menu / MenuSection / MenuItem | The menu with prices | name, description, offers.price, suitableForDiet |
FAQPage | Real guest questions | Question.name, acceptedAnswer.text |
AggregateRating | Average rating (optional) | Produces no stars in search for the business itself; do not copy your Google rating |
Two caveats, so you do not expect what the markup does not deliver. Google stopped showing FAQ rich results on 7 May 2026: the markup is still valid schema.org, but the gain is in the visible text of the page. And Google lists no rich result of its own for Menu: the markup is worth having for machine readability, not for a guaranteed search feature.
Common mistakes
- Marking up a price or an opening time that does not appear on the page.
- Marking up the restaurant's own rating as
AggregateRating. Google requires ratings to come directly from users, and it does not show stars when the business itself controls the reviews about itself — including ones embedded from other services, such as Google's own reviews on your site. - A menu that is only an image: with no text, there is nothing to mark up.
- A forgotten public-holiday opening time (in Portuguese, written for Brazilian holidays): the guest finds the restaurant closed and the sources conflict.
Renver generates these pages from the same fact base that feeds its replies to reviews. One fact, one source, every channel. See what assistants read about a restaurant.
Sources
Want this running at your restaurant?
Renver answers the Google reviews that are safe to answer, using facts from your menu, and sends only the sensitive ones to the manager. Pilot programme at a founder price.
See the pilot programme