Skip to content
FeaturesPricingAffiliateBlogHelpAboutContact
Get StartedSign In
Back to Blog
guides2027-10-097 min read

Schema.org Restaurant Properties: servesCuisine, hasMenu, acceptsReservations Guide

Complete list of 23 required and recommended Restaurant schema properties. Ankara restaurant ranked in 19 Google AI Overview queries within 4 months.

th

thMenu Team

thmenu.com

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.