SEO Tools

Recipe Schema Generator

Use this free Recipe Schema Generator to create valid Recipe JSON-LD structured data for food blogs and cooking sites. Add ingredients, instructions, times, yield, and nutrition, then copy markup that makes your page eligible for Google's recipe rich results. No sign-up required.

Ingredients and Steps Rich Result Eligible 100% Free

Recipe Details

Suitable For Diet

Time & Servings

Ingredients (one per line) *

Instructions (one per line) *

Rating

Video (optional)

Additional Info

Schema Preview

No Schema added yet

Why You Are Here

Recipe is one of the most valuable structured data types still fully supported by Google, and it is worth saying that plainly because several once-prominent types are not.

Recipe was not touched

FAQ rich results were retired in May 2026. HowTo rich results were retired in 2023. Recipe remains one of the most visually prominent results Google displays.

A correctly marked-up recipe becomes eligible for a card showing the dish photograph, a star rating, the cooking time, and the calorie count, sitting above or alongside ordinary blue links. On a query where every competing result is a plain text listing, that is a substantial difference in how much attention the result attracts.

The first situation is a food blog or recipe site with no plugin handling structured data, or one whose plugin output is incomplete.

The second is fixing eligibility. Your recipes are marked up but not appearing as rich results, and you need to work out which properties are missing.

The third is a custom or headless build where the markup has to be written deliberately.

What This Tool Does

The Recipe Schema Generator builds valid Recipe JSON-LD from a simple form.

Enter the recipe name, image, ingredients, instructions, preparation and cooking times, yield, and nutrition details, and the tool assembles correctly structured JSON-LD with the script tag included. Copy it and paste it into your page.

Everything runs in your browser. Nothing is uploaded or stored.

Recipe Earns Rich Results on Three Surfaces

Most guides describe only the search result card. Recipe markup can appear in three distinct places, and they have different requirements.

Surface What appears Extra requirement

Google Search

Card with photo, star rating, cook time, calories

Recipe properties

Google Images

Badge on the thumbnail showing recipe name and cook time

Recipe properties

Host carousel

Horizontal carousel of several recipes from your site

ItemList markup in addition

The host carousel is the one people miss

It shows a scrollable row of recipes from a single site when someone searches a recipe category, and it is a large amount of search real estate for one domain. Earning it requires wrapping your recipes in ItemList markup on a listing page, in addition to the Recipe markup on each individual recipe page. Recipe properties alone will not produce it.

Google requires only two properties. That is enough for ELIGIBILITY, but not enough for a result worth having.

Property Status Notes

name

REQUIRED

The recipe title

image

REQUIRED

High resolution, multiple aspect ratios preferred

recipeIngredient

Strongly recommended

One entry per ingredient, quantity included

recipeInstructions

Strongly recommended

Use HowToStep objects rather than plain text

totalTime

Strongly recommended

ISO 8601 format

prepTime

Recommended

Pair with cookTime

cookTime

Recommended

Pair with prepTime

recipeYield

Recommended

Servings or quantity produced

nutrition

Recommended

calories is the field that appears on the card

aggregateRating

Recommended

Genuine user ratings only

author

Recommended

Person object

datePublished

Recommended

ISO 8601

description

Recommended

Short summary

recipeCategory

Optional

Dessert, main course

recipeCuisine

Optional

Italian, Thai

keywords

Optional

Descriptive terms, not a keyword dump

suitableForDiet

Optional

Schema.org diet values

video

Optional

Not needed for any rich result surface

On timing properties: either supply prepTime and cookTime together, or supply totalTime alone. Providing only one of prep or cook without a total leaves the timing incomplete, and validators commonly flag it.
Video is optional. Every recipe rich result surface can be earned without one. Add it if you have a genuine recipe video, not because you believe it is required.

Instructions — Use HowToStep, Not Plain Text

recipeInstructions accepts a plain string, but structuring it as HowToStep objects is considerably better. Each step becomes individually identifiable, which is what allows step-by-step extraction by search engines and AI systems.

"recipeInstructions": [
  {
    "@type": "HowToStep",
    "name": "Prepare the dough",
    "text": "Combine the flour, salt, and water until a dough forms."
  },
  {
    "@type": "HowToStep",
    "name": "First rise",
    "text": "Cover and leave at room temperature for four hours."
  }
]
This is the same HowToStep type used in HowTo markup. Recipe borrows it, which is why the two schema types feel related despite serving different purposes. For longer recipes, HowToSection groups steps under headings such as For the sauce and For the pastry, exactly as it does in HowTo markup.

Example Output

{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Classic Sourdough Loaf",
  "image": [
    "https://example.com/images/sourdough-1x1.jpg",
    "https://example.com/images/sourdough-4x3.jpg",
    "https://example.com/images/sourdough-16x9.jpg"
  ],
  "author": { "@type": "Person", "name": "Jane Smith" },
  "datePublished": "2026-03-14",
  "description": "A slow-fermented sourdough with an open crumb.",
  "prepTime": "PT30M",
  "cookTime": "PT45M",
  "totalTime": "PT8H15M",
  "recipeYield": "1 loaf",
  "recipeCategory": "Bread",
  "recipeCuisine": "European",
  "nutrition": {
    "@type": "NutritionInformation",
    "calories": "180 calories",
    "servingSize": "1 slice"
  },
  "recipeIngredient": [
    "500g strong white bread flour",
    "350ml water",
    "100g active sourdough starter",
    "10g fine sea salt"
  ],
  "recipeInstructions": [
    { "@type": "HowToStep", "name": "Mix",
      "text": "Combine flour and water and rest for one hour." },
    { "@type": "HowToStep", "name": "Add starter and salt",
      "text": "Work the starter and salt through the dough." },
    { "@type": "HowToStep", "name": "Bulk ferment",
      "text": "Leave five hours, folding every forty-five minutes." },
    { "@type": "HowToStep", "name": "Shape and prove",
      "text": "Shape into a round and prove in a banneton for two hours." },
    { "@type": "HowToStep", "name": "Bake",
      "text": "Bake at 230C covered for thirty minutes, then uncovered." }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "ratingCount": "128"
  }
}

Duration Format

Times use ISO 8601 duration format, which trips people up consistently.

Time Value

15 minutes

PT15M

45 minutes

PT45M

1 hour

PT1H

1 hour 30 minutes

PT1H30M

8 hours 15 minutes

PT8H15M

Watch the T

P opens the duration and T separates date units from time units. The T is not optional: P30M means thirty MONTHS, not thirty minutes.

Ratings — The Rule With Real Consequences

aggregateRating produces the stars on the card, which makes it the most visually valuable property. It is also the one with the sharpest penalty attached.

Google states that ratings not from actual users may result in a manual action

That means ratings must come from genuine reviews left by real people. You cannot rate your own recipe. You cannot invent a plausible-looking rating and count. The rating shown in the markup must match what is visible on the page. And if your page displays individual reviews, the markup must include all of them, not a flattering selection.

A manual action removes rich result eligibility across the site and requires a reconsideration request to lift. Given that a recipe card works perfectly well without stars, inventing them is a poor trade. If you do not yet have genuine ratings, leave aggregateRating out entirely. The rest of the card still displays.

Do Not Use Recipe for Non-Food Content

Google's structured data policies name this directly

Google cites a woodworking site that labelled its instructions as recipes as an example of a violation. The word recipe is used loosely in everyday speech for any set of instructions. In Schema.org it means food or drink specifically.
Your Content Correct Type

Cooking or baking instructions

Recipe

Cocktail or drink preparation

Recipe

Woodworking or craft project

HowTo

Repair or assembly guide

HowTo

Software tutorial

HowTo

A formula or method described in an article

Article

This is the reverse of the advice on our HowTo page. If your content produces something edible or drinkable, Recipe is correct and worth using because it still earns a rich result. If it does not, Recipe misdescribes the page and breaches Google's guidelines, regardless of how instruction-like the content is.

Common Mistakes to Avoid

Inventing Ratings to Get the Stars

Google explicitly states that ratings not left by actual users may result in a manual action, which removes rich result eligibility across the whole site until a reconsideration request succeeds. A recipe card displays perfectly well without a star rating. Adding aggregateRating before you have genuine reviews risks the entire feature to gain one visual element.
Supplying Only One Timing Property

Providing prepTime without cookTime, or either without totalTime, leaves the timing incomplete and is commonly flagged by validators. Either give prepTime and cookTime as a pair, or give totalTime on its own. If you supply all three, make sure the total genuinely reflects the sum, including any resting or proving time that falls outside active preparation.
Writing Instructions as One Block of Text

recipeInstructions accepts a plain string, so a single paragraph containing every step validates without complaint. But nothing can then identify where one step ends and the next begins, which defeats step-by-step extraction by both search engines and AI systems. Use an array of HowToStep objects instead, with one object per step.

Quick Reference

Item Detail

Type

Recipe

Rich result

Fully supported

Surfaces

Search, Google Images, host carousel

Required

name, image

Card details from

Image, rating, times, calories

Instructions

Array of HowToStep

Grouping

HowToSection

Times

ISO 8601, PT45M for 45 minutes

Watch the T

P45M means 45 months

Ratings

Genuine user reviews only

Fake ratings

Risk a manual action

Non-food content

Use HowTo instead

Video

Optional, not needed for any surface

Host carousel

Needs ItemList as well

Frequently Asked Questions

What is a recipe schema generator?

A recipe schema generator is a free online tool that turns your recipe details into valid Recipe JSON-LD structured data. You enter the name, image, ingredients, instructions, times, and nutrition, and this Recipe Schema Generator produces correctly structured Schema.org markup that makes your page eligible for Google's recipe rich results.

Does Recipe schema still produce rich results in Google?

Yes. Recipe is one of the most visually prominent structured data types Google still fully supports, unlike FAQ and HowTo, whose rich results were retired in 2026 and 2023 respectively. Correctly marked-up recipes are eligible for a card showing the dish photo, star rating, cooking time, and calorie count.

Which properties are required for Recipe schema?

Google requires only name and image. However, those two alone produce a minimal result. For a card worth having you also want recipeIngredient, recipeInstructions, timing properties, recipeYield, and nutrition with a calorie figure, since those supply the details that actually appear on the card.

Why is my recipe not showing as a rich result?

Eligibility and appearance are different things. Valid markup makes a page eligible, but Google decides whether to display a rich result based on content quality and other signals as well. Check the Rich Results Test for missing properties first, then consider whether the page has enough substance and authority for Google to feature it. Missing images or incomplete timings are the most common technical causes.

Can I add star ratings to my recipe schema?

Only if the ratings come from genuine reviews left by real users, and only if they match what is visible on the page. Google states that ratings not from actual users may result in a manual action, which removes rich result eligibility across your site. If you do not yet have real reviews, omit aggregateRating entirely and the rest of the card will still display.

Should I use Recipe or HowTo schema?

Use Recipe for anything involving ingredients that produces food or drink. Use HowTo for everything else, including craft projects, repairs, and tutorials. Google's structured data policies specifically cite a woodworking site labelling its instructions as recipes as a violation, so the distinction is about the nature of the content rather than its instructional format.

How do I write the cooking time values?

Use ISO 8601 duration format. Forty-five minutes is PT45M, one hour is PT1H, and eight hours fifteen minutes is PT8H15M. The P opens the duration and the T separates date units from time units. Omitting the T changes the meaning, since P45M reads as forty-five months rather than forty-five minutes.

What is a recipe host carousel and how do I get one?

A host carousel is a horizontal, scrollable row of recipes from a single site, shown for recipe category searches. It occupies considerably more space than a standard result. Earning it requires ItemList markup on a listing page in addition to Recipe markup on each individual recipe, so Recipe properties alone will not produce one. Markup from this Recipe Schema Generator covers the individual recipe pages, and the ItemList wrapper is added separately on the listing page.

Comments

Login to leave a comment

No comments yet. Be the first to comment!