Question: While this is valid according to validator.schema.org, I don't know if it aligns with the intent behind the recipeInstructions
property. Would it be reasonable to represent each part of my recipe as its own sub-recipe and place these under the recipeInstructions
property? Are there other approaches that I should consider?
Sidenote: I understand that Google has stricter requirements for recipe schemas for the purposes of making them accessible to their crawlers and that my proposal contravenes their requirements. I am not concerned by this as my intention isn't to use this for SEO. I am using the Recipe
schema as a standardized representation of a recipe which I can use to populate a template for my personal static recipes catalog.
Thank you in advance for your help!
","upvoteCount":1,"answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"I think there's a happy middle ground to be found between what schema.org allows us to express vs what Google would like to see. Given the use case you described I'd probably write something along these lines:
\n{\n \"@context\": \"https://schema.org\",\n \"@type\": \"Recipe\",\n \"author\": \"Alice\",\n \"name\": \"Example Recipe\",\n \"recipeInstructions\": [{\n \"@type\": \"HowToStep\",\n \"position\": 1,\n \"name\": \"Make Shortcrust pastry\",\n \"text\": \"Follow the recipe for Shortcrust pastry.\",\n \"item\": {\n \"@type\": \"Recipe\",\n \"name\": \"Shortcrust pastry\",\n \"recipeIngredient\": [\n \"1 cup flour\",\n \"1 cup butter\",\n \"1 tbs water\"\n ],\n \"recipeInstructions\": [{\n \"@type\": \"HowToStep\",\n \"position\": 1,\n \"name\": \"cut\",\n \"text\": \"cut butter into flour\"\n }, {\n \"@type\": \"HowToStep\",\n \"position\": 2,\n \"name\": \"add\",\n \"text\": \"add water and work into crust\"\n }, {\n \"@type\": \"HowToStep\",\n \"position\": 3,\n \"name\": \"form\",\n \"text\": \"form into oval on pan\"\n }]\n }\n }, {\n \"@type\": \"HowToStep\",\n \"position\": 2,\n \"name\": \"Make Choux pastry\",\n \"text\": \"Follow the recipe for Choux pastry.\",\n \"item\": {\n \"@type\": \"Recipe\",\n \"name\": \"Choux pastry\",\n \"recipeIngredient\": [\n \"1 cup flour\",\n \"1/4 cup butter\",\n \"1 cup water\",\n \"3 eggs\"\n ],\n \"recipeInstructions\": [{\n \"@type\": \"HowToStep\",\n \"position\": 1,\n \"name\": \"follow\",\n \"text\": \"follow the standard stove top process\"\n }, {\n \"@type\": \"HowToStep\",\n \"position\": 2,\n \"name\": \"place\",\n \"text\": \"place pastry on top of shortcrust\"\n }, {\n \"@type\": \"HowToStep\",\n \"position\": 3,\n \"name\": \"bake\",\n \"text\": \"bake together at 400 degrees for 40 minutes\"\n }]\n }\n }]\n}
-
I have a recipe which has multiple discrete parts, each of which has its own set of ingredients and steps. I would like to represent these using the Recipe schema without combining the ingredients from each part into the The Here's a json-ld example of what I am proposing (I simplified a recipe for illustrative purposes): {
"@context": "https://schema.org",
"@type": "Recipe",
"author": "Alice",
"name": "Example Recipe",
"recipeInstructions": [
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Shortcrust pastry",
"recipeIngredient": [
"1 cup flour",
"1 cup butter",
"1 tbs water"
],
"recipeInstructions": [
"cut butter into flour",
"add water and work into crust",
"form into oval on pan"
]
},
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Choux pastry",
"recipeIngredient": [
"1 cup flour",
"1/4 cup butter",
"1 cup water",
"3 eggs"
],
"recipeInstructions": [
"follow the standard stove top process",
"place pastry on top of shortcrust",
"bake together at 400 degrees for 40 minutes"
]
}
]
} Question: While this is valid according to validator.schema.org, I don't know if it aligns with the intent behind the Sidenote: I understand that Google has stricter requirements for recipe schemas for the purposes of making them accessible to their crawlers and that my proposal contravenes their requirements. I am not concerned by this as my intention isn't to use this for SEO. I am using the Thank you in advance for your help! |
Beta Was this translation helpful? Give feedback.
-
I think there's a happy middle ground to be found between what schema.org allows us to express vs what Google would like to see. Given the use case you described I'd probably write something along these lines: {
"@context": "https://schema.org",
"@type": "Recipe",
"author": "Alice",
"name": "Example Recipe",
"recipeInstructions": [{
"@type": "HowToStep",
"position": 1,
"name": "Make Shortcrust pastry",
"text": "Follow the recipe for Shortcrust pastry.",
"item": {
"@type": "Recipe",
"name": "Shortcrust pastry",
"recipeIngredient": [
"1 cup flour",
"1 cup butter",
"1 tbs water"
],
"recipeInstructions": [{
"@type": "HowToStep",
"position": 1,
"name": "cut",
"text": "cut butter into flour"
}, {
"@type": "HowToStep",
"position": 2,
"name": "add",
"text": "add water and work into crust"
}, {
"@type": "HowToStep",
"position": 3,
"name": "form",
"text": "form into oval on pan"
}]
}
}, {
"@type": "HowToStep",
"position": 2,
"name": "Make Choux pastry",
"text": "Follow the recipe for Choux pastry.",
"item": {
"@type": "Recipe",
"name": "Choux pastry",
"recipeIngredient": [
"1 cup flour",
"1/4 cup butter",
"1 cup water",
"3 eggs"
],
"recipeInstructions": [{
"@type": "HowToStep",
"position": 1,
"name": "follow",
"text": "follow the standard stove top process"
}, {
"@type": "HowToStep",
"position": 2,
"name": "place",
"text": "place pastry on top of shortcrust"
}, {
"@type": "HowToStep",
"position": 3,
"name": "bake",
"text": "bake together at 400 degrees for 40 minutes"
}]
}
}]
} |
Beta Was this translation helpful? Give feedback.
I think there's a happy middle ground to be found between what schema.org allows us to express vs what Google would like to see. Given the use case you described I'd probably write something along these lines: