Schema piece - Recipe
Describes a Recipe, which contains a series of instructions, ingredients, and optional fields.
Triggers
Should be added as a top-level node in the graph, when the content of a page describes a recipe.
Required properties
A valid Recipe must have the following properties.
@type:Recipe.@id: The site's home URL appended by#/schema/Recipe/{{ID}}, where{{ID}}is a unique identifier.name: A string describing the recipe.image: An image representing the completed recipe, referenced by ID.recipeIngredient: An array of strings representing each ingredient and quantity (e.g., "3 apples").recipeInstructions: An array ofHowToStepobjects, with the following properties:@type:HowToStep.@id: The unmodified canonical URL of the page, appended by#/schema/HowToStep/{{ID}}, where{{ID}}is a unique identifier.url: A link to a fragment identifier (an 'ID anchor') of the individual step (e.g.,https://www.example.com/example-page/#recipe-step-5).text: The instruction string ("e.g., "Bake at 200*C for 40 minutes, or until golden-brown, stirring periodically throughout").name(optional): A short summary of the step (e.g., "Bake").image(optional): An image representing the step, referenced by ID.
Failure scenarios
If any of the required fields of the Recipe are missing or invalid, the node should not be output.
If a node is not output, any entities which would otherwise have declared a relationship with it should remove those references.
Optional properties
The following should be added whenever available and valid:
description: A string describing the recipe.cookTime: The cooking time in ISO 8601 format.prepTime: The time required to prepare the recipe.nutrition: ANutritionInformationnode, with acaloriesproperty which defines a calorie count as a string (e.g., "270 calories").recipeYield: The number of servings the recipe creates (not the number of individual items, if these are different), as a string (e.g.,"6", rather than6).tools: An array of strings representing the tools required in the recipe.keywords: An array of keywords describing the recipe.recipeCuisine: A string describing the cuisine type (e.g., "American" or "Spanish").recipeCategory: The category of the recipe, from the following options: 'Appetizer', 'Breakfast', 'Brunch', 'Dessert', 'Dinner', 'Drink', 'Lunch', 'Main course', 'Sauce', 'Side dish', 'Snack', 'Starter'.suitableForDiet: aRestrictedDietnode, with a value (or array of values) from the following options: 'DiabeticDiet', 'GlutenFreeDiet', 'HalalDiet', 'HinduDiet', 'KosherDiet', 'LowCalorieDiet', 'LowFatDiet', 'LowLactoseDiet', 'LowSaltDiet', 'VeganDiet', 'VegetarianDiet'.video: A reference to a video representing the recipe instructions, by ID.inLanguage: The language code for the guide; e.g.,en-GB.datePublished: The date when the recipe was added, in ISO 8601 format.
Conditional properties
When the recipe is the 'main entity' of the page
mainEntityOfPage: Referencing theWebPageby ID.
When only one of cookTime or prepTime is specified
- Alter the property in question to
totalTime.
When both of cookTime and prepTime are specified.
totalTime: The sum ofcookTimeandprepTimein ISO 8601 duration format.
When the page contains a valid Article
- Alter the
mainEntityOfPageproperty to reference theArticleby ID, (instead of theWebPage).
And when the Article has an Author
author: A reference to theArticle's author by ID.
Examples
Minimum criteria
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Recipe",
"mainEntityOfPage": {
"@id": "https://www.example.com/#/schema/Article/abc123"
},
"name": "Party Coffee Cake",
"image": {
"@id": "https://www.example.com/uploads/example-image.jpg"
},
"recipeIngredient": [
"2 cups of flour",
"3/4 cup white sugar",
"2 teaspoons baking powder",
"1/2 teaspoon salt",
"1/2 cup butter",
"2 eggs",
"3/4 cup milk"
],
"recipeInstructions": [
{
"@type": "HowToStep",
"text": "Preheat the oven to 350 degrees F. Grease and flour a 9x9 inch pan.",
"url": "https://example.com/example-page/#recipe-step-1"
},
{
"@type": "HowToStep",
"text": "In a large bowl, combine flour, sugar, baking powder, and salt.",
"url": "https://example.com/example-page/#recipe-step-2"
},
{
"@type": "HowToStep",
"text": "Mix in the butter, eggs, and milk.",
"url": "https://example.com/example-page/#recipe-step-3"
},
{
"@type": "HowToStep",
"text": "Spread into the prepared pan.",
"url": "https://example.com/example-page/#recipe-step-4"
},
{
"@type": "HowToStep",
"name": "Bake",
"url": "https://example.com/example-page/#recipe-step-5"
},
{
"@type": "HowToStep",
"text": "Allow to cool and enjoy.",
"url": "https://example.com/example-page/#recipe-step-6"
}
]
}
]
}
Extended criteria
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Recipe",
"mainEntityOfPage": {
"@id": "https://www.example.com/#/schema/Article/abc123"
},
"name": "Party Coffee Cake",
"image": {
"@id": "https://www.example.com/uploads/example-image.jpg"
},
"video": {
"@id": "https://www.example.com/#/schema/VideoObject/abc123"
},
"author": {
"@id": "https://www.example.com/#/schema/Person/abc123"
},
"inLanguage": "en-GB",
"datePublished": "2018-03-10",
"description": "This coffee cake is awesome and perfect for parties.",
"prepTime": "PT20M",
"cookTime": "PT30M",
"totalTime": "PT50M",
"keywords": "cake for a party, coffee",
"recipeYield": "10",
"recipeCategory": "Dessert",
"recipeCuisine": "American",
"suitableForDiet": [
"VegetarianDiet",
"LowSaltDiet"
],
"tools": [
"A 9x9 inch pan",
"A large mixing bowl"
],
"nutrition": {
"@type": "NutritionInformation",
"calories": "270 calories"
},
"recipeIngredient": [
"2 cups of flour",
"3/4 cup white sugar",
"2 teaspoons baking powder",
"1/2 teaspoon salt",
"1/2 cup butter",
"2 eggs",
"3/4 cup milk"
],
"recipeInstructions": [
{
"@type": "HowToStep",
"name": "Preheat",
"text": "Preheat the oven to 350 degrees F. Grease and flour a 9x9 inch pan.",
"url": "https://example.com/example-page/test/#recipe-step-1",
"image": {
"@id": "https://www.example.com/uploads/example-image-2.jpg"
}
},
{
"@type": "HowToStep",
"name": "Mix dry ingredients",
"text": "In a large bowl, combine flour, sugar, baking powder, and salt.",
"url": "https://example.com/example-page/test/#recipe-step-2",
"image": {
"@id": "https://www.example.com/uploads/example-image-3.jpg"
}
},
{
"@type": "HowToStep",
"name": "Add wet ingredients",
"text": "Mix in the butter, eggs, and milk.",
"url": "https://example.com/example-page/test/#recipe-step-3",
"image": {
"@id": "https://www.example.com/uploads/example-image-4.jpg"
}
},
{
"@type": "HowToStep",
"name": "Spread into pan",
"text": "Spread into the prepared pan.",
"url": "https://example.com/example-page/test/#recipe-step-4",
"image": {
"@id": "https://www.example.com/uploads/example-image-5.jpg"
}
},
{
"@type": "HowToStep",
"name": "Bake",
"text": "Bake for 30 to 35 minutes, or until firm.",
"url": "https://example.com/example-page/test/#recipe-step-5",
"image": {
"@id": "https://www.example.com/uploads/example-image-6.jpg"
}
},
{
"@type": "HowToStep",
"name": "Enjoy",
"text": "Allow to cool and enjoy.",
"url": "https://example.com/example-page/test/#recipe-step-6",
"image": {
"@id": "https://www.example.com/uploads/example-image-7.jpg"
}
}
]
}
]
}