In short. Use HowToStep for recipe actions and HowToSection itemListElement arrays for grouped or nested instructions.
Definition: Put each recipe action in a
HowToStepobject. When the instructions have groups, put those steps in aHowToSection.itemListElementarray, and put a nestedHowToSectionin that array when a group has sub-sections, following Google's Recipe documentation.
Key facts
- Google's Recipe documentation recommends
HowToStepforrecipeInstructionsand allowsHowToSectionwhen a recipe has sections. - Google documents
HowToSection.itemListElementas a list of detailed steps and sub-sections. - A
HowToSectionbelongs to one recipe and contains one or multiple steps, according to the same documentation. - Schema.org defines
HowToStepas a step in instructions and describes it as an ordered list ofHowToDirectionorHowToTipitems. - Schema.org defines
HowToSectionas a sub-grouping of steps, with a pie-crust section as its example.
When should HowToSection be used?
Google's Recipe documentation says most recipes do not have sections. Start with HowToStep objects and add HowToSection only when the recipe needs sections of steps. This makes the top-level shape a direct array of HowToStep objects for a recipe with one continuous sequence.
For a recipe with groups, recipeInstructions can contain a HowToSection directly. The section has a name and an itemListElement array. Google’s example names the section “Assemble the pie” and places two HowToStep objects in that array. Each object carries its instruction in text.
"recipeInstructions": [
{
"@type": "HowToSection",
"name": "Assemble the pie",
"itemListElement": [
{
"@type": "HowToStep",
"text": "In large bowl, gently mix filling ingredients; spoon into crust-lined pie plate."
},
{
"@type": "HowToStep",
"text": "Top with second crust. Cut slits or shapes in several places in top crust."
}
]
}
]
How do nested sections work?
Google's Recipe documentation documents two locations for a section: directly within recipeInstructions, or as an itemListElement of another HowToSection. The second form provides the nesting needed for a recipe whose section contains sub-sections. At each level, use the array for the items that belong to that group.
The documented itemListElement property can hold existing entities or ListItem values, and Schema.org's property definition says that ListItem supplies extra context for ordered lists. In this recipe pattern, Google’s example uses typed HowToStep objects directly. Schema.org cautions that markup order alone is insufficient for indicating order and points to ListItem with position when that distinction is required.
What belongs in each step?
Schema.org's HowToStep definition defines HowToStep as a step in instructions and describes it as an ordered list of HowToDirection or HowToTip items. Google's recipe guidance permits a step to use its text property for one or more sentences, or its itemListElement property for HowToDirection or HowToTip substeps. A section therefore groups steps, while a step carries the instruction or its smaller directions and tips.
Keep the section boundary aligned with the recipe page. Google describes HowToSection as a section of a single recipe and says it contains one or multiple steps. For different ways to make the same dish, the documentation calls for multiple Recipe objects, rather than multiple HowToSection objects.
How can the markup be checked?
Check that every HowToSection has a name and an itemListElement array, and that the array contains the steps or sub-sections described by Google's recipe documentation. Check that each HowToStep has instruction text or the documented substep form. Google’s example uses the JSON-LD @type, name, itemListElement, and text properties shown above.
Related terms
- HowTo structured data
- Structured data
- JSON-LD
- How should ingredients and quantities be written in Recipe markup?
- How can recipe markup link directly to an instruction step?
FAQ
Should every recipe use HowToSection?
No. Google says most recipes do not have sections and recommends starting by splitting instructions into HowToStep properties.
Can a section contain another section?
Yes. Google says a HowToSection can be an itemListElement of another HowToSection, which supports sub-sections inside a recipe section.
Should different versions of a dish be sections?
No. Google’s guidance places different recipes for a dish in separate Recipe objects and uses HowToSection within one recipe.
Sources
- Google Search Central, "Recipe structured data", 2026-09-08
- Schema.org, "HowToStep", 2026-09-16
- Schema.org, "HowToSection", 2026-09-16
- Schema.org, "itemListElement", 2026-09-16
Check how a page reads to answer engines. Open the GEO score analyzer