Home › Developer Tools › HowTo Schema Generator

HowTo Schema Generator

Describe your guide, list the tools and supplies, and add the steps in order to get ready-to-paste HowTo JSON-LD. Total time is converted to ISO 8601 for you, each step can link to its own anchor, and live checks flag missing or invalid properties.

Last updated:

Guide

Time, cost & result

Total time
hmin

Supplies & tools

Things used up, e.g. glue or paint.

Things you keep, e.g. a wrench.

Steps

Steps in order

Give the matching step headings on your page id="step-1", id="step-2" and so on.

HowTo JSON-LD

      
Advertisement
Advertisement

How to use the HowTo Schema Generator

  1. Enter the title of your guide exactly as it appears on the page, plus a short description and the main image.
  2. Add the total time, cost and result if they apply, for example 30 minutes and $8.
  3. List the supplies and tools, one per line. Supplies are used up; tools are kept.
  4. Add each step with clear instructions, and reorder steps with the arrow buttons.
  5. Copy the JSON-LD and paste it into the HTML of the guide page, then validate it.

What the generated HowTo markup contains

The tool writes one schema.org HowTo object. Empty fields are left out, so the code only contains what you fill in.

PropertyTypeWhat it holds
nameTextThe title of the guide, the same as the visible heading.
stepHowToStep listEach step with position, optional name, text, url and image.
totalTimeDurationISO 8601 duration such as PT45M.
estimatedCostMonetaryAmountcurrency (ISO 4217 code) and numeric value.
supplyHowToSupply listMaterials that are used up.
toolHowToTool listEquipment you keep after the task.
yieldTextWhat you end up with, e.g. "1 birdhouse".
image, descriptionURL, TextA photo of the finished result and a one-line summary.

ISO 8601 durations at a glance

TimeWritten as
10 minutesPT10M
45 minutesPT45M
1 hourPT1H
1 hour 30 minutesPT1H30M
3 hours 5 minutesPT3H5M
26 hours (overnight project)PT26H

Tips for writing steps

  • One action per step. "Sand the edges" and "apply primer" are two steps, not one.
  • Start with a verb. Instructions such as "Remove the wheel" are easier to follow and read naturally when spoken by an assistant.
  • Keep the markup and page in sync. Every step in the JSON-LD should be visible on the page in the same order.
  • Use anchors. Give each step heading an id (step-1, step-2…) so step URLs jump straight to the right place.
  • Pick the right type. Food belongs in Recipe markup; HowTo is for repairs, crafts, gardening, software and other tasks.

Frequently asked questions

What is HowTo schema?

HowTo is a schema.org type for instructions that walk someone through a task in a series of steps. As JSON-LD it describes the title, total time, estimated cost, the supplies and tools needed, and each step (HowToStep) in order, so machines can read the guide as structured data.

Does Google still show how-to rich results?

No. Google reduced how-to rich results in 2023 and then stopped showing them in search. The markup is still valid schema.org vocabulary and causes no problems, and other search engines, apps and AI systems can still read it, but it will not produce a special how-to result in Google.

What is the difference between a supply and a tool?

A HowToSupply is something used up or consumed while following the steps, such as glue, paint or sandpaper. A HowToTool is something you use but keep afterwards, such as a screwdriver, a pump or a mixing bowl.

How is total time written in HowTo markup?

totalTime uses the ISO 8601 duration format. PT30M means 30 minutes, PT1H means one hour and PT2H15M means two hours and 15 minutes. Enter hours and minutes in the form and the tool writes the correct code.

Should I use HowTo or Recipe schema for cooking instructions?

Use Recipe for cooking and baking. Recipe has its own properties for ingredients, prep and cook times, yield and nutrition, and recipes are still eligible for Google recipe rich results. HowTo is for non-food tasks such as repairs, crafts or software tutorials.

What are the step anchor URLs for?

Each HowToStep can have a url pointing to that step on your page, for example https://example.com/guide#step-2. Add matching id attributes (id="step-2") to the step headings on the page so the links land on the right spot.

Where do I paste the generated code?

Paste the script tag into the HTML of the page that contains the guide, in the head or the body. The markup should describe instructions that visitors can actually read on that page.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

Schema Markup Generator (JSON-LD)Create JSON-LD structured data for FAQ, Product, Article and more.FAQ Schema GeneratorTurn questions and answers into FAQPage JSON-LD markup with validation and a preview.Recipe Schema GeneratorCreate Recipe JSON-LD with ingredients, steps, prep and cook times, nutrition and ratings.Structured Data ValidatorCheck JSON-LD, microdata and RDFa against schema.org and Google rich result requirements.QR Code GeneratorMake QR codes for links, Wi-Fi, email and more.Barcode GeneratorCreate Code 128, EAN-13, UPC-A, EAN-8, Code 39 and ITF-14 barcodes as PNG or SVG.UUID GeneratorGenerate UUID v4 and v7 / GUIDs in bulk and copy or download them.Htaccess & Nginx Redirect GeneratorBuild 301 redirects for .htaccess, Nginx and Netlify or Cloudflare _redirects.Fake Data GeneratorGenerate mock data as JSON, CSV or SQL.Random String GeneratorGenerate secure random strings and tokens in bulk with any length and character set.API Key GeneratorCreate secure API keys and secrets with prefixes, checksums and SHA-256 hashes for storage.MIME Type LookupFind the MIME type for any file extension, or the extensions for a MIME type, in 400+ entries.Cron Expression GeneratorBuild crontab schedules visually, read them in plain English and see the next run times.URL Slug GeneratorTurn titles into clean, SEO-friendly URL slugs: accents, stop words, separators and bulk lines.JSON Schema GeneratorTurn sample JSON into a draft 2020-12 JSON Schema with types, required fields and formats.Gitignore GeneratorBuild a .gitignore from 50+ templates for languages, frameworks, IDEs and OS, merged and deduped.License GeneratorCreate a LICENSE file for MIT, Apache, GPL, BSD, ISC, MPL or Unlicense with your name and year.ULID GeneratorGenerate sortable ULIDs and UUID v7 in bulk, monotonic option, and decode their timestamps.Htpasswd GeneratorCreate .htpasswd entries with bcrypt, APR1-MD5 or SHA-1 for Apache and Nginx basic auth.Placeholder Image GeneratorCreate placeholder images in any size, color and text as PNG, JPG, WebP, SVG or data URI.Ads.txt GeneratorCreate or validate ads.txt and app-ads.txt files: seller lines, cert IDs and variables.Docker Run to Compose ConverterConvert docker run commands to docker-compose.yml, or a compose file back to docker run.Dockerfile GeneratorGenerate a production Dockerfile and .dockerignore for Node, Python, Go or a static nginx site.HTML Boilerplate GeneratorTick the options you need and get a clean HTML5 starter template with meta, OG tags and CSS reset.JSON to Zod SchemaInfer a Zod (or Yup) schema from sample JSON with optional, nullable and z.infer types.Linux Commands Cheat SheetSearchable Linux and bash command reference with flags explained, examples and copy buttons.LLMs.txt GeneratorBuild an llms.txt file for AI crawlers: summary and link sections, import from your sitemap.Nano ID GeneratorGenerate secure Nano IDs with custom alphabet, length and count, plus a collision calculator.Nginx Config GeneratorBuild an nginx server block: static site, SPA, reverse proxy or PHP, with SSL, gzip and redirects.OpenAPI / Swagger ViewerView OpenAPI 2/3 JSON or YAML as interactive API docs with validation and an endpoint list.package.json GeneratorFill a form and get a valid, npm-ready package.json with scripts, dependencies and checks.PKCE Code Challenge GeneratorGenerate an OAuth 2.0 PKCE code_verifier and S256 code_challenge, build auth URLs, verify pairs.README GeneratorFill in a form and get a polished README.md with badges, install, usage and license, live preview.Regex GeneratorBuild regular expressions visually from blocks or presets (email, date, phone) and test them live.Commit Message GeneratorBuild Conventional Commit messages with type, scope, body, breaking change and issue refs.Database Schema DesignerDesign tables and relationships visually, then export SQL for MySQL, PostgreSQL or SQLite.Docker Compose GeneratorBuild a docker-compose.yml with a form: services, ports, volumes, env, healthchecks and presets.Dummy File GeneratorCreate test files of an exact size in KB, MB or GB with zeros, random bytes or text.Product Schema GeneratorBuild Product JSON-LD with price, availability, brand, GTIN, ratings and reviews.Question Keyword GeneratorFind the questions people ask about a topic, grouped by who, what, why, how, can and more.Security Headers GeneratorPick HSTS, CSP, frame, referrer and permissions options and get Apache, Nginx, Netlify or Cloudflare config.SKU GeneratorBuild consistent SKUs from brand, category, size and color, then export every variant as CSV.Typography Scale GeneratorBuild a modular type scale from a base size and ratio, then copy CSS variables or a Tailwind config.WordPress Salt GeneratorGenerate fresh WordPress security keys and salts for wp-config.php, .env or Docker in one click.ANSI Color Code GeneratorStyle terminal text with 16, 256 or RGB colors and get escape codes for bash, Python, JS and C.Apache Virtual Host GeneratorCreate an Apache VirtualHost config with SSL, redirects, reverse proxy or PHP-FPM in seconds.Bash Prompt GeneratorDrag and drop a custom PS1 prompt for bash or zsh with colors, git branch and a live preview.Changelog GeneratorTurn Conventional Commit messages into a grouped Keep a Changelog Markdown file per version.cURL Command BuilderBuild curl commands from a form: method, headers, query, JSON or form body, auth and flags.Docker Compose to KubernetesConvert docker-compose.yml into Kubernetes Deployment, Service, ConfigMap and PVC manifests.Docker Compose ValidatorCheck a docker-compose.yml for YAML errors, schema mistakes, broken references and deprecated keys.Dockerfile LinterLint a Dockerfile for best practices: pinned tags, apt cleanup, non-root USER and layer count.Dockerignore GeneratorBuild a .dockerignore from Node, Python, Go and Java templates, plus your own entries.ESLint Config GeneratorGenerate a flat eslint.config.js for JavaScript, TypeScript, React or Node with rule presets.Git Branch Name GeneratorTurn a ticket ID and title into a clean, valid git branch name like feature/PROJ-12-add-login.GitLab CI Config GeneratorGenerate a .gitlab-ci.yml with stages, jobs, images, cache, artifacts and rules from templates.Jinja2 Template TesterRender Jinja2 templates with YAML or JSON variables using real Jinja2, with clear error lines.JSON Schema Mock Data GeneratorGenerate realistic sample JSON from a JSON Schema: formats, patterns, $ref, seeds and counts.Kubernetes Secret GeneratorCreate Kubernetes Secret YAML from key/value pairs or .env with auto base64, or decode one.Kubernetes YAML ValidatorValidate Kubernetes manifests against the API schema of a chosen version, with error paths.Prettier Config GeneratorToggle Prettier options, preview formatted code live and copy your .prettierrc file.Quartz Cron GeneratorBuild and explain Quartz and Spring cron expressions with seconds, ?, L, W and #, plus next fire times.README Badge GeneratorCreate Shields.io-style README badges for license, version, build and custom labels.Systemd Service File GeneratorCreate a systemd .service unit with ExecStart, user, restart policy, environment and hardening.tsconfig.json GeneratorBuild a tsconfig.json with target, module, strict checks and path aliases, each option explained.Access Log AnalyzerAnalyze Apache and Nginx access logs: top URLs, IPs, status codes, bots and traffic charts.Regex String GeneratorGenerate random test strings that match any regular expression, checked against the real regex.ASCII Table GeneratorTurn CSV or pasted cells into plain-text tables: MySQL, Markdown, Unicode box and reST styles.
See all 85 Code Generators & Builders →