Food Blogs

Recipe Schema Markup for Food Blogs

Recipe schema produces one of the most eye-catching results in all of Google Search: the recipe card, complete with a photo, star rating, and cook time, often shown in a swipeable carousel at the very top of the page. For a food blog, that visibility is traffic, and it's only available to recipes with correct structured data. Recipe markup is what turns a plain post into a card that earns the click.

Get Started Free

What is Recipe schema?

Recipe schema is structured data (JSON-LD) that describes a dish: its name, image, author, ingredients, step-by-step instructions, timings, yield, and, if you have them, ratings and a video. It's one of the richest schema types because a recipe has so many discrete, machine-readable facts, and Google rewards that completeness with prominent rich results.

Done right, it can make your recipe eligible for the recipe card, the host carousel, and cook-time and rating displays: the features that make food content so visual in search.

Why food blogs need Recipe schema

The recipe card and carousel

These are among the most prominent rich results Google offers, frequently appearing above traditional links. Without Recipe schema, you simply aren’t eligible.

Ratings and cook time at a glance

A card showing 4.8 stars and "20 min" communicates value instantly and pulls clicks away from plainer results.

AI and assistant surfaces

"How do I make X" and "quick weeknight dinner ideas" are natural questions for AI assistants, which lean on structured recipe data, ingredients, steps, timings, to answer. Well-marked-up recipes are far easier for these systems to parse and cite.

A complete Recipe JSON-LD example

Here's correct markup with the fields Google pays attention to:

{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Weeknight Lemon Garlic Pasta",
  "image": ["https://example.com/images/lemon-pasta.jpg"],
  "author": { "@type": "Person", "name": "Maria Rossi" },
  "datePublished": "2026-03-18",
  "description": "A bright, 20-minute pasta with lemon, garlic, and parmesan.",
  "prepTime": "PT5M",
  "cookTime": "PT15M",
  "totalTime": "PT20M",
  "recipeYield": "4 servings",
  "recipeCategory": "Main course",
  "recipeCuisine": "Italian",
  "recipeIngredient": [
    "400g spaghetti",
    "3 cloves garlic, minced",
    "2 lemons, zested and juiced",
    "50g parmesan, grated",
    "3 tbsp olive oil"
  ],
  "recipeInstructions": [
    { "@type": "HowToStep", "text": "Cook the spaghetti until al dente." },
    { "@type": "HowToStep", "text": "Saute the garlic in olive oil, then add the lemon." },
    { "@type": "HowToStep", "text": "Toss the pasta with the sauce and parmesan." }
  ],
  "nutrition": { "@type": "NutritionInformation", "calories": "480 calories" },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "ratingCount": "126"
  }
}

image is effectively required for the recipe card: high-quality, and ideally multiple aspect ratios.

Timings in ISO 8601. PT20M means 20 minutes, PT1H30Mmeans 90 minutes. Plain "20 minutes" won't validate.

recipeInstructions as HowToStep items, not one paragraph blob. This is what enables step-by-step displays.

aggregateRating for the stars, and it must reflect real, visible ratings.

recipeYield, recipeCategory, recipeCuisine add the context that enriches the card and helps you match relevant queries.

Get the details right

Recipe is unforgiving about format. The two most common validation failures are timings that aren't in ISO 8601 duration format and instructions supplied as a single block of text instead of discrete HowToStep entries. If you have a video, add a VideoObject, recipe videos are prominently featured. And keep nutrition and yield accurate, since these feed directly into what searchers see. The upside of getting all this right is real: recipe content, done well, is some of the most visually rewarded in search.

How to add Recipe schema in WordPress

Many food bloggers use a recipe plugin, but coverage and validation quality vary, and the markup can drift from the visible post. Your options:

1. Manual JSON-LD

Tedious per recipe and easy to get the ISO 8601 timings wrong.

2. A recipe or SEO plugin

Often workable, but validation gaps and formatting issues are common.

3. Generate it automatically with AI Schema Gen

Reads your post and produces complete Recipe markup with correctly formatted timings, HowToStep instructions, and rating data.

See the AI Schema Gen vs Yoast comparison for how automated generation compares.

The flow:

  1. 1Install the plugin and connect your free account.
  2. 2AI Schema Gen reads the recipe post, ingredients, steps, and times.
  3. 3It generates valid Recipe markup with ISO 8601 timings and structured instructions.
  4. 4Auto-apply keeps the markup in sync when you edit the recipe.
  5. 5Validate before publishing.

Details in the documentation.

Common mistakes that break Recipe rich results

Timings not in ISO 8601 format

(PT30M, not "30 minutes"). A frequent validation failure.

Missing or low-quality image

Which the recipe card depends on.

Instructions as one text blob

Instead of HowToStep items.

Rating markup with no visible ratings

On the page, a policy violation.

Missing recipeYield or nutrition

Where the post clearly states them.

Marking up a roundup or category page

As a single Recipe.

Recipe schema and AI search

Cooking is a natural fit for conversational and assistant-driven search: people ask for substitutions, scaled quantities, and quick ideas, and the systems answering them draw on structured recipe data to respond accurately. A blog whose recipes are cleanly marked up (real timings, discrete steps, honest ratings) is positioned to be the source those answers pull from. The same structured-content discipline that helps publishers and course creators get surfaced applies here, with an unusually visual payoff in traditional search on top.

Frequently Asked Questions

Turn your recipes into cards Google features

Free plan includes 30 AI generations per month. No credit card required.

Explore more use cases.