
What Recipe schema is
Recipe schema is the schema.org Recipe type, embedded as JSON-LD, that describes a dish in fields a machine can parse: name, photo, prep and cook times, ingredient list, step by step instructions, yield, nutrition, and ratings. Google consumes it to build recipe rich results, and the food vertical is unusual in how much surface area that markup buys you.
Per Google's Recipe structured data documentation, only two properties are strictly required for a recipe rich result: name and image. That minimum is a trap. The recipe carousel at the top of food SERPs, the badges showing cook time and calories, and Guided Recipes on Google Assistant devices all draw on the recommended fields: recipeIngredient, recipeInstructions, totalTime, nutrition, aggregateRating, video. Guided Recipes specifically needs ingredients and structured instructions to walk someone through cooking hands free. Ship the minimum and you technically pass validation while losing every placement that matters.
This check fires when a page that is clearly a recipe carries no Recipe markup, or carries a skeleton of it.
Why food SERPs punish unmarked pages
Search "chocolate chip cookies" and look at what ranks: a horizontal carousel of image cards, then results with photos, stars, and times. Organic plain links start somewhere below all of that. Recipe queries are among the most visually merchandised results Google produces, which means the gap between marked up and unmarked pages is wider here than in almost any other vertical. In ecommerce, missing schema costs you decoration. In recipes, it costs you the shelf itself, because carousel eligibility requires the markup.
There is also a discovery angle people forget: recipe markup powers filtering. Google can surface your page for "quick vegetarian dinner" style refinements because it can read your times, categories, and ingredients as data. And on Assistant devices, no markup means your recipe flat out cannot be cooked along with, that surface is markup only.
The honest caveat: markup will not save mediocre recipes, and it is not a ranking boost. The food space is brutally competitive and quality still decides who wins the carousel slots. Schema just decides whether you are allowed to compete.
Anatomy of a recipe rich result
Required versus worth doing
| Property | Status per Google docs | What it earns you |
|---|---|---|
name, image | Required | Baseline eligibility; provide 16x9, 4x3, and 1x1 images |
recipeIngredient | Recommended | Guided Recipes, ingredient based query matching |
recipeInstructions as HowToStep list | Recommended | Step by step Assistant experience, cleaner parsing than a text blob |
prepTime, cookTime, totalTime | Recommended | Time badge on the card, quick meal filters; ISO 8601 format like PT45M |
nutrition.calories | Recommended | Calorie line in the rich result |
aggregateRating | Recommended | Stars; must match ratings users can actually see and leave |
video | Recommended | Video enhanced recipe results where available |
Implementation, step by step
- Use a recipe plugin or card system, not hand rolled markup. On WordPress, WP Recipe Maker, Tasty Recipes, and Create all emit complete JSON-LD from the same structured recipe data they render on the page. That coupling is the whole point: markup and visible content cannot drift apart.
- Fill everything, not just required fields. Ingredients as one array item per ingredient, instructions as individual
HowToStepobjects, times in ISO 8601 duration format, yield, category, cuisine. - Provide real high resolution photos of the finished dish in the three aspect ratios Google asks for. A stock photo of a different dish is a fast way to torch user trust and, if reported, your rich results.
- Validate with the Rich Results Test, then confirm eligibility in Search Console's Recipe enhancement report once Google recrawls.
- Audit at scale with Screaming Frog structured data extraction: crawl the blog, segment recipe URLs, and diff pages with Recipe markup against pages without. On older food blogs it is common to find years of posts published before the plugin era, sitting unmarked and invisible.
What good looks like: every recipe URL has exactly one Recipe block, ingredients and steps are structured arrays, times and calories render in the SERP, Search Console shows zero errors, and your cards hold their own in the carousel. One damn plugin misconfiguration can silently strip all of it, so recheck after every plugin or theme update.
- Emit Recipe JSON-LD from a recipe card plugin or CMS field
- Structure instructions as HowToStep items, one per step
- Use ISO 8601 durations: PT15M prep, PT30M cook
- Ship 16x9, 4x3, and 1x1 photos of the actual dish
- Recheck the Search Console Recipe report after updates
- Stop at name and image because the validator passed
- Dump all instructions into one unstructured text string
- Mark up roundup or category pages as a single Recipe
- Invent ratings or calories that appear nowhere on the page
- Run two plugins that both output Recipe blocks
FAQ
Only name and image are required, so why bother with the rest?
Can I use Recipe schema on a roundup of 20 recipes?
My markup validates but I get no rich result. Why?
Do I need nutrition data on every recipe?
Does the story before the recipe affect the rich result?
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.







