Restaurant menu schema: how Google reads your menu
Restaurant menu schema is a short block of code on your menu page that lists your sections, dishes and prices in a shared format published at schema.org [1][2]. It only helps when the menu itself is text on the page. Google has no special search result for menus [7], so treat the markup as a clear label on a readable menu, not as a ranking trick.
A friend of ours, Marco, kept his family pizza place's menu online as a PDF of the printed one. A regular told him she'd ordered from the chain down the road one night: the PDF wouldn't open on her phone, and his line was busy. A menu written into the page opens on any phone, and is quick to update when prices change.
Why a photo or PDF menu reads poorly
Search engines read words. A menu typed into the page gives them every dish and price as text, and a diner reads it without zooming.
A photo of the menu is an image. Google says it works out what an image is about from its alt text and the words near it [9]. It doesn't say it reads the prices inside the picture.
A PDF sits in between. Google lists PDF among the file types it can index, by pulling the text out of the file [8]. A PDF made from a scan or phone photo holds only a picture of the words, and any PDF opens on a phone as a separate file to pinch and zoom.
To put a menu on a page as text without a developer, see how to create a restaurant menu online for free.
A menu drawn by a script after the page loads, or kept behind a bot check, can also come out empty. When we read the menus of 19 independent restaurant sites in October 2026, 6 gave no menu text to a plain page request: 4 sat behind bot checks and 2 built the menu in the browser.
What the markup is: Menu, MenuSection, MenuItem, Offer
For a restaurant, these pieces nest inside each other:
- Restaurant: a kind of FoodEstablishment, which is a kind of LocalBusiness [1]. It holds your name, address, hours and cuisine.
- hasMenu: the link from the restaurant to its menu, "either the actual menu as a structured representation, as text, or a URL of the menu." It replaced the older
menuproperty [3]. - Menu: "a structured representation of food or drink items available from a FoodEstablishment" [2]. It holds sections (
hasMenuSection) or dishes directly (hasMenuItem). - MenuSection: "a sub-grouping of food or drink items in a menu", such as Starters, Pizzas or Drinks [4].
- MenuItem: one dish or drink, with
name,descriptionandoffers[5]. It can also carrysuitableForDiet(vegan, halal) andmenuAddOnfor extras such as a side of fries [5]. - Offer: the price. schema.org asks for the number alone, a period for decimals and no "$", with the currency as a code such as USD [6].
Google recommends writing structured data as JSON-LD: a script block in the page, kept apart from the text diners see [10].
A plain JSON-LD example
This goes inside a <script type="application/ld+json"> tag on your menu page. The names are made up; every dish and price in it must also show on the page.
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Example Pizza Co.",
"telephone": "+1-555-010-0100",
"servesCuisine": "Pizza",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Main St",
"addressLocality": "Springfield",
"addressRegion": "IL",
"postalCode": "62701"
},
"hasMenu": {
"@type": "Menu",
"hasMenuSection": [{
"@type": "MenuSection",
"name": "Pizzas",
"hasMenuItem": [{
"@type": "MenuItem",
"name": "Margherita, 14 inch",
"description": "Tomato, mozzarella, basil",
"offers": {
"@type": "Offer",
"price": "16.00",
"priceCurrency": "USD"
}
}]
}]
}
}
What Google says about menus today
- No menu rich result. Google's search gallery lists 25 features structured data can unlock, and none is a menu. The nearest is Local business: hours and ratings in the panel beside results [7].
- The menu's address. Google's local business guide lists
menuas a recommended property: "For food establishments, the fully-qualified URL of the menu" [11]. That is the older name schema.org has replaced withhasMenu[3]. - Mark up only what's shown. "Don't mark up content that is not visible to readers of the page" [12].
- No promises. "Google does not guarantee that your structured data will show up in search results" [12].
- Your profile can pick up your site's menu. "Google may transcribe menu data from your business website so that it appears accurately on your Business Profile" [13].
Your Google Business Profile: menu link and order links
Many diners first see your menu on Google Maps, so set the profile up too [13] (the full walk-through is in Google Business Profile for restaurants, and every menu step, with fixes for a wrong or missing menu, is in how to add a menu to your Google Business Profile):
- Menu link: Edit profile, then Business information, Contact, Menu link. Paste your menu page's address and save.
- Menu items: food and drink businesses can type sections, dishes, descriptions and prices under Edit menu. Changes can take 24 to 48 hours to show on Maps and Search.
- Menu photos: diners can add their own; flag an old one and upload a current one.
- Several menus found: pick yours under Edit menu, Full menu tab.
- Order links: under Food ordering, turn on Accept orders on your profile, choose Add a link, and set it as preferred for pickup or delivery [14]. A link you add can send diners to your own page instead of a delivery app.
Checklist
- Put the whole menu on your site as text: sections, dishes, sizes and prices. Keep a PDF only as an extra download.
- Give the menu its own page, such as /menu, linked from your home page.
- Add the JSON-LD above, built from that same menu, so the two never disagree.
- Check it: Google's Rich Results Test or URL Inspection tool for what Google reads [12], and schema.org's Schema Markup Validator for every piece, menu included [15].
- Set your Business Profile's menu link to that page, and add your own order link if you take orders.
- When a price changes, change the page and the code the same day.
Does menu schema help my restaurant rank higher?
Nobody can promise that. Google presents structured data as a way to describe a page, with no guarantee it is shown [12], and lists no menu result [7]. A text menu does give them your dishes in words.
Is a PDF menu bad for Google?
Not useless: Google can index a PDF's text [8], but a scan has none, and phones open PDFs badly. Keep it as a printable extra next to a text menu.
If your PDF menu is behind a QR code, how to make it readable on a phone and keep the code working is in PDF menu to QR code.
Do I still need the menu on my Business Profile?
Yes. Google may copy your menu from your site [13], but setting the link yourself means the profile shows the menu you chose.
Do I need a developer to add menu schema?
Not if your site lets you paste code into a page: copy the example and fill in your dishes. The real work is editing both page and code at every price change, or using a tool that writes the code from the menu.
Where Full Room fits
We're product designers and engineers who built a system that does this part for you. Full Room builds your menu page as text, with this markup, from your menu photo, PDF or old site. A price you change from your phone changes in both. It's free for good, up to 50 orders a month; Full Room Pro, $149 a year, adds your own .com (we register it and point it at your menu) and unlimited orders. A free QR code menu comes with it, and the QR never changes when your prices do. We can't promise how Google shows any page: that is Google's choice.
Sources
- Restaurant, schema.org, read Oct 25, 2026.
- Menu, schema.org, read Oct 25, 2026.
- hasMenu, schema.org, read Oct 25, 2026.
- MenuSection, schema.org, read Oct 25, 2026.
- MenuItem, schema.org, read Oct 25, 2026.
- Offer, schema.org, read Oct 25, 2026.
- Structured data markup that Google Search supports, Google Search Central, read Oct 25, 2026.
- File types indexable by Google, Google Search Central, updated Feb 3, 2026, read Oct 25, 2026.
- SEO Starter Guide, Google Search Central, updated Dec 10, 2025, read Oct 25, 2026.
- Introduction to structured data markup, Google Search Central, updated Dec 10, 2025, read Oct 25, 2026.
- Local business structured data, Google Search Central, updated Sep 8, 2026, read Oct 25, 2026.
- General structured data guidelines, Google Search Central, updated Jul 10, 2026, read Oct 25, 2026.
- About the menu editor, Google Business Profile Help, read Oct 25, 2026.
- Manage online ordering options, Google Business Profile Help, read Oct 25, 2026.
- Schema Markup Validator, schema.org, read Oct 25, 2026.
Related: how to get your restaurant on Google Maps, what to put on a restaurant website, what a restaurant website costs, all guides.