Staaarter

Recipe Schema Generator

Fill in a recipe's name, author, timings, ingredient list, and step-by-step instructions, and this tool builds a complete Recipe JSON-LD object with recipeIngredient and recipeInstructions arrays and ISO 8601 duration fields, wrapped in a ready-to-paste <script type="application/ld+json"> tag. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-08-04
By Staaarter Team
generatorjson-ldrecipe

Overview

Introduction

Recipe rich results, the search listings that show a photo, star rating, and cook time right under the title, depend on Recipe JSON-LD being both complete and correctly shaped: ingredients and instructions are arrays, timings are ISO 8601 durations, and instructions are technically an array of HowToStep objects, not plain strings.

This generator turns a name, author, timing fields, and two line-by-line lists (ingredients, steps) into a complete, correctly-nested Recipe object ready to paste into a page's <head>.

What Is Recipe Schema Generator?

A form-driven generator for Recipe JSON-LD, covering the core fields Google's Recipe rich-result guidelines look for: name, image, author, timings, yield, ingredients, and instructions, plus optional nutrition and rating data.

recipeIngredient becomes an array of plain strings and recipeInstructions becomes an array of HowToStep objects, matching the exact shape schema.org's spec and Google's documentation both expect.

How Recipe Schema Generator Works

Name, image, author, description, and yield map directly to their Recipe properties; prepTime, cookTime, and totalTime are typed directly as ISO 8601 durations (e.g. PT20M) rather than being computed from separate hour/minute fields.

The ingredients box and instructions box each take one entry per line; blank lines are ignored, and each instruction line is wrapped as a HowToStep object with a text property when the schema is built.

When To Use Recipe Schema Generator

Publishing a new recipe post and wanting it eligible for Google's Recipe rich result with a photo, rating, and cook time.

Retrofitting structured data onto an existing food blog's recipe template, one recipe at a time.

Features

Advantages

  • Builds recipeIngredient and recipeInstructions as the correct array shapes automatically, including wrapping each instruction as a HowToStep object.
  • Accepts ISO 8601 durations directly for prepTime/cookTime/totalTime rather than requiring separate hour and minute inputs to be converted manually.
  • Only includes nutrition and aggregateRating when you actually fill them in, so minimal recipes still produce valid output.

Limitations

  • Doesn't calculate nutrition values from the ingredient list; calories and any other nutrition figures have to come from your own calculation or a third-party tool.
  • Instructions are limited to plain HowToStep text entries; schema.org also supports HowToSection groupings for multi-part recipes, which this generator doesn't expose.
  • Doesn't validate that ISO 8601 duration strings are well-formed; a typo like '30M' instead of 'PT30M' will pass through unchecked.

Examples

A simple pancake recipe

Input

Name: Classic Buttermilk Pancakes
Author: Jamie Lee
Prep time: PT10M
Cook time: PT15M
Yield: Makes 8 pancakes
Ingredients (one per line):
2 cups all-purpose flour
2 tablespoons sugar
1 3/4 cups buttermilk
Instructions (one per line):
Whisk the dry ingredients together in a large bowl.
Add the buttermilk and eggs, stirring until just combined.
Cook on a hot griddle until bubbles form, then flip.

Output

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Classic Buttermilk Pancakes",
  "recipeIngredient": [
    "2 cups all-purpose flour",
    "2 tablespoons sugar",
    "1 3/4 cups buttermilk"
  ],
  "recipeInstructions": [
    { "@type": "HowToStep", "text": "Whisk the dry ingredients together in a large bowl." },
    { "@type": "HowToStep", "text": "Add the buttermilk and eggs, stirring until just combined." },
    { "@type": "HowToStep", "text": "Cook on a hot griddle until bubbles form, then flip." }
  ],
  "author": { "@type": "Person", "name": "Jamie Lee" },
  "prepTime": "PT10M",
  "cookTime": "PT15M",
  "recipeYield": "Makes 8 pancakes"
}
</script>

Each ingredient and instruction line becomes its own array entry, with instructions additionally wrapped as HowToStep objects.

Best Practices & Notes

Best Practices

  • Write each ingredient line the way a shopper would read it (quantity, unit, item), since recipeIngredient entries are shown as-is in rich results.
  • Break instructions into distinct, single-action steps rather than a few long paragraphs, matching how Google's Recipe rich result displays them one step at a time.
  • Only add aggregateRating when the page itself shows real, visible reviews backing that rating.
  • Use a photo at least 1200px wide for image, matching Google's general minimum-resolution guidance for recipe rich-result images.

Developer Notes

prepTime/cookTime/totalTime are stored and emitted as raw ISO 8601 duration strings (PT#H#M) rather than parsed into a structured hours/minutes value internally, since that's the literal wire format schema.org expects and round-tripping through a parsed representation would add complexity with no validation benefit for a static form.

Recipe Schema Generator Use Cases

  • Adding Recipe schema to a new food blog post before publishing
  • Retrofitting structured data onto an existing recipe archive, one template at a time
  • Generating a one-off Recipe snippet for a single-page recipe card site

Common Mistakes

  • Writing timings in plain language like '30 minutes' instead of the required ISO 8601 format (PT30M).
  • Pasting the entire ingredient list into a single recipeIngredient string instead of one array entry per ingredient.

Tips

  • Run the generated output through the Structured Data Validator tool in this category to confirm the ingredient and instruction arrays parsed correctly.
  • If a recipe has distinct sections (like 'For the dough' and 'For the filling'), list all steps in cooking order in one list; this generator's flat HowToStep array doesn't support section headings.

References

Frequently Asked Questions