AI & Restaurants
How Structured Data Helps AI Understand Your Restaurant
Structured data is a machine-readable description of the facts on a page — written in the shared schema.org vocabulary and usually embedded as JSON-LD. For a restaurant it states, without ambiguity, what the business is, where it is, when it is open and what is on the menu, so search engines and the systems built on them do not have to guess from the layout. It helps only when it is complete and true to the page; it does not by itself guarantee any appearance in search or AI answers.
The types that matter
| Type | What it describes | Key properties |
|---|---|---|
| Restaurant | The business (a kind of FoodEstablishment and LocalBusiness) | name, address, geo, telephone, openingHoursSpecification, priceRange, servesCuisine, acceptsReservations, hasMenu, sameAs |
| Menu | The menu as a whole | hasMenuSection, hasMenuItem |
| MenuSection | A group of dishes: starters, mains, drinks | name, hasMenuItem |
| MenuItem | A single dish or drink | name, description, offers (price and currency), nutrition, suitableForDiet, menuAddOn |
schema.org describes hasMenu as either a structured menu, the menu as text, or a link to it; acceptsReservations can be yes or no, or a link where bookings are made. A structured menu is the most precise of the three.
Why it helps machines
- No guessing: "12:00–15:00, Monday to Friday" in markup cannot be confused with a delivery window or an event time on the same page.
- One identity: sameAs links your site, social profiles and map listing to the same business.
- Dish-level facts: a price with its currency, a description, nutrition, and dietary suitability can be read item by item.
- Questions with conditions — "open now", "near me", "takes bookings" — map directly onto properties.
The rules
- Mark up only what visitors can see on the page; Google's guidelines forbid marking up hidden content.
- Make the markup a true representation of the page: the same hours, the same prices.
- Generate it from the same data as the page, so the two cannot drift apart.
- Leave a property out rather than guess it: a cuisine inferred from a category name is worse than none.
- Validate it after changes, and remember that valid markup is not a promise of any special display.
Where structured data fits in the bigger picture: how to make your restaurant ready for AI search.
Common mistakes
- Opening hours in the markup that differ from the hours on the page or on your listings.
- A menu marked up once and never updated, while the real menu changes.
- Prices without a currency.
- Ratings or reviews written into the markup that the page does not show.
Structured data in Thmenu
Thmenu generates schema.org data for every restaurant from the profile and menu you keep in the panel. The restaurant entry carries the name, description, images, phone, address, coordinates, opening hours, price range and links to your website and social profiles; cuisine, reservations and similar attributes appear only when you have declared them, never guessed. The menu is marked up as sections and dishes with each available dish's price and currency, and calories where you entered them. Allergens and dietary labels are shown on the menu page but are not part of the markup today.
See the restaurant website Thmenu builds from your menu.
Sources
- schema.org — Restaurant (accessed 28 October 2026)
- schema.org — Menu (accessed 28 October 2026)
- schema.org — MenuItem (accessed 28 October 2026)
- Google Search Central — General structured data guidelines (accessed 28 October 2026)
- Google Search Central — AI features and your website (accessed 28 October 2026)