Geodocs.dev

Recipe Schema Specification for AI Search Citations

ShareLinkedIn

Open this article in your favorite AI assistant for deeper analysis, summaries, or follow-up questions.

Recipe schema is JSON-LD structured data that describes a cookable recipe to AI search engines and voice assistants. The required Google fields are name and image; recommended fields include recipeIngredient, recipeInstructions (typed as HowToStep), cookTime, prepTime, totalTime, recipeYield, nutrition, and aggregateRating.

TL;DR

Recipe schema turns prose recipes into machine-readable structured data. At minimum, AI engines need @type: Recipe, name, and image. To be eligible for Google rich results and clean AI citations, also include recipeIngredient[], recipeInstructions[] (as HowToStep objects), ISO 8601 cookTime/prepTime/totalTime, recipeYield, nutrition (NutritionInformation), author, datePublished, and aggregateRating. Use ItemList for recipe carousels and HowToStep (with optional inline image and name) for stepwise extraction.

What is Recipe schema

Recipe schema is a schema.org type (Thing > CreativeWork > Recipe) that describes a cookable recipe. It supersedes the legacy ingredients property with recipeIngredient and adds typed time durations, yield, nutrition, and step-by-step instructions.

For AI search and voice assistants, Recipe schema serves four jobs:

  1. Ingredient extraction. recipeIngredient[] gives engines a clean ingredient list for shopping list generation, dietary filtering, and substitution.
  2. Step-by-step playback. recipeInstructions[] typed as HowToStep lets voice assistants read each step aloud and lets AI Overviews surface a single step on demand.
  3. Time and yield reasoning. cookTime, prepTime, totalTime, and recipeYield let engines answer "how long" and "how many servings" without parsing prose.
  4. Nutrition and dietary signals. nutrition (NutritionInformation) and suitableForDiet enable filtering by diet and surfacing calorie or macro chips.

Required for Google rich result eligibility

PropertyTypeNotes
@contextURLAlways https://schema.org
@typeTextRecipe
nameTextRecipe title
imageURL or ImageObject[]Multiple high-resolution images recommended

Google's Recipe documentation calls out name and image as the two strict requirements; the June 2025 documentation update clarified that image quality affects both rich result eligibility and organic text-result ranking.

PropertyTypeNotes
authorPerson or OrganizationRequired for E-E-A-T signals
datePublishedDateISO 8601 date
descriptionText120-160 characters
recipeIngredientText[]One ingredient per array entry
recipeInstructionsHowToStep[]Use HowToStep, not free text
cookTimeDurationISO 8601, e.g. PT30M
prepTimeDurationISO 8601
totalTimeDurationISO 8601, must equal cookTime + prepTime
recipeYieldText or QuantitativeValuee.g. 4 servings
recipeCategoryTexte.g. dessert, entree
recipeCuisineTexte.g. Italian, Thai
nutritionNutritionInformationCalorie and macro data
aggregateRatingAggregateRatingUser ratings; helps AI ranking signals
keywordsTextComma-separated; differs from tags
videoVideoObjectRecipe demo video
suitableForDietRestrictedDiete.g. https://schema.org/VeganDiet

Canonical JSON-LD example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "@id": "https://example.com/recipes/lemon-pasta#recipe",
  "name": "15-Minute Lemon Pasta",
  "description": "A bright, weeknight lemon pasta with parmesan and parsley.",
  "image": [
    "https://example.com/images/lemon-pasta-1x1.jpg",
    "https://example.com/images/lemon-pasta-4x3.jpg",
    "https://example.com/images/lemon-pasta-16x9.jpg"
  ],
  "author": { "@type": "Person", "name": "Sam Lee" },
  "datePublished": "2026-05-03",
  "prepTime": "PT5M",
  "cookTime": "PT10M",
  "totalTime": "PT15M",
  "recipeYield": "4 servings",
  "recipeCategory": "entree",
  "recipeCuisine": "Italian",
  "keywords": "lemon pasta, weeknight dinner, vegetarian",
  "recipeIngredient": [
    "400g spaghetti",
    "2 lemons (zest + juice)",
    "60g grated parmesan",
    "3 tbsp olive oil",
    "Salt and pepper to taste",
    "Fresh parsley, chopped"
  ],
  "recipeInstructions": [
    { "@type": "HowToStep", "name": "Boil pasta", "text": "Cook spaghetti in salted boiling water until al dente." },
    { "@type": "HowToStep", "name": "Make sauce", "text": "Whisk lemon zest, juice, olive oil, and parmesan in a bowl." },
    { "@type": "HowToStep", "name": "Toss and serve", "text": "Drain pasta, toss with sauce, garnish with parsley." }
  ],
  "nutrition": {
    "@type": "NutritionInformation",
    "calories": "480 kcal",
    "proteinContent": "14 g",
    "carbohydrateContent": "72 g",
    "fatContent": "15 g"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "128"
  }
}
</script>

How AI engines use Recipe schema

AI search engines and voice assistants use Recipe schema in distinct retrieval modes:

  • AI Overviews and ChatGPT Search extract recipeIngredient and recipeInstructions text directly into citation snippets.
  • Google Assistant and voice cooking flows read HowToStep objects step-by-step and map cookTime/prepTime to timer prompts.
  • Multimodal models pair image[] with name and description to ground visual recipe extraction (e.g., "what is in this dish").
  • Diet and nutrition filters in AI shopping or meal-planning agents rely on nutrition and suitableForDiet.

Google's June 2025 Recipe documentation update confirmed images influence both rich result rendering and organic text ranking. AI engines that train on Google's index inherit that quality bias.

Implementation patterns

Pattern 1: Single recipe page

Embed one Recipe JSON-LD block per recipe page. The block should be on the recipe URL, not the homepage. Set @id to the recipe URL with a #recipe fragment so other schemas can reference it.

For pages listing multiple recipes (e.g., "10 weeknight dinners"), use ItemList with each recipe represented as ListItem referencing the recipe's full URL. Each linked recipe page must have its own Recipe schema. Google calls this the Recipe host carousel pattern.

Pattern 3: HowTo-style recipes

For strict step-by-step recipes, recipeInstructions[] should contain HowToStep objects with name, text, and optionally image and url (deep link). For multi-section recipes (e.g., dough + filling), use HowToSection containing HowToStep[].

Pattern 4: Video recipes

Add video (VideoObject) with name, description, thumbnailUrl, contentUrl or embedUrl, uploadDate, and duration. AI engines use this to surface video citations alongside text.

Common mistakes

  • Free text in recipeInstructions. Use HowToStep[] objects, not plain strings. Free-text instructions reduce rich result eligibility and break voice playback.
  • Missing totalTime. Some engines reject Recipe blocks where totalTime is absent or doesn't equal prepTime + cookTime.
  • Single low-resolution image. Provide multiple aspect ratios (1x1, 4x3, 16x9) at ≥ 1200px wide. Image quality affects ranking per Google's June 2025 update.
  • Combining ingredients and recipeIngredient. ingredients is superseded; only use recipeIngredient.
  • Skipping author. Recipe E-E-A-T signals depend on a clear author (Person or Organization) for trust.
  • Wrong duration format. Durations must be ISO 8601 (PT30M, PT1H30M), not 30 minutes.
  • Inflated aggregateRating. Ratings must reflect on-page reviews; fabricated ratings violate Google's spam policies.

How to validate

  1. Run Google's Rich Results Test on the recipe URL. It flags missing required fields and warns about recommended ones.
  2. Run the Schema Markup Validator for vocabulary correctness without Google-specific bias.
  3. Use Google Search Console's Recipe rich result report to monitor warnings; the report includes recipeInstructions and recipeIngredient warnings since March 2024.
  4. Verify ISO 8601 durations parse correctly: PT30M not 30 minutes.

FAQ

Q: What are the strictly required properties for Recipe schema?

For Google rich result eligibility, only name and image are strictly required. For AI citation quality, also include recipeIngredient, recipeInstructions (as HowToStep), cookTime, prepTime, totalTime, recipeYield, author, and datePublished.

Q: Should recipeInstructions be free text or HowToStep?

Use HowToStep[]. Free-text instructions are accepted by schema.org but reduce rich result eligibility and break stepwise voice playback. Each HowToStep should have at least text, ideally also name for short titles and optionally image for visual steps.

Q: What is the difference between cookTime, prepTime, and totalTime?

prepTime is hands-on prep before cooking. cookTime is active cooking time. totalTime is the whole elapsed time and should equal prepTime + cookTime. All three use ISO 8601 durations (e.g., PT30M).

Q: How do I mark a vegan or gluten-free recipe?

Use suitableForDiet with a schema.org RestrictedDiet URL such as https://schema.org/VeganDiet or https://schema.org/GlutenFreeDiet. Multiple diets can be listed in an array.

Q: Can I use Recipe schema for non-cooking recipes (e.g., cocktails, beauty mixes)?

For beverages, Recipe is the standard type and AI engines accept it. For non-cookable how-tos (e.g., DIY craft mixes), use HowTo instead of Recipe. Misusing Recipe for non-food content reduces citation quality.

Q: How do images affect AI citation likelihood?

Per Google's June 2025 documentation update, image quality affects both rich result eligibility and organic text-result ranking. AI engines downstream of Google inherit this bias, so multiple high-resolution images (1x1, 4x3, 16x9) at ≥ 1200px wide materially improve AI citation likelihood.

Related Articles

specification

Image Sitemap Specification for Multimodal AI Citations

Image sitemap specification for multimodal AI citations: image:image markup, captions, license, geo-location, and signals AI engines extract for visual search.

specification

Organization Schema Specification for AI Brand Citations

Organization schema specification for AI brand citations: required fields, sameAs entity linking, logo, ContactPoint, and how LLMs verify brand identity.

guide

Structured Data for AI Search

How to implement structured data (JSON-LD / Schema.org) to improve AI search visibility. Covers TechArticle, FAQPage, HowTo, and entity definitions.

Stay Updated

GEO & AI Search Insights

New articles, framework updates, and industry analysis. No spam, unsubscribe anytime.