Tool
What the HowTo Schema Generator does
HowTo Schema Generator: generates JSON-LD only from Task name, Steps, one per line and Total time (ISO 8601, e.g. PT20M). Example: task name How to change a bicycle tyre and total time (ISO 8601, e.g. PT20M) PT20M gives JSON-LD only { "@context": "https://schema.org", "@type": "HowTo", "name": "How to change a bicycle tyre", "totalTime"….
This generator reads Task name, Steps, one per line and Total time (ISO 8601, e.g. PT20M) and produces JSON-LD only. There is no submit step; the numbers move as you adjust them.
It is mostly used by anyone tuning a snippet. What Google displays is rarely exactly what you wrote, and the difference costs clicks.
Because it is all local, the tool is as fast as your device and as private as your own notes.
Each field is explained further down, along with the method and a worked example that uses the default values.
What do the HowTo Schema Generator fields mean?
The HowTo Schema Generator uses 3 inputs. The starting figures are ordinary, not edge cases, so they make a sensible baseline.
| Field | What to enter | Default |
|---|---|---|
| Task name | required | How to change a bicycle tyre |
| Steps, one per line | paste or type any amount of text | Release the brakes and remove the wheel. Lever the tyre off the rim. Remove the inner tube. Fit the new tube and reseat the tyre. |
| Total time (ISO 8601, e.g. PT20M) | optional | PT20M |
How does the HowTo Schema Generator work?
Each output is derived from the inputs above in a single pass; there is no hidden state carried between runs, so the same inputs always give the same generated output.
Validation runs before the calculation, which is why a mistyped value shows an error rather than a plausible-looking result.
Worked example
These are the values the HowTo Schema Generator loads by default, and the result it produces from them. The defaults produce the result shown here; change any of them and the answer moves.
| Task name | How to change a bicycle tyre |
|---|---|
| Steps, one per line | Release the brakes and remove the wheel. Lever the tyre o… |
| Total time (ISO 8601, e.g. PT20M) | PT20M |
| JSON-LD only | { "@context": "https://schema.org", "@type": "HowTo", "name": "How to change a bicycle tyre", "totalTime"… |
|---|
Narrower eligibility than it used to have
Google has scaled back where and how often HowTo rich results appear over the past several years. Check current Search Central documentation for eligibility before treating a visual rich result as guaranteed. The schema itself is still worth adding for machine-readable step content regardless.
Worth knowing
- name and at least one step are required. Each step benefits from its own image where a distinct visual exists for it, and totalTime helps set a searcher’s expectations before they commit to the task.
- A common mistake is providing all instructions as one long text block in a single step rather than as discrete, individually numbered HowToStep entries. The schema is built around discrete steps, and collapsing them loses the structure that made the markup worth adding.
- HowTo content that requires materials or tools worth calling out (the supply and tool properties) is more complete when those are listed explicitly rather than folded into the step text, even though neither is strictly required.
How to use it
- Set Task name.
- Paste your content into Steps, one per line.
- Key in Total time (ISO 8601, e.g. PT20M).
- Because there is no round trip to a server, updating on every keystroke costs nothing.
- Check JSON-LD only on the right.
- If you need a record, Copy Link saves the inputs and Print produces a clean page.
What this tool does not do
- This inspects the markup you supply; it cannot see server headers or your live rankings.
- Search engines weigh hundreds of signals. No single on-page check predicts position.
- Treat it as a fast first pass, not as the final word on a decision that matters.
Frequently asked questions
Task name, Steps, one per line and Total time (ISO 8601, e.g. PT20M). That is the whole form. A starting value is in place for each, so the quickest approach is to replace the one number you actually care about.
With the values loaded when the page opens, JSON-LD only comes out as { "@context": "https://schema.org", "@type": "HowTo", "name": "How to change a bicycle tyre", "totalTime"…. Edit any input and that figure moves with it.
No. Disconnect from the internet and it still works; that is the simplest proof there is no server call.
No cost and no account. Use it as often as you like.
It follows the standard definition for this operation, so the result matches what a reference implementation would give.