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 of- HowToStepobjects, 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: A- NutritionInformationnode, with a- caloriesproperty 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 than- 6).
- 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: a- RestrictedDietnode, 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 the- WebPageby 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 of- cookTimeand- prepTimein 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 the- Article'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"
                  }
              }
          ]
      }
  ]
}