✓ TestedWorks with CSV, Excel, Google Sheets → JSON-LD Schema
By dataclean.to team · 2026-02-05
Restaurant menu databases contain dish names, descriptions, pricing, ingredients, and dietary attributes. MenuItem schema enables structured menu display in search results and restaurant aggregators. Properly marked up menu data improves discoverability for specific dishes and dietary preferences.
The Problem
Menu databases store pricing in inconsistent formats and dietary information as unstructured text tags. Allergen warnings may be incomplete and nutritional data absent. Without MenuItem schema markup, search engines cannot display menu items in restaurant results or filter by dietary restrictions, reducing visibility for customers searching for specific cuisines or dietary options. Schema.org MenuItem
How to Fix It
1
Extract Menu Item Core Data
Parse dish names, descriptions, and menu sections. Extract portion sizes, serving suggestions, and preparation methods from description text or separate fields.
2
Structure Pricing Information
Convert prices to standardized format with currency code. Handle price variations for different sizes or customization options. Map to offers property with Offer objects including price and priceCurrency.
3
Parse Dietary and Allergen Information
Identify dietary suitability (vegetarian, vegan, gluten-free, halal, kosher). Extract allergen warnings (nuts, dairy, shellfish). Map to suitableForDiet and allergens properties using MedicalCode or text values.
4
Extract Nutritional Data
Parse calorie counts, macronutrients, and other nutritional values when available. Map to nutrition property with NutritionInformation object including calories, protein, fat, and carbohydrates.
5
Generate MenuItem Schema JSON-LD
Output MenuItem schema with required name field. Include description, offers for pricing, suitableForDiet for dietary info, and optional image, nutrition, and allergens properties for complete menu representation.
Frequently Asked Questions
Should each menu item have its own schema or group items under Menu schema?
Use Menu schema as a container with hasMenuItem or hasMenuSection properties that reference individual MenuItem objects. This preserves menu structure and item relationships while providing granular item-level data.
How do I represent menu items with multiple size or customization options?
Use multiple Offer objects within the offers property, each with different prices and optional names or descriptions indicating the variation (small, medium, large, or specific customizations).
What dietary restriction values are valid for suitableForDiet property?
Use RestrictedDiet enumeration values: DiabeticDiet, GlutenFreeDiet, HalalDiet, HinduDiet, KosherDiet, LowCalorieDiet, LowFatDiet, LowLactoseDiet, LowSaltDiet, VeganDiet, VegetarianDiet. Multiple values can be included as an array.
Example: Input → Output
name
cuisine
address
phone
hours
La Bella Italia
Italian
456 Oak Ave Chicago
(312) 555-0100
Mon-Sun 11am-10pm
la bella italia
italian
456 oak ave
chicago il
(312)555-0100
daily 11-22
Red rows show common data quality issues. dataclean.to normalizes and generates JSON-LD automatically.