jsonld@web
jsonld@web:/restaurant-menu-json-ld-sample$  cat ./restaurant-menu-json-ld-sample.jsonld
rich results · passed @type · example

> Restaurant Menu JSON-LD Sample

Sample JSON-LD code for your restaurant or food establishment including restaurant markup and multiple menu types e.g. menuSection and menuItem.

published
modified
size
1.4K
path
/restaurant-menu-json-ld-sample/

Last updated March 22, 2024 by Patrick Coombe

For some reason not as common as a year or so ago, restaurant menus can appear in search results if the gods of Google deem your site and structured data worthy. My personal theory is they started to deprecate this feature around the same time they added it to Google My Business.

The best thing you can do in 2024 with a restaurant menu is to add your menu to places like:

In addition to having your menu on your website and GBP, I also recommend having a PDF version of your menu available for download. Some folks still just prefer having a PDF. Keep your menu simple and mobile friendly. Avoid features, don't make it fancy. Having a great menu can be the difference to booking a reservation or not. End rant.

Here is a nice JSON-LD example from 2024 that validates. It has both restaurant and restaurant menu @ types within it and several menu items with descriptions within it.

restaurant-menu-json-ld-sample.jsonld · 3.0K test
{
        "@context": "http://schema.org",
        "@type": "Restaurant",
        "url": "http://www.pronto-ny.com",
        "name": "Restaurant Pronto",
        "image": "http://www.pronto-ny.com/pronto-image.jpg",
        "description": "Best pizza in New York, guaranteed!",
        "servesCuisine": [
            "Italian"
        ],
        "hasMenu": {
            "@type": "Menu",
            "name": "Dine-In Menu",
            "description": "Menu for in-restaurant dining only.",
            "hasMenuSection": [{
                "@type": "MenuSection",
                "name": "Dinner",
                "description": "Dinner dishes",
                "image": "https://pronto-ny.com/dinner_dishes.jpg",
                "offers": {
                    "@type": "Offer",
                    "availabilityEnds": "T8:21:00",
                    "availabilityStarts": "T8:21:00"
                },
                "hasMenuSection": [{
                        "@type": "MenuSection",
                        "name": "Starters",
                        "description": "Appetizers",
                        "image": "https://pronto-ny.com/starters.jpg",
                        "offers": {
                            "@type": "Offer",
                            "availabilityEnds": "T8:21:00",
                            "availabilityStarts": "T8:21:00"
                        },
                        "hasMenuItem": {
                            "@type": "MenuItem",
                            "name": "Chips",
                            "description": "Small serving of potato chips.",
                            "offers": {
                                "@type": "Offer",
                                "price": "5.49",
                                "priceCurrency": "USD"
                            },
                            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
                        }
                    },
                    {
                        "@type": "MenuSection",
                        "name": "Soups & Salads",
                        "description": "A few choices of soup and salads",
                        "image": "https://pronto-ny.com/soup_and_salads.jpg",
                        "offers": {
                            "@type": "Offer",
                            "availabilityEnds": "T8:21:00",
                            "availabilityStarts": "T8:21:00"
                        },
                        "hasMenuItem": {
                            "@type": "MenuItem",
                            "name": "Tomato Basil Soup",
                            "description": "Creamy tomato soup seasoned with fresh basil and topped with sourdough croutons.",
                            "offers": {
                                "@type": "Offer",
                                "price": "4.49",
                                "priceCurrency": "USD"
                            }
                        }
                    }
                ]
            }]
        }
    }

Here is an older example:

restaurant-menu-json-ld-sample.jsonld · 2.9K test
{
   "@context":"http://schema.org",
   "@type":"Restaurant",
   "url":"http://www.thisisarestaurant.com",
   "name":"The Restaurant",
   "image":"http://www.example.com/image-of-some-restaurant.jpg",
   "telephone":"5615551212",
   "priceRange" : "$100 - $200",
   "description" : "a description of this business",
   "address" : {
    "@type" : "PostalAddress",
    "streetAddress" : "STREET ADDRESS",
    "addressLocality" : "CITY",
    "addressRegion" : "STATE ABBREVIATION",
    "postalCode" : "ZIP CODE"
  },
   "servesCuisine":[
      "American cuisine"
   ],
   "hasMenu":{
      "@type":"Menu",
      "name":"Dine-In Menu",
      "description":"Menu for in-restaurant dining only.",
      "hasMenuSection":[
         {
            "@type":"MenuSection",
            "name":"Dinner",
            "description":"Dinner dishes",
            "image":"https://thisisarestaurant.com/dinner_dishes.jpg",
            "offers":{
               "@type":"Offer",
               "availabilityEnds":"T8:22:00",
               "availabilityStarts":"T8:22:00"
            },
            "hasMenuSection":[
               {
                  "@type":"MenuSection",
                  "name":"Starters",
                  "description":"Appetizers and such",
                  "image":"https://thisisarestaurant.com/starter_dishes.jpg",
                  "offers":{
                     "@type":"Offer",
                     "availabilityEnds":"T8:22:00",
                     "availabilityStarts":"T8:22:00"
                  },
                  "hasMenuItem":{
                     "@type":"MenuItem",
                     "name":"Potato Skins",
                     "description":"Small serving of stuffed potato skins.",
                     "offers":{
                        "@type":"Offer",
                        "price":"7.49",
                        "priceCurrency":"USD"
                     },
                     "suitableForDiet":"http://schema.org/GlutenFreeDiet"
                  }
               },
               {
                  "@type":"MenuSection",
                  "name":"Soups & Salads",
                  "description":"Salads and a few choices of soup",
                  "image":"https://thisisarestaurant.com/soup_and_salad_dishes.jpg",
                  "offers":{
                     "@type":"Offer",
                     "availabilityEnds":"T8:22:00",
                     "availabilityStarts":"T8:22:00"
                  },
                  "hasMenuItem":{
                     "@type":"MenuItem",
                     "name":"Pea Soup",
                     "description":"Creamy pea soup topped with melted cheese and sourdough croutons.",
                     "offers":{
                        "@type":"Offer",
                        "price":"3.49",
                        "priceCurrency":"USD"
                     }
                  }
               }
            ]
         }
      ]
   }
}