Recipe Schema Markup (JSON-LD Blueprint)
Rich culinary structured data with cooking times, nutritional info, ingredients, step instructions, and calorie counts.
Displayed below main page header or above the tool container. • Zero CLS Container
Production JSON-LD Code Block
Embed this structured data block directly into your HTML <head> or framework layout template.
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Artisan Sourdough Boule",
"image": [
"https://omniseotools.com/images/recipes/sourdough-16x9.jpg",
"https://omniseotools.com/images/recipes/sourdough-1x1.jpg"
],
"author": {
"@type": "Person",
"name": "Chef Marco Rossi"
},
"datePublished": "2026-05-12",
"prepTime": "PT30M",
"cookTime": "PT45M",
"totalTime": "PT24H",
"recipeYield": "1 loaf (8 servings)",
"recipeCategory": "Bread",
"recipeCuisine": "French",
"nutrition": {
"@type": "NutritionInformation",
"calories": "180 calories",
"carbohydrateContent": "36g",
"proteinContent": "6g"
},
"recipeIngredient": [
"500g bread flour",
"350g lukewarm water (70% hydration)",
"100g active sourdough starter",
"10g fine sea salt"
],
"recipeInstructions": [
{
"@type": "HowToStep",
"name": "Autolyse",
"text": "Mix flour and water until no dry spots remain. Rest covered for 45 minutes."
},
{
"@type": "HowToStep",
"name": "Incorporate Starter & Salt",
"text": "Dimple the starter and salt into dough. Perform stretch and folds every 30 minutes for 2 hours."
},
{
"@type": "HowToStep",
"name": "Bake in Dutch Oven",
"text": "Preheat oven to 230C (450F). Bake covered for 20 minutes, then uncovered for 25 minutes until deep golden crust forms."
}
]
}Typed Properties Specification (7 Fields)
Key Schema.org properties and sub-objects required to qualify for rich snippet treatment in Google Search.
| Property | Expected Type | Status | Description & Example |
|---|---|---|---|
| name | Text | Required | The title of the recipe. e.g. Artisan Sourdough Boule |
| recipeIngredient | Array<Text> | Required | Array of ingredient strings with precise quantities. e.g. ["500g bread flour", "350g water"] |
| recipeInstructions | Array<HowToStep> | Required | Detailed step-by-step cooking steps. e.g. [{ "@type": "HowToStep", ... }] |
| image | Array<URL> | Required | High-resolution dish photos in multiple aspect ratios. e.g. ["https://.../photo-16x9.jpg"] |
| prepTime | Duration | Recommended | Hands-on preparation time (ISO 8601). e.g. PT30M |
| cookTime | Duration | Recommended | Baking or cooking time (ISO 8601). e.g. PT45M |
| nutrition | NutritionInformation | Recommended | Nutritional breakdown per serving. e.g. { "@type": "NutritionInformation", "calories": "180 calories" } |
Google Search Console Pitfalls & Critical Warnings
Avoid these 3 common validation traps, parser errors, and algorithmic policy penalties when deploying Recipe schema.
Missing Ingredients List
Failing to provide recipeIngredient array disqualifies recipe from Google Recipe Carousel.
Always populate recipeIngredient with clear ingredient strings.
Combining Multiple Steps into Single Text Block
Providing one giant paragraph under recipeInstructions rather than structured HowToStep objects.
Split cooking steps into distinct HowToStep objects with names.
Missing Serving Size / RecipeYield
Omitting recipeYield causes recipe card snippet warnings.
Add recipeYield specifying portions (e.g. '4 servings').
Recommended Implementation Scenarios
Related Schema Blueprints
Explore complementary structured data blueprints across the E-Commerce cluster.
HowTo Step-by-Step Schema Markup (JSON-LD)
Bakery & Artisan Confectionery Schema (JSON-LD Blueprint)
CafeOrCoffeeShop & Specialty Roastery Schema (JSON-LD)
Restaurant & Dining Menu Schema (JSON-LD Blueprint)
Displayed below main page header or above the tool container. • Zero CLS Container