FREE TOOL · NO SIGNUP · INSTANT

Generate Recipe JSON-LD in Seconds

Turn ingredients, steps, times, and yield into valid schema.org Recipe structured data — copy the script tag or download the .json in one click.

Recipe details

Ingredients

01
02
03

Instructions

01
02
Example schema — fill in your recipe on the left to generate your own.
Recipe JSON-LD8 ingredients6 steps 32 min total
Valid Recipe schema — all required and recommended fields are present.

Google rich-result checks

  • Recipe name is set (required).
  • 1 image URL added (Google requires at least one).
  • 8 ingredients listed.
  • 6 instruction steps added.

JSON-LD output

{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Classic Margherita Pizza",
  "image": [
    "https://example.com/photos/margherita-pizza.jpg"
  ],
  "author": {
    "@type": "Person",
    "name": "Maria Romano"
  },
  "description": "A blistered, Naples-style Margherita with San Marzano tomatoes, fresh mozzarella, and basil — ready in under an hour.",
  "prepTime": "PT20M",
  "cookTime": "PT12M",
  "totalTime": "PT32M",
  "recipeYield": "2 pizzas (4 servings)",
  "recipeCategory": "Main course",
  "recipeCuisine": "Italian",
  "keywords": "margherita pizza, homemade pizza, Neapolitan pizza",
  "recipeIngredient": [
    "250g 00 flour",
    "165ml warm water",
    "5g fine sea salt",
    "3g active dry yeast",
    "200g San Marzano tomatoes, crushed",
    "125g fresh mozzarella, torn",
    "Fresh basil leaves",
    "2 tbsp extra-virgin olive oil"
  ],
  "recipeInstructions": [
    {
      "@type": "HowToStep",
      "text": "Mix flour, water, salt, and yeast into a shaggy dough, then knead 8–10 minutes until smooth."
    },
    {
      "@type": "HowToStep",
      "text": "Cover and let the dough rise at room temperature for 1–2 hours until doubled."
    },
    {
      "@type": "HowToStep",
      "text": "Divide into two balls, shape each into a round, and stretch to a 10-inch base."
    },
    {
      "@type": "HowToStep",
      "text": "Top with crushed tomatoes, torn mozzarella, and a drizzle of olive oil."
    },
    {
      "@type": "HowToStep",
      "text": "Bake on a preheated stone or steel at the highest oven setting for 8–12 minutes."
    },
    {
      "@type": "HowToStep",
      "text": "Finish with fresh basil and a final drizzle of olive oil before serving."
    }
  ],
  "nutrition": {
    "@type": "NutritionInformation",
    "calories": "320 calories"
  }
}
The Complete Guide

Recipe Schema Markup: How to Earn Recipe Rich Results

6 MIN READ

Understand with AI

Discuss with your preferred AI assistant

↑ 35%
Higher click-through

Recipe rich results with an image and star rating routinely lift CTR by a third versus plain blue links.

2
Required fields

Only name and image are strictly required — but every recommended field you add unlocks more rich-result features.

< 5 min
Setup time

Fill in the form, copy the JSON-LD, paste it into your page — valid Recipe schema in minutes, no code.

Recipe schema is one of the highest-leverage pieces of structured data you can add to a food website. When Google can read your ingredients, steps, cook time, ratings, and calories as machine-readable data, it can show your recipe as a rich result — with a photo, star rating, and cook time — right in search and in the dedicated recipe carousel. That visual real estate routinely lifts click-through rates by double digits.

This guide explains what Recipe schema is, the exact fields Google needs, how to format the tricky ones (especially times), and how to ship valid JSON-LD in minutes — without touching a line of code you don't understand.

What Is Recipe Schema?

Recipe schema is structured data based on the schema.org/Recipe type, written as JSON-LD and embedded in your page inside a <script type="application/ld+json"> tag. It describes your recipe in a vocabulary search engines understand: the name, image, author, ingredients, instructions, prep and cook times, yield, nutrition, and more.

JSON-LD is Google's recommended format because it sits in one self-contained block and is decoupled from your visible HTML. That means you can add or update it without restructuring your page, and it works on static sites, WordPress, Shopify, or any CMS.

Why Recipe Rich Results Matter

Recipes are one of the most competitive verticals in search, and rich results are how you stand out. Valid Recipe schema makes your page eligible for:

  • Recipe rich results — a thumbnail image, star rating, review count, and cook time beneath your listing.
  • The host carousel and Recipe Gallery — image-led carousels at the top of mobile results.
  • Google Assistant and guided cooking surfaces — step-by-step read-aloud on smart displays.

Beyond clicks, structured data future-proofs your content for AI Overviews and assistants that increasingly synthesise answers from machine-readable data rather than raw HTML.

The Fields Google Needs

Google divides Recipe properties into required and recommended. To be eligible for any rich result you must include the required ones; the recommended ones unlock more features and stronger eligibility.

PropertyStatusWhat it is
nameRequiredThe dish title, e.g. "Classic Margherita Pizza".
imageRequiredOne or more high-resolution photo URLs (use multiple aspect ratios).
recipeIngredientRecommendedEach ingredient as a separate line, including quantity.
recipeInstructionsRecommendedSteps as HowToStep items, in order.
prepTime / cookTime / totalTimeRecommendedDurations in ISO-8601 format (e.g. PT20M).
recipeYieldRecommendedHow much the recipe makes, e.g. "8 servings".
nutrition.caloriesRecommendedCalories per serving as "320 calories".
authorRecommendedWho created the recipe — strengthens E-E-A-T.

How to Format Times Correctly

The single most common Recipe schema error is malformed times. Google requires ISO-8601 duration format, not plain English. The pattern is PT[hours]H[minutes]M:

  • 30 minutes becomes PT30M.
  • 1 hour 15 minutes becomes PT1H15M.
  • 2 hours becomes PT2H.

A good generator does this conversion for you — you type "1 hr 15" and it outputs PT1H15M — and it should also calculate totalTime automatically by summing prep and cook time, because mismatched totals are a frequent validation warning.

How to Add Recipe Schema, Step by Step

1. Fill in every field you can

Enter the name, at least one image URL, the author, a short description, prep and cook times, yield, and calories. The more recommended fields you complete, the more rich-result features you qualify for.

2. List ingredients as separate lines

Put each ingredient on its own line with the quantity included ("250g 00 flour"), not lumped into a paragraph. Each line becomes one recipeIngredient entry.

3. Break the method into ordered steps

Write one action per step. Each becomes a HowToStep, which is what powers guided cooking and step-by-step display in assistants.

4. Copy the script tag into your page

Paste the generated <script type="application/ld+json"> block into the same page that shows the recipe — ideally in the <head> or near the end of the <body>. The structured data must match what users actually see on the page.

5. Validate before you publish

Run the URL through Google's Rich Results Test and the Schema Markup Validator. Fix any errors (these block eligibility) and review warnings (these are missed opportunities).

Recipe Schema Best Practices

  • Always include an image — it is required, and recipes with no image are ineligible for the carousel.
  • Mirror the visible page — the markup must describe the recipe the reader sees, not a different one.
  • Add aggregateRating and review when you have genuine ratings — stars dramatically raise click-through.
  • Keep one Recipe block per recipe — don't stuff several recipes into a single schema object.
  • Re-validate after edits — a small typo in a duration or a stray comma can invalidate the whole block.

Common Recipe Schema Mistakes

  • Writing times as "30 minutes" instead of the required ISO-8601 "PT30M".
  • Omitting the image, which makes the page ineligible for recipe rich results.
  • Putting all ingredients in one string instead of separate recipeIngredient lines.
  • Faking ratings or marking up content that isn't visible on the page — a manual-action risk.

Expert Tips

Let the tool handle ISO-8601 times

Malformed times are the #1 Recipe schema error. Type "1 hr 15" and the generator outputs PT1H15M and auto-calculates totalTime so prep + cook always add up.

Validate before you publish

Run the page through Google’s Rich Results Test and the Schema Markup Validator. Errors block eligibility; warnings are missed opportunities worth fixing.

Frequently Asked Questions

What is Recipe schema and why do I need it?

Recipe schema is structured data (schema.org/Recipe) that describes your recipe to search engines in JSON-LD. You need it to be eligible for recipe rich results — the thumbnail, star rating, and cook time that appear in search and the recipe carousel, which significantly improve click-through.

What fields are required for Recipe rich results?

At minimum Google requires a name and at least one image. Recommended fields like recipeIngredient, recipeInstructions, prepTime, cookTime, totalTime, recipeYield, nutrition.calories, and author unlock more features and stronger eligibility, so add as many as you can.

How do I format prep and cook times?

Use ISO-8601 duration format: PT[hours]H[minutes]M. For example, 30 minutes is PT30M and 1 hour 15 minutes is PT1H15M. This generator converts plain text like "1 hr 15" into the correct format and auto-calculates totalTime for you.

Where do I put the generated JSON-LD?

Paste the &lt;script type="application/ld+json"&gt; block into the HTML of the page that displays the recipe — inside the &lt;head&gt; or near the end of the &lt;body&gt;. The structured data must match the recipe shown on the page, then validate it with Google's Rich Results Test.

Related guides

Related tools