Google AI Overview and ChatGPT inspect structured data before recommending a restaurant. When the Schema.org Restaurant type is fully populated, visibility multiplies: an Italian restaurant in Ankara completed the six core properties and surfaced in 19 distinct AI Overview queries within four months. This guide walks through the most critical six of the 23 fields with field examples.
The Mandatory Six and How to Use Them
AI engines need at minimum these six fields to understand a restaurant. A missing servesCuisine means ChatGPT will not surface the venue for "Italian restaurant in Cankaya" type queries.
- servesCuisine: Controlled values like "Italian", "Turkish", "Mediterranean"; array for multi-cuisine.
- hasMenu: Full Menu URL or nested Menu/MenuSection object; AI Overview deep-links to the menu page.
- acceptsReservations: "True"/"False" or reservation URL; OpenTable and Resy integrations expect a URL.
priceRange, openingHoursSpecification and paymentAccepted
These three fields let AI filter "cheap dinner" or "open at 11pm" queries. priceRange uses the four-level standard ("$", "$$", "$$$", "$$$$"); free-text like "350-500 TL per person" is silently ignored.
openingHoursSpecification needs an object per day: dayOfWeek, opens (HH:MM), closes. paymentAccepted accepts a comma-separated list like "Cash", "Credit Card", "Cryptocurrency"; spell mobile-payment names exactly as the brand uses them.
Advanced: Nested hasMenu and aggregateRating
The real AI Overview lift arrives when you provide hasMenu as a nested Menu object rather than a URL. Populate MenuSection, MenuItem and even nutrition plus suitableForDiet ("VegetarianDiet", "GlutenFreeDiet") and AI will quote individual dishes.
aggregateRating (ratingValue, reviewCount) triggers the stars rich snippet. In the Ankara case this combination lifted CTR from 18% to 31%; thMenu's admin panel auto-generates JSON-LD for all 23 fields so you can avoid manual edits.
FAQ
How many values can servesCuisine hold? One primary cuisine; a fusion concept can list up to three. Beyond that confuses AI.
Can I write priceRange in local currency? No, Google only accepts the dollar-sign convention; local currency breaks the rich result.
Where do I place the JSON-LD? Inside <head> as a <script type="application/ld+json"> block, identical across pages.
Found this helpful? Share it.
Related articles
The Complete Guide to Running a Multilingual Restaurant Menu
Serving international guests? Learn how to set up a menu that automatically spea…
What Is a QR Code Menu? The Complete Guide for Restaurants
A QR code menu lets customers access your full restaurant menu instantly on thei…
Understanding Your Restaurant's Data: A Practical Analytics Guide
Your menu generates data every day. Learn how to read it, act on it, and use it …