What the Recipe Schema Generator does
This tool builds Recipe structured data in JSON-LD, the format Google and other search engines read to understand that a page is a cooking recipe rather than an essay about your grandmother. You fill in the fields that describe the dish, the ingredients, the steps, the times, and the nutrition, and the generator hands back a clean block of code you paste into the head of your recipe page. Once a crawler reads that block, your page becomes eligible for the recipe rich result: the card with a thumbnail, a star rating, the total cook time, and a calorie count that shows up directly in search and inside the dedicated recipe filters Google offers on mobile.
Recipe schema matters more than almost any other schema type because food is one of the most competitive verticals in search and one of the few where structured data visibly changes how your result looks. A bare blue link loses badly to a result with a glossy photo and a four-and-a- half-star rating sitting next to it. Recipe markup is also what powers the recipe carousel, the host carousel, and Guided Recipes on Google Assistant and smart displays, so getting it right is the difference between being read aloud in someone's kitchen and being invisible.
The required properties Recipe must have
At the absolute minimum, a Recipe needs a name and an image. The name is the title of the dish, written the way a human would say it, not stuffed with keywords. The image is the single most important property for the rich result: Google strongly prefers high-resolution photos, ideally supplied in multiple aspect ratios such as 16x9, 4x3, and 1x1, each at least 1200 pixels wide. A recipe with no image, or with a tiny logo where the food should be, will almost never earn the visual card no matter how perfect the rest of the markup is.
Beyond name and image, the properties that make a recipe genuinely useful and carousel-eligible are recipeIngredient and recipeInstructions. recipeIngredient should be a list where each entry is one ingredient with its quantity, exactly as it appears in your written ingredient list, for example "2 cups all-purpose flour" rather than just "flour". recipeInstructions should be a series of HowToStep objects, each with the text of a single step. Splitting instructions into discrete steps, rather than dumping the whole method into one string, is what lets Google power the step-by-step Guided Recipe experience on voice devices.
Times, yield, category, and the fields that fill the card
The properties that populate the visible chips on a recipe card are prepTime, cookTime, totalTime, and recipeYield. The three time fields use ISO 8601 duration format, which trips people up constantly: thirty minutes is written as PT30M, an hour and a half as PT1H30M, not "30 minutes" or "1.5 hours". totalTime should equal prepTime plus cookTime; if you supply totalTime, supply the other two as well so the numbers reconcile. recipeYield is how many servings the recipe makes, written as a plain number or a short string like "8 servings".
recipeCategory (appetizer, main course, dessert), recipeCuisine (Italian, Thai, Mexican), and keywords help search engines classify the dish and surface it under the right filters. These are not strictly required for the rich result, but they are cheap to add and they sharpen how your recipe is matched to queries like "easy vegetarian dinner" or "gluten-free dessert". nutrition, supplied as a NutritionInformation object with at least calories, drives the calorie count that appears on the card and is heavily favored by health-conscious searchers.
Ratings, reviews, and video inside Recipe schema
The star rating on a recipe card comes from aggregateRating, an object holding ratingValue (the average score), ratingCount or reviewCount, and ideally bestRating. This is the single most powerful element for click- through because stars draw the eye. Critically, Google requires those ratings to come from real users on your own site. You cannot invent them, and you cannot mark up a single self-assigned five-star score. If you do not yet collect genuine reviews, leave aggregateRating out entirely rather than fake it, because manufactured ratings are a structured-data spam violation that can earn a manual penalty.
Recipe pages also support a video property using the VideoObject type, with name, description, thumbnailUrl, contentUrl or embedUrl, and an uploadDate. A valid recipe video unlocks the video thumbnail on the card and makes the recipe eligible for the video-enabled host carousel. If you embed a how-to video, mark it up: it is one of the strongest signals that the page is a genuine, original recipe rather than a scraped one.
How to read the generated output
The generator returns a single script block with type set to application/ld+json containing one object whose @context is schema.org and whose @type is Recipe. Everything you typed maps to a named property. Read it top to bottom and confirm three things: every time is in PT duration format, every ingredient is its own list entry, and every instruction is its own step. If a field was left blank it should be absent from the output entirely rather than present and empty, because an empty string in a required-looking field can read as a malformed value.
Pay special attention to the image and author fields. The image should be an absolute URL beginning with https and pointing at the actual finished- dish photo. The author should be a nested Person or Organization object with a name, not a bare string, because a named, linkable author is a meaningful trust and experience signal for food content where Google leans hard on who actually made and tested the dish.
Common mistakes specific to Recipe schema
The most frequent error is marking up a page that is not actually a single recipe. Recipe schema is for one specific dish with ingredients and steps. A roundup post titled "25 Best Soup Recipes" should use ItemList or carousel markup pointing at the individual recipe pages, not a single Recipe block, and a page that merely mentions food in passing should have no Recipe markup at all. Google polices this: applying Recipe schema to non-recipe content is a structured-data violation.
The second classic mistake is mismatched content. Every value in the schema must be visibly present on the page for the human reader. If your markup claims a 30-minute cook time, a five-star rating, or an ingredient that does not appear in the on-page recipe, that is invisible or contradictory markup and Google can ignore your schema or penalize the page. The third is broken time formats, by far the most common technical failure: writing "30 min" instead of PT30M silently invalidates the time fields and strips the time chips from the card.
A fourth, subtler trap is splitting instructions wrong. If you cram all the steps into a single HowToStep, or use plain text where step objects are expected, the recipe stays valid but loses Guided Recipe eligibility. And finally, watch the ingredient format: putting bare ingredient names with no quantities makes the list far less useful for shopping-list and scaling features that modern recipe surfaces increasingly rely on.
Recipe schema in 2026: AI answers and voice kitchens
Structured recipe data is no longer just about the classic rich card. AI Overviews, ChatGPT, and assistant-driven kitchens lean on clean, machine-readable recipes to answer questions like "what can I make with chicken and rice in 30 minutes". A recipe with explicit ingredients, discrete steps, accurate times, and real nutrition is far easier for a language model to lift, summarize, and read aloud than a 2,000-word story with the method buried at the bottom. Good Recipe schema effectively hands these systems a structured copy of your recipe that they can quote with confidence.
The shift also rewards original, experience-rich recipes. As scraped and AI-generated recipe spam floods the web, signals of genuine authorship, a real photo you took, a named author who actually cooks, honest user ratings, and a video of the process, are what separate a recipe worth citing from filler. Schema cannot manufacture those signals, but it does expose the ones you have in a form that both Google and AI engines can verify quickly.
What to do after you generate it
Paste the generated block into the HTML head of the specific recipe page, not site-wide, since each recipe needs its own markup describing that one dish. Then run the page through Google's Rich Results Test to confirm it is detected as a valid Recipe and eligible for the recipe rich result. That test will flag any remaining errors, such as a missing image or a malformed duration, with the exact property at fault.
After deployment, watch the Recipe report in Search Console's Enhancements section over the following days. It tells you how many recipe pages Google has validated, surfaces any errors at scale, and lets you confirm the markup is being read in production. Keep the schema in sync with the visible page whenever you update ingredients, times, or ratings, because the fastest way to lose a rich result is to let the markup drift out of agreement with the recipe a human actually sees.