Recipe Schema Markup Guide: How to Get Those Beautiful Google Recipe Cards

Last Updated: February 25, 2026 · 14 min read

If you run a food blog or recipe website, Recipe schema is probably the single highest-ROI structured data you can implement. A properly marked-up recipe can appear as a rich card right at the top of Google Search — complete with star ratings, cook time, calorie count, and a thumbnail image.

Food blogs that implement Recipe schema correctly see 2–5× higher click-through rates compared to plain blue links. This guide shows you exactly how to do it right.

📊 Real Impact

A food blog with 200 recipes added correct Recipe schema and went from 0 rich results to 40+ recipe rich cards in Google within 6 weeks. Organic traffic increased by 78% in 3 months.

What Google Shows for Recipe Rich Results

Google can show two types of recipe rich results:

  • Rich cards (mobile): Image carousel with star ratings, cook time, and calorie count — these get massive clicks
  • Rich snippets (desktop): Standard search result enhanced with star ratings and cook time below the title
  • Google Discover: Recipe cards in the personalized feed — high engagement traffic source

Required vs. Recommended Fields

PropertyRequired?Description
name✅ RequiredName of the recipe
image✅ RequiredImage URL (at least 1200px wide recommended)
author✅ RequiredPerson or Organization who created the recipe
description⭐ RecommendedShort description shown in search results
prepTime⭐ RecommendedISO 8601 duration (e.g., PT15M = 15 minutes)
cookTime⭐ RecommendedISO 8601 duration (e.g., PT45M = 45 minutes)
totalTime⭐ RecommendedTotal time = prepTime + cookTime
recipeYield⭐ RecommendedServings (e.g., "4 servings")
recipeIngredient⭐ RecommendedArray of ingredient strings
recipeInstructions⭐ RecommendedArray of HowToStep objects
recipeCategory⭐ Recommendede.g., "Dessert", "Main course"
recipeCuisine⭐ Recommendede.g., "Indian", "Italian"
nutrition⭐ RecommendedNutritionInformation object with calories
aggregateRating⭐ RecommendedStar ratings (ratingValue, reviewCount)
keywordsOptionalTags for the recipe

Complete Recipe Schema Example

Here is a complete, production-ready Recipe schema for a Butter Chicken recipe. Copy and adapt this for your own recipes:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Authentic Butter Chicken (Murgh Makhani)",
  "image": [
    "https://example.com/butter-chicken-1x1.jpg",
    "https://example.com/butter-chicken-4x3.jpg",
    "https://example.com/butter-chicken-16x9.jpg"
  ],
  "author": {
    "@type": "Person",
    "name": "Chef Priya Kumar"
  },
  "datePublished": "2026-01-15",
  "description": "Classic restaurant-style butter chicken with tender chicken in a rich, creamy tomato-based sauce. Ready in under 1 hour.",
  "prepTime": "PT20M",
  "cookTime": "PT40M",
  "totalTime": "PT60M",
  "recipeCategory": "Main Course",
  "recipeCuisine": "Indian",
  "recipeYield": "4 servings",
  "keywords": "butter chicken, murgh makhani, indian chicken curry",
  "nutrition": {
    "@type": "NutritionInformation",
    "calories": "485 calories",
    "servingSize": "1 serving",
    "proteinContent": "32g",
    "fatContent": "28g",
    "carbohydrateContent": "18g"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "ratingCount": "1243"
  },
  "recipeIngredient": [
    "500g chicken thighs, boneless",
    "2 tbsp butter",
    "1 cup heavy cream",
    "1 can (400g) crushed tomatoes",
    "2 tsp garam masala",
    "1 tsp cumin",
    "1 tsp paprika",
    "2 cloves garlic, minced",
    "1 tsp fresh ginger, grated",
    "Salt to taste"
  ],
  "recipeInstructions": [
    {
      "@type": "HowToStep",
      "name": "Marinate the chicken",
      "text": "Mix chicken with yogurt, garam masala, and salt. Marinate for at least 30 minutes or overnight.",
      "url": "https://example.com/butter-chicken#step1"
    },
    {
      "@type": "HowToStep",
      "name": "Cook the sauce",
      "text": "Melt butter in a pan, add garlic and ginger. Add tomatoes and spices, simmer 15 minutes until thick.",
      "url": "https://example.com/butter-chicken#step2"
    },
    {
      "@type": "HowToStep",
      "name": "Combine and finish",
      "text": "Add cooked chicken to the sauce, pour in cream, and simmer 10 minutes. Garnish with cream and cilantro.",
      "url": "https://example.com/butter-chicken#step3"
    }
  ]
}
</script>

5 Mistakes That Prevent Recipe Rich Results

❌ Mistake 1: Wrong Image Dimensions

Google requires images to be at least 1200px wide with a 16:9, 4:3, or 1:1 aspect ratio. Images smaller than this frequently get rejected, even if the schema is otherwise valid.

✅ Fix: Always upload recipe photos at 1200×900px (4:3) or 1200×675px (16:9) minimum. Provide all three aspect ratios in the image array for maximum compatibility.

❌ Mistake 2: Using ISO Duration Wrong

cookTime: "45 minutes" will fail. Google requires ISO 8601 duration format.

✅ Fix: Use PT notation — PT45M for 45 minutes, PT1H30M for 1 hour 30 minutes.

❌ Mistake 3: Schema Content Not Matching Page

Marking up a recipe that isn't visible to users on the page (hidden divs, dynamically loaded) violates Google's guidelines and can result in a Search Console manual action.

✅ Fix: Every property in your schema must reflect content visually present on the page for human readers.

❌ Mistake 4: Fake or Inflated Ratings

Adding an aggregateRating without a real review system is against Google's policies. Self-reviews also don't count.

✅ Fix: Only add aggregateRating if you have a real ratings widget with genuine user reviews. A minimum of 5 reviews is recommended. Leave it out if you don't have reviews yet.

❌ Mistake 5: Flat Instructions Instead of HowToStep

Using a plain string for recipeInstructions loses the step-by-step display in search results.

✅ Fix: Use an array of HowToStep objects with "name" and "text" for each step. This enables the step-by-step rich result format.

Recipe Schema for WordPress (Yoast vs Plugins)

If you're on WordPress, you have three main options:

  • WP Recipe Maker (recommended): Best recipe plugin with full schema support, beautiful recipe cards, and automatic Rich Results compliance. Free and paid tiers.
  • Tasty Recipes: Popular among food bloggers, excellent schema output. Paid.
  • Recipe Card Blocks: Gutenberg-native, good for newer WordPress installations.
  • Manual JSON-LD: Most control, ideal for developers or sites without plugin support.

⚠️ WordPress Plugin Warning

If you have both a recipe plugin and Yoast SEO active, check for duplicate Recipe schema. Two competing schema blocks confuse Googlebot. Use SchemaValidator.org to paste your recipe page URL and check for duplicates.

How to Validate Your Recipe Schema

  1. Paste your recipe page URL into SchemaValidator.org and click Validate
  2. Look for a "Recipe" schema type in the results — confirm all required and recommended fields are present
  3. Check the Rich Results Checker to see Google's preview of how your recipe will appear
  4. Monitor Google Search Console → Enhancements → Recipe for errors and impressions

🎯 Quick Tip: Test Before Publishing

Always validate your schema before publishing a new recipe. Fixing schema errors after publication means waiting for Google to re-crawl your page, which can take days or weeks.

Frequently Asked Questions

Which fields are required for Recipe rich results on Google?

Google requires at minimum: name, image, and author. For full rich results (recipe cards with ratings, cook time, calories), you also need aggregateRating, cookTime, prepTime, recipeYield, recipeIngredient, and recipeInstructions.

Can I add Recipe schema to a recipe app or non-blog site?

Yes! Recipe schema works on any page that contains a recipe. The key requirement is that the recipe content must be visible on the page to real users, not just hidden in the markup.

Why isn't my recipe showing as a rich card in Google?

Common reasons: missing required fields (especially image), recipe content not visible on page, site authority low, or recent indexing delay (can take 2–4 weeks). Use the Rich Results Test to identify specific errors.

Validate Your Recipe Schema Now

Paste your recipe page URL and check for errors in seconds — free, no sign-up required.

Validate Recipe Schema →