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

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 →