Recipe Schema Markup
Recipe schema enables rich recipe results with images, ratings, cooking time, and ingredients directly in Google Search. Essential for food blogs and recipe websites.
What is Recipe schema markup?
Recipe schema markup is structured data in JSON-LD format that helps search engines understand your page content. It requires properties like name, image, recipeIngredient and enables rich results in Google Search. Recipe schema enables rich recipe results with images, ratings, cooking time, and ingredients directly in Google Search. Essential for food blogs and recipe websites.
Required Properties
| Property | Type | Description |
|---|---|---|
| name | Text | The name of the recipe. |
| image | ImageObject or URL | An image of the finished dish. |
| recipeIngredient | Text[] | The list of ingredients. |
| recipeInstructions | HowToStep[] | Step-by-step cooking instructions. |
Recommended Optional Properties
| Property | Type | Description |
|---|---|---|
| description | Text | A description of the recipe. |
| prepTime | Duration | Preparation time in ISO 8601 duration. |
| cookTime | Duration | Cooking time in ISO 8601 duration. |
| totalTime | Duration | Total time from start to finish. |
| recipeYield | Text | The number of servings (e.g., '4 servings'). |
| nutrition | NutritionInformation | Nutritional information per serving. |
| recipeCategory | Text | Category like 'dessert', 'main course'. |
| recipeCuisine | Text | Cuisine type like 'Italian', 'Mexican'. |
| author | Person | The recipe author. |
| aggregateRating | AggregateRating | Overall rating from reviews. |
Example JSON-LD Code
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Classic Margherita Pizza",
"image": "https://example.com/images/pizza.jpg",
"author": { "@type": "Person", "name": "Chef Marco" },
"prepTime": "PT20M",
"cookTime": "PT15M",
"totalTime": "PT35M",
"recipeYield": "4 servings",
"recipeCategory": "Main Course",
"recipeCuisine": "Italian",
"recipeIngredient": [
"2 cups all-purpose flour",
"1 cup warm water",
"Fresh mozzarella",
"San Marzano tomatoes",
"Fresh basil"
],
"recipeInstructions": [
{
"@type": "HowToStep",
"text": "Mix flour and water to form a dough. Let it rise for 1 hour."
},
{
"@type": "HowToStep",
"text": "Spread dough into a circle and add tomato sauce and mozzarella."
},
{
"@type": "HowToStep",
"text": "Bake at 475°F for 12-15 minutes until golden. Top with fresh basil."
}
]
}
Place this inside a <script type="application/ld+json"> tag in your page's <head>.
Common Mistakes to Avoid
- ✗ Not including all ingredients — each ingredient should be a separate item in the array
- ✗ Using vague instructions instead of clear, numbered steps
- ✗ Missing cooking times (prepTime, cookTime) which display in rich results
- ✗ Not providing a high-quality image of the finished dish
- ✗ Including non-recipe content (life stories, ads) in recipeInstructions
Generate Recipe Schema Markup
Use our free schema generator to create valid Recipe JSON-LD code in seconds.
Open Schema Generator