Recipe schema not showing rich result — fixes
Recipe is the strictest schema type Google supports. The Rich Results Test will say "eligible" while the SERP shows nothing. Here are the seven actual reasons, in rough order of how often I see them on real client sites.
1. Missing or wrong image dimensions
Google needs at least one image that is 1:1, 4:3, or 16:9 and at least 1200 pixels on the long edge. The carousel uses the 1:1 image; without one, you may show up in the single-recipe rich card but not the carousel.
The Rich Results Test does not enforce dimensions — it only checks that an image property exists. So the test passes while the carousel skips you.
Fix: add at least one 1200×1200 image. If your CMS generates multiple sizes, point the schema at the original, not the thumbnail.
2. recipeIngredient as a single string
Schema says it should be an array of strings, one per ingredient line. If your CMS stores ingredients as one big text field, you have to split.
// wrong
"recipeIngredient": "500g flour, 5g yeast, 300ml water"
// right
"recipeIngredient": ["500g flour", "5g yeast", "300ml water"]
Some plugins serialise the ingredients list as a comma-separated string. The Rich Results Test won't flag it; the carousel will skip the recipe.
3. recipeInstructions as plain text instead of HowToStep objects
A common mistake from older WordPress recipe plugins. Plain text passes validation but the carousel won't show step counts.
// minimal correct shape
"recipeInstructions": [
{ "@type": "HowToStep", "text": "Mix dry ingredients." },
{ "@type": "HowToStep", "text": "Add water, knead 10 minutes." }
]
Each HowToStep can also have a name, an image, and a url pointing to an anchor on the page.
4. Missing aggregateRating
Officially optional, practically required for the carousel. I have not seen a recipe without aggregateRating in the carousel since 2023.
The catch: the rating has to be derived from first-party reviews actually shown on the page. Synthetic 5-star ratings to game the carousel are a manual-action risk.
Fix: add a review widget that emits both the visible rating UI and the schema from the same data source.
5. Image aspect ratio is off
Even if the image is large enough, an aspect ratio of, say, 5:4 or 3:2 will be rejected for carousel inclusion. The accepted ratios are exactly 1:1, 4:3, and 16:9. Anything else, no carousel.
If you have time, supply all three:
"image": [
"https://example.com/pizza-1x1.jpg",
"https://example.com/pizza-4x3.jpg",
"https://example.com/pizza-16x9.jpg"
]
Google picks the right one for the slot.
6. Page not mobile-friendly
The recipe carousel is mobile-only. Desktop search shows the single-recipe rich card but no carousel. If your mobile version of the page is broken — for example, a mobile theme strips the schema, or a paywall hides the recipe behind a login — you forfeit the carousel.
Use Google's Mobile-Friendly Test (still available in 2026 as part of Search Console) on the live URL.
7. Recipe content not visible on the page
Google's "be honest" rule: the schema must reflect what's on the page. Cooking time in the schema but not on the page → recipe drops out of the carousel. Ingredients in the schema but the page shows only finished-photo gallery → drops out.
This is the hardest one to debug because nothing flags it. The fix is to make sure your visible page content includes everything your schema asserts.
What I haven't fully verified
A few claims I see repeated in SEO blogs that I have not personally measured:
- That
prepTime,cookTime, andtotalTimetogether (not justtotalTime) are required for the time-filter carousel. Plausible but I have not tested isolating each. - That
nutrition.caloriesboosts carousel placement. I've seen recipes with and without it appear in the same carousel.
If you have data on either, email hello@schemapreview.dev.
Verifying the fix
After making changes, paste the live URL into the URL validator on the homepage. It extracts every JSON-LD block from your page and tells you which fields are missing or malformed. Then give Google 1-2 weeks to re-crawl and decide.
Reference: Recipe schema entity page.