Skip to content

Recipe schema generator

Produce Recipe markup with ingredients, step-by-step instructions and properly formatted times, the data behind recipe results and carousels.

@Recipe
Timing & yield
Classification
Ratings (only from real on-page ratings)

Your entries are saved in this browser only (localStorage). Privacy

Required
2/2
Recommended
13/15

All Google-required properties present. That makes the page eligible, not guaranteed. Google's docs

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Weeknight lentil ragù",
  "image": [
    "https://example.com/img/ragu-1x1.jpg",
    "https://example.com/img/ragu-16x9.jpg"
  ],
  "description": "A rich, meat-free ragù built on brown lentils and a long-cooked soffritto.",
  "author": {
    "@type": "Person",
    "name": "Luca Benedetti"
  },
  "datePublished": "2026-08-30",
  "prepTime": "PT15M",
  "cookTime": "PT40M",
  "totalTime": "PT55M",
  "recipeYield": "4 servings",
  "recipeCategory": "Dinner",
  "recipeCuisine": "Italian",
  "keywords": "lentils, vegetarian, pasta sauce",
  "nutrition": {
    "@type": "NutritionInformation",
    "calories": "420 calories"
  },
  "recipeIngredient": [
    "1 cup brown lentils, rinsed",
    "1 onion, finely diced",
    "2 carrots, finely diced",
    "400 g crushed tomatoes",
    "2 tbsp olive oil"
  ],
  "recipeInstructions": [
    {
      "@type": "HowToStep",
      "text": "Soften the onion and carrot in olive oil for 10 minutes."
    },
    {
      "@type": "HowToStep",
      "text": "Add lentils, tomatoes and 2 cups of water; simmer 35 minutes."
    },
    {
      "@type": "HowToStep",
      "text": "Season and toss with pasta."
    }
  ]
}
</script>
  • ?Recommended for Recipe: add aggregateRating if it applies.aggregateRating
  • ?Recommended for Recipe: add video if it applies.video

Checked in your browser against the required and recommended properties Google documents for this type. Confirm with Google's Rich Results Test once it's live.

example.comexample.com/page
Weeknight lentil ragù
55 min420 calories
A rich, meat-free ragù built on brown lentils and a long-cooked soffritto.

An illustration of what the markup can feed. Google decides what actually appears and valid markup never guarantees a rich result.

When to use Recipe markup

  • A page with one recipe on it.
  • Food blogs: put the markup on the post, matching the recipe card.
  • Not for round-ups of many recipes (use an ItemList of links instead).

Getting it right

  • Google requires name and image. The recommended set is long: author, times, yield, ingredients, instructions, nutrition.calories, category, cuisine and keywords.
  • Times use ISO 8601 durations; this tool converts minutes to PT1H15M automatically.
  • Write one HowToStep per instruction; don't pack the whole method into one step.
  • Keywords should be extra descriptors (e.g. "winter, one-pot"), not repeats of the category or cuisine.

Source: Google Search Central, Recipe structured data documentation, and schema.org/Recipe.

Google's property list

PropertyGoogle says
namerequired
imagerequired
aggregateRatingrecommended
authorrecommended
cookTimerecommended
datePublishedrecommended
descriptionrecommended
keywordsrecommended
nutrition.caloriesrecommended
prepTimerecommended
recipeCategoryrecommended
recipeCuisinerecommended
recipeIngredientrecommended
recipeInstructionsrecommended
recipeYieldrecommended
totalTimerecommended
videorecommended

Example output

{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Weeknight lentil ragù",
  "image": [
    "https://example.com/img/ragu-1x1.jpg",
    "https://example.com/img/ragu-16x9.jpg"
  ],
  "description": "A rich, meat-free ragù built on brown lentils and a long-cooked soffritto.",
  "author": {
    "@type": "Person",
    "name": "Luca Benedetti"
  },
  "datePublished": "2026-08-30",
  "prepTime": "PT15M",
  "cookTime": "PT40M",
  "totalTime": "PT55M",
  "recipeYield": "4 servings",
  "recipeCategory": "Dinner",
  "recipeCuisine": "Italian",
  "keywords": "lentils, vegetarian, pasta sauce",
  "nutrition": {
    "@type": "NutritionInformation",
    "calories": "420 calories"
  },
  "recipeIngredient": [
    "1 cup brown lentils, rinsed",
    "1 onion, finely diced",
    "2 carrots, finely diced",
    "400 g crushed tomatoes",
    "2 tbsp olive oil"
  ],
  "recipeInstructions": [
    {
      "@type": "HowToStep",
      "text": "Soften the onion and carrot in olive oil for 10 minutes."
    },
    {
      "@type": "HowToStep",
      "text": "Add lentils, tomatoes and 2 cups of water; simmer 35 minutes."
    },
    {
      "@type": "HowToStep",
      "text": "Season and toss with pasta."
    }
  ]
}

Recipe schema questions

Why is my recipe not showing with stars?

Stars require aggregateRating from real on-page ratings, and even valid markup is only eligible, never guaranteed, for a rich result.

Is totalTime needed if I give prep and cook time?

It's recommended. This generator fills it in as prep plus cook; change it if resting or chilling time adds more.

Can I include a video?

Yes, Recipe supports a video property with a VideoObject. Use the video schema generator to build it and nest it.

Related generators