Recipe markup that gets you into the carousel
The JSON-LD Recipe Schema Builder turns a recipe into a valid schema.org/Recipe block. Proper markup makes your dish eligible for Google’s recipe carousel and adds star ratings, cook time and calorie labels to your listing — a meaningful traffic boost for food sites.
How it works
The tool builds a Recipe object with name, image, description, recipeYield, recipeCategory and recipeCuisine. Ingredients are split by line into a recipeIngredient array. Each instruction line becomes a HowToStep object inside recipeInstructions. Prep and cook minutes are converted to ISO 8601 durations (PT#H#M) for prepTime and cookTime, and their sum is emitted as totalTime. When you supply calories, a NutritionInformation block is added, and a rating produces an aggregateRating.
ISO 8601 duration format explained
Recipe times must follow ISO 8601 duration notation, which looks unfamiliar if you have not seen it before:
| Duration | ISO 8601 | Use for |
|---|---|---|
| 15 minutes | PT15M | A quick sauce |
| 1 hour | PT1H | A slow roast |
| 1 hour 30 minutes | PT1H30M | A casserole |
| 2 hours 15 minutes | PT2H15M | Bread proving time |
The PT prefix stands for “Period/Time”. The tool converts your entered minutes automatically, so you never have to write these by hand.
Fields that most affect rich-result eligibility
Google lists several fields as particularly important for recipe rich results. Marking them up correctly maximises the chance your recipe is displayed with the carousel treatment:
- Image — a high-quality photo is strongly favoured. Use an absolute URL to a 16:9, 4:3, or 1:1 image. Pages without images are less likely to get the visual carousel.
- recipeIngredient — each ingredient on its own line. This powers voice assistant queries like “what ingredients do I need for sourdough?”
- recipeInstructions as HowToStep — individual step objects (rather than a single text blob) enable step-by-step display on mobile and in Google Assistant.
- totalTime — displayed prominently as a cook-time label next to your result. The tool calculates it automatically from prep plus cook time.
- aggregateRating — star ratings are one of the most visible signals in the carousel. Only add these if your recipe page genuinely collects user ratings.
Tips and example
Use a high-quality, absolute image URL — Google strongly favours recipes with images. Keep each instruction as one clear action per line. The duration converter handles the format, so just enter whole minutes. A two-step instruction array looks like this:
"recipeInstructions": [
{ "@type": "HowToStep", "text": "Preheat the oven to 180°C." },
{ "@type": "HowToStep", "text": "Mix the dry ingredients in a bowl." }
]
After generating the markup, validate it with Google’s Rich Results Test to catch any missing required fields before publishing.