Recipe Schema Markup
Recipe is one of the most rewarding schema types to implement. Google displays Recipe rich results as visually prominent cards with images, star ratings, cooking time, and calorie information — making them some of the most clicked results in search.
Eligible Rich Results
When to Use Recipe
Properties
| Property | Type | Status | Description |
|---|---|---|---|
| name | Text | required | The recipe name or dish title. |
| image | URL or ImageObject | required | Photo(s) of the finished dish. Multiple sizes recommended. |
| author | Person or Organization | recommended | Recipe creator. |
| datePublished | Date | recommended | When the recipe was published. |
| description | Text | recommended | Summary of the recipe. |
| prepTime | Duration | recommended | Preparation time in ISO 8601 duration (e.g., PT20M). |
| cookTime | Duration | recommended | Cooking time. |
| totalTime | Duration | recommended | Total time from start to finish. |
| recipeYield | Text | recommended | Number of servings (e.g., '4 servings'). |
| recipeIngredient | Text (array) | required | List of ingredients, each as a single string with quantity. |
| recipeInstructions | HowToStep (array) | required | Step-by-step cooking instructions. |
| nutrition | NutritionInformation | recommended | Calories, fat, protein, etc. |
| recipeCategory | Text | recommended | Meal type: Appetizer, Main Course, Dessert, etc. |
| recipeCuisine | Text | recommended | Cuisine type: Italian, Mexican, Thai, etc. |
| keywords | Text | optional | Comma-separated keywords. |
| aggregateRating | AggregateRating | recommended | Overall reader rating. |
JSON-LD Examples
Complete Recipe
A recipe with all recommended properties including nutrition.
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Classic Chocolate Chip Cookies",
"image": [
"https://recipes.com/choc-chip-1.jpg",
"https://recipes.com/choc-chip-2.jpg"
],
"author": {
"@type": "Person",
"name": "Sarah Baker"
},
"datePublished": "2024-01-10",
"description": "Perfectly chewy chocolate chip cookies with crispy edges.",
"prepTime": "PT15M",
"cookTime": "PT12M",
"totalTime": "PT27M",
"recipeYield": "24 cookies",
"recipeCategory": "Dessert",
"recipeCuisine": "American",
"keywords": "cookies, chocolate chip, baking, easy dessert",
"recipeIngredient": [
"2 1/4 cups all-purpose flour",
"1 cup butter, softened",
"3/4 cup granulated sugar",
"3/4 cup packed brown sugar",
"2 large eggs",
"1 tsp vanilla extract",
"1 tsp baking soda",
"1 tsp salt",
"2 cups chocolate chips"
],
"recipeInstructions": [
{
"@type": "HowToStep",
"text": "Preheat oven to 375°F (190°C)."
},
{
"@type": "HowToStep",
"text": "Cream together butter and sugars until light and fluffy."
},
{
"@type": "HowToStep",
"text": "Beat in eggs and vanilla extract."
},
{
"@type": "HowToStep",
"text": "Mix in flour, baking soda, and salt until just combined."
},
{
"@type": "HowToStep",
"text": "Fold in chocolate chips."
},
{
"@type": "HowToStep",
"text": "Drop rounded tablespoons onto ungreased baking sheets."
},
{
"@type": "HowToStep",
"text": "Bake 9-11 minutes or until golden brown. Cool on baking sheet for 2 minutes."
}
],
"nutrition": {
"@type": "NutritionInformation",
"calories": "180 calories",
"fatContent": "9g",
"carbohydrateContent": "24g",
"proteinContent": "2g"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"ratingCount": "1523"
}
} Common Mistakes
Putting all instructions in one big text block instead of separate HowToStep objects.
Using relative measurements like 'a dash of' without being specific — be precise for best results.
Listing ingredients as a single comma-separated string instead of an array of individual ingredient strings.
Using human-readable time formats like '20 minutes' instead of ISO 8601 duration 'PT20M'.
Complete Guide to Recipe Schema Markup
Recipe schema markup produces some of the most visually striking rich results in Google Search. A well-marked-up recipe appears as a prominent card with the dish photo, star rating, cooking time, and calorie count — information that helps searchers decide which recipe to click on.
The recipe rich result is one of the highest-performing rich result types in terms of click-through rate improvement. Recipe cards take up significant visual space in search results and provide exactly the information home cooks are looking for before committing to a recipe.
The recipeIngredient property should be an array of strings, where each string is a single ingredient with its quantity. Don't combine all ingredients into one text block. Google uses individual ingredient entries to enable filtering and dietary matching.
Time durations must use ISO 8601 format: PT20M for 20 minutes, PT1H30M for 1 hour 30 minutes, PT2H for 2 hours. This format is required — human-readable formats like '20 minutes' won't be parsed correctly.
Nutrition information, while optional, significantly enhances the rich result. Include at least calories per serving. Google displays calorie counts prominently in recipe cards, and many users filter recipes by nutritional content.
Related Types
Ready to Create Recipe Markup?
Use our free generator to create valid Recipe JSON-LD markup with a visual form. No coding required.
Open Generator