User Rating 0.0
Total Usage 0 times
Category SEO Tools
Is this tool helpful?

Your feedback helps us improve.

About

Google uses HowTo structured data to display step-by-step rich results directly in search. A missing or malformed HowToStep object causes silent validation failures. Google's Rich Results Test will pass a technically valid schema that still never triggers a rich snippet because the totalTime field uses the wrong ISO 8601 duration format, or the estimatedCost block omits the required @type: MonetaryAmount wrapper. Manual JSON-LD authoring invites bracket-matching errors. One unclosed brace invalidates the entire block and your page loses its rich result with no warning in Search Console.

This generator enforces the Schema.org HowTo specification. It produces @type: HowTo objects with properly nested HowToStep, HowToTool, and HowToSupply arrays. Time values convert to ISO 8601 durations (PT1H30M). Cost values wrap in MonetaryAmount with the correct currency code. Limitations: this tool generates client-side JSON-LD only. It cannot guarantee Google will display a rich result. Google's rendering decision depends on page authority, content quality, and internal ranking signals beyond schema correctness.

how-to schema json-ld generator structured data schema.org seo tool rich results howto markup google schema

Formulas

The HowTo schema follows a strict nested object structure:

HowTo HowToStep[1..n] HowToDirection

ISO 8601 duration conversion:

totalTime = PT + floor(minutes60) H + (minutes mod 60) M

Where minutes = total estimated time in minutes entered by the user. For example, 150 min PT2H30M.

Step position assignment: positioni = i + 1, where i [0, n 1] is the zero-based array index.

URL validation pattern: match(^https?:\/\/.+) TRUE | FALSE

Reference Data

PropertyTypeRequiredDescription
@typeTextYesMust be HowTo
nameTextYesTitle of the how-to guide
descriptionTextRecommendedSummary of what the how-to achieves
imageURLRecommendedImage representing the completed how-to
totalTimeDurationRecommendedISO 8601 format, e.g. PT2H30M
estimatedCostMonetaryAmountOptionalRequires currency (ISO 4217) and value
supplyHowToSupply[]OptionalMaterials consumed during the process
toolHowToTool[]OptionalInstruments used but not consumed
stepHowToStep[]YesOrdered array of steps, minimum 2
step.nameTextYesShort title for the step
step.textTextYesFull instruction for the step
step.imageURLRecommendedImage illustrating the step
step.urlURLOptionalAnchor link to the step on the page (e.g. #step1)
@contextURLYesMust be https://schema.org
currencyTextIf cost usedISO 4217 code: USD, EUR, GBP
valueNumberIf cost usedNumeric cost value, e.g. 25.00
positionIntegerAutoAuto-generated step index starting at 1
@type (step)TextYesMust be HowToStep for each step
@type (direction)TextYesHowToDirection wraps step text

Frequently Asked Questions

Google requires a minimum of 2 HowToStep objects. Pages with a single step are unlikely to trigger the rich result. There is no documented upper limit, but Google typically renders up to 8 steps in the SERP preview. Steps beyond 8 are collapsed behind a "Show more" link.
Google uses totalTime as a display signal, not a ranking factor. However, omitting it removes the time badge from the rich result card, which reduces click-through rate. The value must be in ISO 8601 duration format (e.g. PT1H30M). Using plain text like "90 minutes" causes a validation error.
An empty array (supply: []) passes JSON syntax validation but triggers a warning in Google's Rich Results Test. Either populate these fields with at least one item or omit the property entirely. The generator handles this by excluding empty arrays from the output.
Google strongly recommends absolute URLs (https://example.com/image.jpg) for all image properties. Relative URLs may resolve incorrectly when Google crawls the page, especially if your canonical URL differs from the page URL. This generator validates that image URLs begin with http:// or https://.
The estimatedCost must be wrapped in a MonetaryAmount type with both currency (ISO 4217 code like USD, EUR) and value (numeric string). Writing estimatedCost: "$25" instead of the full object structure fails schema validation. The generator automatically constructs the correct nested object.
Yes. Google's documentation specifies that step URLs should be fragment identifiers pointing to the corresponding section on the page (e.g. https://example.com/guide#step3). This enables Google to deep-link users directly to a specific step. Using external URLs or omitting the page base URL causes the link to break in search results.