Boneyard Tools

Recipe Schema Generator (JSON-LD)

Add the recipe name, ingredients, steps, and times, and get valid Recipe JSON-LD you can paste into your page. Prep and cook times are converted to ISO 8601 durations automatically, and the markup builds live in your browser so you can copy or download it in one click.

How to generate recipe schema

  1. Enter the recipe name, a short description, and the prep and cook times in minutes.
  2. Add one ingredient per row and one instruction per step, then set the yield and optional nutrition.
  3. Copy the JSON-LD script and paste it into the <head> or body of your recipe page.

Examples

Banana bread with prep and cook times

name: Classic Banana Bread, prep: 15 min, cook: 60 min, 3 ingredients, 2 steps
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Classic Banana Bread",
  "prepTime": "PT15M",
  "cookTime": "PT1H",
  "totalTime": "PT1H15M",
  "recipeIngredient": [ ... ],
  "recipeInstructions": [ { "@type": "HowToStep", "text": "..." } ]
}
</script>

Steps become HowToStep nodes

instructions: Mash the bananas. / Mix and bake.
"recipeInstructions": [ { "@type": "HowToStep", "text": "Mash the bananas." }, { "@type": "HowToStep", "text": "Mix and bake." } ]

Frequently asked questions

What is recipe schema?

Recipe schema is structured data that describes a dish to search engines using the Recipe type from schema.org. It labels the ingredients, steps, prep and cook times, yield, and nutrition so crawlers understand the page is a recipe rather than guessing from the surrounding HTML. The output here is JSON-LD, the format Google recommends.

Can recipe schema get me rich results?

Valid Recipe markup makes a page eligible for recipe rich results, such as the cooking time, star ratings, and the photo carousel Google shows for dishes. Eligibility is not a guarantee. Google still decides whether to display rich results based on content quality, and the markup must match the recipe that is visible on the page.

Why are prep and cook times written as PT15M or PT1H30M?

Google expects durations in ISO 8601 format, where PT15M means 15 minutes and PT1H30M means one hour and thirty minutes. This generator takes plain minutes from the form and converts them for you, and it adds a totalTime that sums the prep and cook times so you do not have to calculate it by hand.

Which fields does Google require for a recipe?

At minimum Google wants a name and an image, and recipe rich results work best with ingredients, instructions, and times filled in. This tool requires a name and at least one ingredient before it builds the markup, and it omits any optional field you leave blank so the JSON-LD stays clean.

How do I test the recipe markup?

Paste the generated script into Google's Rich Results Test and the Schema.org validator. Both parse the JSON-LD, flag missing or invalid properties, and show which rich results the page qualifies for. Re-test after any edit to the recipe or the markup so the two stay in sync.

Is my recipe data sent anywhere?

No. The JSON-LD is built entirely in your browser. Nothing you type, including ingredients and instructions, is uploaded or stored.

Related tools