Technical

HowTo Schema for AI Citation: The Complete 2026 Implementation Guide

HowTo schema encodes step-by-step procedures in machine-readable format - and AI engines prefer it over unstructured prose for procedural queries. Here is the correct JSON-LD, with implementation examples for Next.js, WordPress, and plain HTML.

Neil Walsh·June 2026·6 min read

HowTo schema is the Schema.org type that encodes a step-by-step procedure in machine-readable format. When a user asks an AI engine "how do I do X", the retrieval system looks for pages that have explicitly structured their answer as an ordered sequence of steps - and HowTo schema is the direct signal that a page has done exactly that. Pages with valid HowTo schema are cited in procedural AI answers at a significantly higher rate than pages that describe the same steps in unstructured prose.

Alongside FAQPage schema, HowTo is one of the two highest-impact structured data types for AI citation. Where FAQPage tells an AI engine "this page authoritatively answers these questions", HowTo tells it "this page explains exactly how to complete this task, step by step". The two types are complementary and can coexist on the same page.

How AI engines process HowTo schema

When a retrieval-augmented generation (RAG) system processes a procedural query, it prioritises content that maps directly to an ordered sequence. Unstructured prose describing a process is harder to extract reliably than explicit step objects. HowTo schema removes that ambiguity: the retrieval system can parse step names, descriptions, and ordering directly from the JSON-LD without text processing heuristics.

  • ChatGPT Search: uses HowTo step names as the basis for bulleted steps in "how to" responses - matching your step names to query phrasing improves citation rate
  • Perplexity: renders numbered steps directly from structured data when it detects HowTo schema on a retrieved page, reducing hallucination risk for procedural content
  • Google AI Overviews: HowTo schema is a primary signal for step-by-step AI Overview panels - the same markup that earns rich results in organic search also drives AI Overview citations
  • Claude: retrieves the full step text as passage-level content - longer, self-contained step descriptions perform better than terse labels

The basic HowTo JSON-LD structure

The minimum viable HowTo schema requires a name (the procedure title), a description (what the procedure accomplishes), and an array of HowToStep objects. Each step needs at least a name and a text property. The totalTime property is optional but recommended - it appears in rich result previews and signals procedural scope to AI engines.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to add llms.txt to a Next.js site",
  "description": "Create and deploy an llms.txt file on a Next.js App Router project to improve AI crawler access.",
  "totalTime": "PT15M",
  "step": [
    {
      "@type": "HowToStep",
      "position": 1,
      "name": "Create the route file",
      "text": "In your app directory, create app/llms.txt/route.ts. This file exports a GET handler that returns your llms.txt content as plain text with content-type text/plain."
    },
    {
      "@type": "HowToStep",
      "position": 2,
      "name": "Write the llms.txt content",
      "text": "Open with a # heading containing your site name, a > blockquote describing what your site does, then sections with markdown-format links to your key pages and blog posts."
    },
    {
      "@type": "HowToStep",
      "position": 3,
      "name": "Validate with Rich Results Test",
      "text": "Paste your deployed URL into the Google Rich Results Test and confirm the HowTo type is detected with all steps and their text parsed correctly."
    }
  ]
}
</script>

Implementation in Next.js (App Router)

In Next.js App Router, inject HowTo schema as a JSON-LD script tag directly in your page or layout component. Derive the step data from your content model rather than hardcoding it separately - if your visible steps and your schema steps are defined in two places, they will eventually drift apart, which is a quality signal violation.

tsx
interface HowToStep {
  position: number;
  name: string;
  text: string;
}

function HowToSchema({
  title,
  description,
  steps,
}: {
  title: string;
  description: string;
  steps: HowToStep[];
}) {
  const schema = {
    '@context': 'https://schema.org',
    '@type': 'HowTo',
    name: title,
    description,
    step: steps.map((s) => ({
      '@type': 'HowToStep',
      position: s.position,
      name: s.name,
      text: s.text,
    })),
  };
  return (
    <script
      type="application/ld+json"
      dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
    />
  );
}

Implementation in WordPress and plain HTML

For non-Next.js stacks, the implementation path depends on your CMS. WordPress has plugin support that makes HowTo schema straightforward to add without writing JSON manually. For plain HTML sites, the JSON-LD block can be pasted directly into the page head with no framework required.

  • Yoast SEO: use the Gutenberg HowTo block in the post editor - Yoast generates and injects the JSON-LD schema automatically from the block content
  • Rank Math: open the Schema tab in any post, select HowTo, and fill in the step fields directly in the UI with no manual JSON required
  • Plain HTML: copy the JSON-LD structure above and paste it into a script tag in your page head; update the step content to match your visible steps
  • Custom CMS: store step data in structured fields (step name, step text, position) and template the JSON-LD at render time to keep schema and visible content in sync

Writing HowTo steps that AI engines prefer

The content of each step matters as much as the markup. AI retrieval systems evaluate step quality, not just step presence. Weak step descriptions reduce citation confidence even when the schema is technically valid and all required fields are present.

  • Start each step name with an imperative verb: "Create the file", "Add the script tag" - not "Step 1" or "The file creation stage"
  • Write step text as a self-contained instruction: a reader should be able to act on the step without reading the surrounding context
  • Include the outcome in the step text: "This creates a public-facing route that AI crawlers fetch at your root domain" tells the engine what completing the step achieves
  • Keep step text between 40-120 words - enough to be useful as a cited passage, short enough to fit within an AI citation window
  • Use consistent terminology across step names and step text: if you call something a "route file" in step 1, do not rename it a "handler" in step 3
  • Avoid parenthetical asides and inline caveats inside step text - move these to a separate callout or FAQ item so steps stay scannable

Combining HowTo and FAQPage schema on one page

For pages that explain both a procedure and answer common questions about it - a tutorial post, a how-to guide with a Q and A section - adding both HowTo and FAQPage schema in a single JSON-LD block is valid and recommended. The two types address different query surfaces: HowTo captures "how do I" queries, FAQPage captures "what is" and "why" queries. A tutorial page with both types effectively doubles its citation surface area compared with a page that uses only one schema type.

Do not add HowTo schema to pages where steps are not actually shown to users. If your JSON-LD describes a 5-step process but your page only discusses 2 of those steps in prose, the mismatch is a quality signal violation. Schema must accurately reflect visible page content - AI engines that retrieve the page and find steps missing from the body will reduce citation confidence for your domain.

Validating your HowTo schema before publishing

Always validate before deploying. Invalid schema is worse than no schema - malformed JSON-LD can confuse crawlers and reduce overall structured data trust for your entire domain, affecting pages beyond the one with the error.

  • Google Rich Results Test (search.google.com/test/rich-results): paste your URL or code snippet to check HowTo eligibility and preview how steps render in search results
  • Schema.org validator (validator.schema.org): checks for specification compliance beyond Google-specific requirements and flags deprecated or missing properties
  • CiteRank audit: checks for HowTo schema presence and basic validity alongside all other AEO signals in a single pass

The Google Rich Results Test shows a live preview of how your HowTo markup will appear in search results. If the step count matches what you expect and each step name renders correctly, your AI citation markup is almost certainly valid. Run this test after any schema change before pushing to production.

Frequently asked questions

Does HowTo schema require visible steps on the page?

Yes - for both Google rich results and AI citation. HowTo schema should describe content that is actually present and visible on the page. The steps do not need to be in a numbered list format, but the substance of each step should appear somewhere in the page body. Schema that describes content not present on the page is a quality signal violation and will reduce citation confidence.

How many steps should a HowTo schema have?

Between 3 and 10 steps is the practical range for AI citation. Fewer than 3 steps suggests the procedure is too simple to warrant structured data. More than 10 typically means the procedure should be split into multiple pages, or some steps should be combined. AI engines allocate a fixed passage window per source - very long step lists reduce the citation contribution of any individual step.

Can HowTo and Article schema coexist on the same page?

Yes. Multiple schema types on a single page are additive, not exclusive. A tutorial post with Article + HowTo + FAQPage + BreadcrumbList schema covers the maximum number of citation surfaces simultaneously. There is no conflict between types, and AI engines will use each type for its relevant query category.

Does HowTo schema improve Google rich results as well as AI citation?

Yes. HowTo is one of Google's supported rich result types, and valid HowTo schema can produce step-by-step rich results in standard organic search as well as in AI Overviews. The optimisation for one directly benefits the other, making HowTo schema one of the highest return-on-effort structured data investments you can make.

What is the totalTime property and should I include it?

The totalTime property uses ISO 8601 duration format - PT30M for 30 minutes, PT1H30M for 90 minutes - and tells the engine how long the procedure takes. It is optional but recommended: it appears in rich result previews and gives AI engines a useful piece of metadata when answering queries like "quick guide to X". If your procedure time varies significantly, omit it rather than estimating.

Should I use HowTo or FAQPage schema for a tutorial post?

Use both. They serve different query surfaces and are not mutually exclusive. HowTo captures procedural queries ("how to implement schema markup"), FAQPage captures conceptual queries ("what is HowTo schema" or "why use structured data"). A tutorial post typically warrants both - encode the procedure as HowTo and the conceptual questions as FAQPage in the same JSON-LD script block.

Can I test HowTo schema in development before deploying?

Yes. Paste the raw JSON-LD into the Google Rich Results Test "Code" tab rather than the URL tab - it validates the schema without requiring a live URL. You can also run a JSON.parse check in your browser console to confirm the schema parses without errors before adding the script tag. Fix parse errors first, then validate against the rich results specification.

Free tool

See your AEO score in seconds

Paste your URL and get a full audit across all 9 AEO signals - schema, crawlers, E-E-A-T, and more.

Audit my site - it's free

Related reading

Technical

Why Schema.org markup is the single biggest lever for AI citation

May 2026
Technical

Is your robots.txt accidentally blocking ChatGPT and Claude?

May 2026