Build my menu freeBuild free

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:

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

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):

Checklist

  1. Put the whole menu on your site as text: sections, dishes, sizes and prices. Keep a PDF only as an extra download.
  2. Give the menu its own page, such as /menu, linked from your home page.
  3. Add the JSON-LD above, built from that same menu, so the two never disagree.
  4. 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].
  5. Set your Business Profile's menu link to that page, and add your own order link if you take orders.
  6. 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.

Build my menu free

Sources

  1. Restaurant, schema.org, read Oct 25, 2026.
  2. Menu, schema.org, read Oct 25, 2026.
  3. hasMenu, schema.org, read Oct 25, 2026.
  4. MenuSection, schema.org, read Oct 25, 2026.
  5. MenuItem, schema.org, read Oct 25, 2026.
  6. Offer, schema.org, read Oct 25, 2026.
  7. Structured data markup that Google Search supports, Google Search Central, read Oct 25, 2026.
  8. File types indexable by Google, Google Search Central, updated Feb 3, 2026, read Oct 25, 2026.
  9. SEO Starter Guide, Google Search Central, updated Dec 10, 2025, read Oct 25, 2026.
  10. Introduction to structured data markup, Google Search Central, updated Dec 10, 2025, read Oct 25, 2026.
  11. Local business structured data, Google Search Central, updated Sep 8, 2026, read Oct 25, 2026.
  12. General structured data guidelines, Google Search Central, updated Jul 10, 2026, read Oct 25, 2026.
  13. About the menu editor, Google Business Profile Help, read Oct 25, 2026.
  14. Manage online ordering options, Google Business Profile Help, read Oct 25, 2026.
  15. 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.