Skip to content

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.

JSON-LD ยท passes this validator with 0 errors
<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