← Back to Docs
SEO

Recipe Schema Markup

Structured data that tells Google your recipe exists — ingredients, cook time, ratings, and nutrition — so it shows up as a rich result in search.

Why it matters

Without schema markup, your recipe page is just text to a crawler. With JSON-LD Recipe schema, Google renders a rich card — photo, star rating, prep time, calorie count — directly in the SERP. That card drives click-through before the user ever sees your domain.

The JSON-LD skeleton

Place this inside your page <head>. Google parses JSON-LD preferentially over microdata.

{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Sourdough Boule",
  "image": ["https://yoursite.com/sourdough.jpg"],
  "author": { "@type": "Person", "name": "Jane Doe" },
  "datePublished": "2025-01-15",
  "description": "Crisp crust, open crumb.",
  "prepTime": "PT30M",
  "cookTime": "PT45M",
  "totalTime": "PT15H30M",
  "recipeYield": "1 loaf",
  "recipeIngredient": [
    "500g bread flour",
    "350g water",
    "100g levain",
    "10g salt"
  ],
  "recipeInstructions": [
    { "@type": "HowToStep", "text": "Autolyse flour and water 1 hour." },
    { "@type": "HowToStep", "text": "Add levain and salt, fold." }
  ],
  "nutrition": {
    "@type": "NutritionInformation",
    "calories": "180 calories per slice"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "34"
  }
}

Required fields

  • name — the title Google displays
  • image — at least one high-res URL; 1200×1200 recommended
  • recipeIngredient — array of strings, each one ingredient line
  • recipeInstructions — array of HowToStep objects

Validation

Paste your URL into the Rich Results Test or Schema.org validator. Fix every error — Google drops rich results on any parse failure.