The full property set Yandex reads from an hRecipe page, including several extensions that are not part of the open standard.
General requirements
One recipe per page, marked with the hrecipe root class, and that recipe must be the main content of the page. It must be fully displayed and visible to visitors — nothing hidden behind a tab or a collapsed panel.
Required
fn— the dish name, plain text.ingredient— every ingredient marked individually, as text or HTML. Nested:name(a Yandex extension),typeandvaluefor unit and quantity, oramountfor a free-form quantity instead of those two.
Recommended
instructions— one per recipe; individual steps may carryinstruction(a Yandex extension). Yandex asks that the heading itself, “Cooking method”, stay outside the property.yield— portions, one per recipe, text value.duration— ISO 8601. Thevalue-titlepattern displays “an hour and a half” while publishingPT1H30M.photoandresult-photo— several photos allowed, at the root or insideinstructions, taking thesrcof animg. The finished-dish image must additionally carryresult-photo, a Yandex extension, and it is the single field that most improves the snippet.author— text, or a nested hCard, and several are allowed.nutrition— with Yandex’s own nested properties:calories,fat,saturatedFat,unsaturatedFat,carbohydrates,sugar,fiber,protein,cholesterol,servingSize.
Further Yandex extensions
category (dish type, one per recipe), sub-category, cuisine-type and weight.
The conclusion to draw
More than half the properties that make a good recipe snippet here are not in the hRecipe standard. Building from the open specification produces valid markup and a weaker result. This page is the specification to build against for Yandex, and the console validator is the only tool that checks against it.
How we apply this
We build recipe markup from this page rather than the open standard, because the fields that matter most here — result-photo, the nutrition breakdown, per-step instructions — are Yandex additions. It is also why we validate in Yandex’s own tool: a generic validator passes markup that omits every one of them, and the site gets an ordinary snippet while believing it did the work.
Related services