◀ All articles

Schema

HowTo schema: when step markup is worth the effort

September 9, 2026 · 4 min read

HowTo JSON-LD earns its keep on true procedural pages. Here is the field list, a working example, and when to skip it.


HowTo schema looks tempting: numbered steps, tools, time required — the kind of structure answer engines already like in plain HTML. The mistake is wrapping every blog post in HowTo JSON-LD because a plugin offered a checkbox.

HowTo markup earns its keep on true procedural pages: install guides, configuration walkthroughs, "replace the filter" instructions. It is a poor fit for opinion essays, product pitches, and anything without a real sequence of actions.

What HowTo schema is for

HowTo describes a process with ordered steps. Parsers can extract step names and text more reliably when you mark them up — but only if the page is genuinely a how-to.

If your "steps" are sales stages ("Book a demo", "Watch us dazzle you"), use ordinary content. Do not launder marketing into HowTo.

When it is worth the effort

Page typeWorth HowTo schema?Why
Install / setup docsYesClear steps, tools, outcomes
Troubleshooting runbookOftenOrdered actions; keep symptoms in HTML too
Recipe-style ops guideYesNatural fit for steps + tools
Thought-leadership blogNoNot a procedure
Pricing explainerNoUse Product/Offer clarity instead
"How we think about X"NoEssay, not HowTo

Similarweb Gen AI Landscape 2025 (US desktop, Sep 2025) noted AI referral sessions that were longer and deeper than typical Google sessions on average (about 15 minutes and ~12 pages for ChatGPT referrals versus about 8 minutes and ~9 pages for Google). Procedural docs are the kind of pages people — and agents fetching for them — actually traverse. Schema is optional polish on top of solid steps.

Fields that matter

Focus on a small set. You do not need every schema.org property.

FieldUse whenNotes
nameAlwaysTitle of the procedure
descriptionAlwaysOne-paragraph outcome
stepAlwaysList of HowToStep (or HowToSection for grouped steps)
HowToStep.nameAlwaysShort step label
HowToStep.textAlwaysInstruction matching visible copy
totalTimeIf honestISO 8601 duration (PT20M)
tool / supplyIf realSoftware, accounts, hardware
imageOptionalOnly if the image teaches the step

Working example

Northstar Analytics publishes "Connect Snowflake to Northstar":

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "Connect Snowflake to Northstar Analytics",
  "description": "Create a read-only Snowflake role and add connection details in Northstar.",
  "totalTime": "PT15M",
  "tool": [
    {"@type": "HowToTool", "name": "Snowflake account with ACCOUNTADMIN access"},
    {"@type": "HowToTool", "name": "Northstar Analytics workspace admin"}
  ],
  "step": [
    {
      "@type": "HowToStep",
      "name": "Create a read-only role",
      "text": "In Snowflake, create a role that can read the schemas you want to analyze. Do not grant write privileges."
    },
    {
      "@type": "HowToStep",
      "name": "Generate a key pair",
      "text": "Create a key-pair for the service user and store the private key in your secret manager."
    },
    {
      "@type": "HowToStep",
      "name": "Add the connection in Northstar",
      "text": "Open Settings → Sources → Snowflake, paste account details, and test the connection."
    }
  ]
}

Mirror those steps in visible HTML with the same names and instructions.

How to implement (step by step)

  1. Confirm the page is a procedure with at least three real actions.
  2. Rewrite the HTML so steps are obvious (ol/h2 per step beats a wall of text).
  3. Add JSON-LD HowTo with name, description, and step.
  4. Keep text faithful to the page — no "bonus" claims only in schema.
  5. Validate JSON; fix trailing commas and bad types.
  6. Test a no-JS fetch to ensure the script is in the initial response if your stack SSR/prerenders.
  7. Skip aggregateRating cosplay on HowTo. Fake ratings help nobody.

When to skip HowTo schema

  • The article is explanatory ("how CDPs differ from warehouses") without a user procedure
  • Steps vary wildly by plan/region and you cannot state one honest path
  • The content is gated behind login for the actual instructions
  • You are only chasing rich results that may not show for your site type anyway

In those cases, invest in clearer headings and a table. Answer engines can use well-structured HTML without HowTo JSON-LD. Pair procedural clarity with entity clarity via Organization schema on the site overall.

Mistakes that waste the work

  • Marking a whole category hub as one HowTo
  • Steps that say "click here" without naming the control
  • totalTime: PT5M on a three-hour migration guide
  • Duplicating HowTo on twenty near-identical affiliate pages
  • Expecting HowTo to compensate for blocked AI crawlers

How to verify

  1. Validator clean for HowTo / HowToStep.
  2. Side-by-side: step 2 in HTML equals step 2 in JSON-LD.
  3. Raw fetch includes the markup (not only after client render).
  4. Re-scan after deploy if you track schema findings in an AEO audit (how to run an AEO audit).

Honest ceiling

HowTo schema will not put you in every assistant answer about your category. It can make a genuine guide easier to extract. If the guide is weak, schema just labels the weakness efficiently.

Ship the HTML steps first. Add JSON-LD second. Leave the checkbox plugins alone unless they output markup you would be willing to defend in a review.

See how your own site scores

One scan checks your homepage, robots.txt, llms.txt, About page and JSON-LD, then hands you the copy-paste fixes. Free, no account needed for the first run.

Keep reading