STRUCTURED DATA · SEO GLOSSARY
Menu Schema (hasMenu)
The schema.org property that links a FoodEstablishment to its menu page — enabling Google to extract menu items for knowledge panel display and improving relevance for dish-specific search queries. Uses the URL of an HTML menu page as its value; PDF menus are indexed but rarely parsed for menu item extraction.
Definition
Menu schema refers to the use of the `hasMenu` property in FoodEstablishment/Restaurant JSON-LD to point to the restaurant\'s menu URL. This property enables Google to discover, crawl, and extract menu item data for display in the Google Business Profile knowledge panel — the "Menu" section that shows dishes with prices when users search for a restaurant. `hasMenu` value types: **URL string** — `"hasMenu": "https://example.com/menu"` — the most common implementation. Points to an HTML menu page where Google can extract item names and prices from structured HTML (ideally a `<table>` or structured `<ul>/<dl>` with item name, description, and price columns). **Menu schema object** — `hasMenu` can also reference a fully structured `Menu` schema object (with `MenuSection` and `MenuItem` subtypes, each with `name`, `description`, `offers` containing price). This more complex implementation gives Google complete structured menu data without requiring extraction from HTML. PDF menus: Google can technically crawl PDFs but extracts item data from them inconsistently. PDF menus also create mobile usability issues (require a separate app to open) and cannot contain JSON-LD structured data. HTML menus are strongly preferred. The `menu` property is a deprecated alias for `hasMenu` — use `hasMenu`. The `servesCuisine` property complements menu schema by indicating cuisine type; together they improve relevance for both dish-specific ("best ramen London") and cuisine-specific ("Japanese restaurant near me") queries.
Why it matters for SEO
Menu visibility in the Google knowledge panel is a direct CTR signal for restaurants — a listing that shows menu items with prices in the panel gets more qualified clicks than a listing showing only address and hours. For dish-specific queries ("where to get biryani Manchester"), a correctly implemented hasMenu pointing to an HTML menu allows Google to surface the restaurant in response to queries about specific dishes even without a dedicated page for each dish. PDF menus represent both a crawlability gap (unreliable extraction) and a mobile usability failure — a user clicking a PDF menu link on mobile often gets a broken download rather than a readable menu.
How DeepSEOAnalysis checks this
DeepSEOAnalysis checks whether the Restaurant/FoodEstablishment JSON-LD includes a hasMenu property pointing to a URL. If hasMenu is present, the audit checks that the linked URL returns a 200 status (not a 404 or redirect to a PDF). The audit flags PDF menu links in hasMenu as a recommendation to switch to HTML. The broader structured data audit validates all required FoodEstablishment properties, of which hasMenu is one.
Useful tools and resources
GLOSSARY
Related terms
structured data
FoodEstablishment Schema
The schema.org type for food service businesses — a subtype of LocalBusiness that includes the Restaurant, Bakery, BarOrPub, CafeOrCoffeeShop, FastFoodRestaurant, and IceCreamShop subtypes — with properties specific to food service including servesCuisine, hasMenu, acceptsReservations, and openingHoursSpecification.
Read definition →technical
Restaurant SEO
Local SEO practice applied specifically to food service businesses — optimising Google Business Profile, Restaurant schema, cuisine-type and location keyword targeting, review acquisition velocity, and mobile performance to rank in the local pack and organic results for dining-intent queries.
Read definition →structured data
servesCuisine (Schema Property)
The schema.org property on FoodEstablishment and Restaurant types that specifies the cuisine type(s) served — enabling Google to match the restaurant to cuisine-specific search queries. Accepts a string or array of strings ("Italian", "Thai", "Vegan"). Missing this property reduces relevance for cuisine-modified restaurant queries.
Read definition →structured data
LocalBusiness Schema
LocalBusiness schema is a Schema.org structured data type that describes a local business — name, address, phone, hours, geo coordinates, and more — enabling rich Knowledge Panel and Local Pack displays in Google Search. It is the foundation of structured data for local SEO.
Read definition →See how your site scores on Menu Schema (hasMenu).
The free DeepSEOAnalysis audit checks menu schema (hasmenu) and 100+ other signals. Full report, no signup.
Run a free audit →