Recipe schema example
Google requires only name and image for a Recipe, but the rich result is built from the recommended properties: cook and prep times, ingredients, step-by-step instructions, ratings, calories and a video. Times must be ISO 8601 durations, which is where most recipe markup fails.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Weeknight Red Lentil Dal",
"image": [
"https://example.com/img/dal-16x9.jpg",
"https://example.com/img/dal-1x1.jpg"
],
"author": {
"@type": "Person",
"name": "Priya Natarajan"
},
"datePublished": "2026-01-18",
"description": "A one-pot red lentil dal with cumin, turmeric and a fried garlic tarka.",
"prepTime": "PT10M",
"cookTime": "PT25M",
"totalTime": "PT35M",
"recipeYield": "4 servings",
"recipeCategory": "Main course",
"recipeCuisine": "Indian",
"keywords": "dal, lentils, vegan",
"nutrition": {
"@type": "NutritionInformation",
"calories": "320 calories"
},
"recipeIngredient": [
"250 g red lentils",
"1 onion, chopped",
"3 garlic cloves",
"1 tsp ground turmeric",
"1 tsp cumin seeds",
"400 ml water"
],
"recipeInstructions": [
{
"@type": "HowToStep",
"text": "Rinse the lentils until the water runs clear."
},
{
"@type": "HowToStep",
"text": "Simmer lentils, onion and turmeric in the water for 20 minutes."
},
{
"@type": "HowToStep",
"text": "Fry cumin and garlic in oil until golden and pour over the dal."
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.8,
"ratingCount": 96
}
}
</script>What Google checks
Recipe docs
Required: nameimage
Recommended: authordatePublisheddescriptionrecipeIngredientrecipeInstructionsrecipeYieldprepTimecookTimetotalTimerecipeCategoryrecipeCuisinekeywordsnutrition.caloriesaggregateRatingvideo
Taken from Google Search Central's documentation for this type. Meeting the requirements makes a page eligible; Google decides whether to show a rich result.
Mistakes the validator catches on Recipe
- "cookTime": "25 minutes"
- Durations must be ISO 8601: PT25M. One hour and a half is PT1H30M.
- All instructions in one string
- Google recommends an array of HowToStep objects so it can show steps individually.
- Ingredients as one long paragraph
- recipeIngredient is a list: one string per ingredient.
- totalTime shorter than prep + cook
- Not a syntax error, but a sign one of the values is wrong.
Paste your own version into the schema markup validator or test a live URL.
Questions
What is required for Recipe schema?
Google lists name and image as required. Everything else, including ingredients and instructions, is recommended but strongly advised.
How do I write 1 hour 15 minutes?
PT1H15M. P starts the duration, T separates the time part, then hours (H) and minutes (M).
Can recipeYield be a number?
Yes. "4", 4 or "4 servings" all work; text lets you state the unit.
Other examples
ArticleProductFAQPageEventLocalBusinessOrganizationBreadcrumbListVideoObjectJobPostingReview