-
|
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.
Replies: 1 comment 1 reply
-
|
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:
{ "@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": [{ …