HowTo Schema Markup
HowTo markup describes step-by-step instructions: the steps, tools and supplies, time, and cost. It's still valid schema.org markup, but Google removed How-to rich results in 2023, so it no longer changes how a page appears in Google Search.
Google Search Features
- Review snippet Star ratings and a review excerpt for the reviewed item. Local businesses and organizations: only reviews of other businesses, not reviews they collect about themselves.
- Subscription and paywalled content Tells Google which content is behind a paywall, so it isn't treated as cloaking.
- How-to — Retired (since September 13, 2023) Google no longer shows this rich result. HowTo is still a valid schema.org type; the markup does no harm but earns no rich result.
When to Use HowTo
Properties
| Property | Type | Status | Description |
|---|---|---|---|
| name | Text | required | What this how-to teaches. |
| step | HowToStep | required | The steps to complete the task. |
| description | Text | recommended | Brief summary of the how-to. |
| image | URL | recommended | Image representing the completed task. |
| totalTime | Duration | recommended | Total time in ISO 8601 format. |
| estimatedCost | MonetaryAmount | optional | Estimated cost to complete. |
| supply | HowToSupply | optional | Materials needed. |
| tool | HowToTool | optional | Tools required. |
JSON-LD Examples
DIY Project
How to change a flat tire with steps, tools, and supplies.
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Change a Flat Tire",
"description": "Learn to safely change a flat tire in 15 minutes.",
"totalTime": "PT15M",
"estimatedCost": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": "0"
},
"supply": [
{
"@type": "HowToSupply",
"name": "Spare tire"
}
],
"tool": [
{
"@type": "HowToTool",
"name": "Lug wrench"
},
{
"@type": "HowToTool",
"name": "Car jack"
}
],
"step": [
{
"@type": "HowToStep",
"name": "Pull over safely",
"text": "Pull over to a flat, stable surface away from traffic."
},
{
"@type": "HowToStep",
"name": "Loosen lug nuts",
"text": "Using the lug wrench, loosen each nut a quarter turn."
},
{
"@type": "HowToStep",
"name": "Jack up the car",
"text": "Place the jack under the frame and raise until the tire is off the ground."
}
]
} Common Mistakes
Using a Recipe type for non-food how-tos — HowTo is the correct type for general instructions.
Putting all the steps in one text block instead of one HowToStep object per step.
Complete Guide to HowTo Schema Markup
HowTo schema markup describes step-by-step instructions. Google used to show the steps of a how-to directly in search results, but it removed How-to rich results in 2023 on both desktop and mobile. The markup is still valid schema.org; it just no longer produces a rich result in Google Search.
If you use it, make each step a separate HowToStep object with at least a text property describing what to do, and add a name and image for each step where it helps.
Related Types
Ready to Create HowTo Markup?
Use our free generator to create valid HowTo JSON-LD markup with a visual form. No coding required.
Open Generator