Skip to content
Schema Generator
Menu

Recipe schema generator (JSON-LD)

A single recipe with ingredients, steps, and cooking times.

Rich result available: Recipe. Schema.org type Recipe.

1 of 16

Recipe rich results in Google

Recipes can show an image, rating, cooking time, and calories in Search and in recipe carousels. Google requires a name and an image.

Google's recipe documentation

When to use Recipe schema

Add Recipe JSON-LD to a page whose main content is a single recipe. Food blogs, publisher recipe pages, and brand recipe hubs are the usual fit. Do not mark up a category page or a list of unrelated recipes with one Recipe object.

Recipe properties Google requires and recommends

PropertyStatusIn the form
nameRequiredRecipe name
imageRequiredImages
descriptionRecommendedDescription
authorRecommendedAuthor
datePublishedRecommendedPublished
prepTimeRecommendedPrep time (minutes)
cookTimeRecommendedCook time (minutes)
totalTimeRecommendedTotal time (minutes)
recipeYieldRecommendedServings
recipeIngredientRecommendedIngredients
recipeInstructionsRecommendedSteps
recipeCategoryRecommendedCategory
recipeCuisineRecommendedCuisine
caloriesRecommendedCalories per serving
keywordsRecommendedKeywords
aggregateRatingRecommendedAverage rating

Recipe JSON-LD example

This is what the builder produces from the example data. Paste it into the page's HTML, in the <head> or the body.

{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Berliner Kartoffelsuppe",
  "image": [
    "https://example.com/images/kartoffelsuppe.jpg"
  ],
  "description": "Thick potato soup with marjoram and smoked sausage.",
  "author": {
    "@type": "Person",
    "name": "Jane Doe"
  },
  "datePublished": "2026-01-12",
  "prepTime": "PT20M",
  "cookTime": "PT40M",
  "totalTime": "PT1H",
  "recipeYield": "4",
  "recipeCategory": "Soup",
  "recipeCuisine": "German",
  "nutrition": {
    "@type": "NutritionInformation",
    "calories": "420 calories"
  },
  "recipeIngredient": [
    "1 kg floury potatoes",
    "2 carrots",
    "1 leek",
    "4 smoked sausages",
    "1 tsp dried marjoram"
  ],
  "recipeInstructions": [
    {
      "@type": "HowToStep",
      "text": "Peel and dice the potatoes and carrots. Slice the leek."
    },
    {
      "@type": "HowToStep",
      "text": "Simmer the vegetables in 1.5 l stock for 30 minutes."
    },
    {
      "@type": "HowToStep",
      "text": "Mash roughly, add marjoram, and warm the sliced sausages in the soup."
    }
  ]
}

Recipe schema FAQ

What format should cooking times use?
Schema.org expects ISO 8601 durations: PT15M is 15 minutes, PT1H30M is an hour and a half. The builder asks for plain minutes and converts them, so 90 becomes PT1H30M.
Can instructions be plain strings?
Yes. Google accepts an array of strings or HowToStep objects. HowToStep is better when you need position, images, or section groupings.
Should I add ratings to every recipe?
Only if the page shows real aggregate ratings or individual reviews. Markup must match visible content.