Schema Markup for AI Search: JSON-LD Checklist

By gptmelo · Published · 4 min read · technical

Editorial cover for schema markup for AI search — JSON-LD checklist

Key takeaways

  • Schema must mirror visible content—no invisible FAQ spam.
  • Validate JSON-LD after template changes.
  • FAQ schema helps when answers are concise on-page.

Schema markup without matching HTML is noise. JSON-LD that repeats the FAQ or HowTo already on the page helps search engines and AI systems understand intent; schema that invents answers you never published does not earn citations—and can look like spam.

Schema (usually JSON-LD in a <script type="application/ld+json"> block) tells machines the type of content and key fields: questions, steps, author, product offers. Google documents supported types in Search Central; AI systems that crawl HTML often use the same structured hints when they align with visible text.

Schema does not:

It does reduce ambiguity when FAQ answers, HowTo steps, or Article metadata match what the reader sees. The fuller framework sits on the llms.txt structured data resource; this guide is the checklist and how to validate markup.

Types that matter most for guides

TypeUse whenSkip when
FAQPageVisible Q&A on the pageFAQ exists only in schema
HowToNumbered steps the reader can followMarketing fluff with no real steps
Article / BlogPostingAuthored guides with headline, date, authorThin category hubs
ProductTrue product/SKU pageComparison essays stuffed with Product markup
OrganizationSitewide identity (often in the layout)Per-article Organization that contradicts About

Pick formats that match AI-friendly content types—lists, steps, and FAQs—before you encode them as JSON-LD.

Rule one: markup must match the page

Every Question / acceptedAnswer string should appear (or paraphrase tightly) in the HTML. Same for HowTo steps and Product prices.

Bad patterns:

  • FAQ schema with six invented Q&As while the page shows two
  • HowTo schema for a narrative essay with no steps
  • Offer prices in JSON-LD that differ from the pricing table

If marketing edits FAQ copy in the CMS, schema must update in the same release—or you ship a mismatch every deploy.

Step 1: Inventory what you already emit

View source (or DevTools) on a priority URL. Find application/ld+json blocks. Note @type values and whether fields mirror the visible page.

Common CMS issues:

  • Theme injects Article + BreadcrumbList; plugins add a second Article
  • Stale FAQ JSON left after the accordion was removed
  • Product markup on blog posts from a shared footer component

Write down one fix list per template, not one ticket per URL.

Step 2: Add or fix the type that matches the page

FAQPage example:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Does schema help AI citations?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "It clarifies intent when on-page content already matches."
    }
  }]
}

Use your real questions and answers—copy from the rendered FAQ, not from a wish list.

HowTo: only if the page has ordered steps a human can execute. Article: include headline, datePublished, author that match the byline. Pair author fields with real bios (EEAT checker) so trust and markup stay aligned.

Step 3: Validate with a structured-data checker

Paste the live URL into gptmelo’s Structured Data Checker. Fix:

gptmelo Site Audit Schema & Metadata card with pass, fail, and warn rows
Schema & Metadata — pass/fail/warn rows for JSON-LD, title, and page-type schema
  • Parse errors (trailing commas, unescaped quotes)
  • Missing required fields for the type you chose
  • Content that does not match visible HTML

Re-check after CMS or theme deploys. Schema regressions are quiet—pages still look fine in the browser.

Google’s Rich Results Test is useful for Google-specific eligibility; use it as a second check, not a substitute for matching your own HTML.

Step 4: Keep schema in the same release as content

Assign an owner:

  • Marketing changes FAQ copy → engineering or CMS auto-updates JSON-LD in the same PR
  • Template redesign → validate three sample URLs before full rollout
  • Pricing changes → Product/Offer fields update with the table

When leadership wants a crawl and structure review, pair schema health with the GEO site audit workflow.

Schema vs llms.txt vs robots.txt

LayerJob
JSON-LDTyped facts about this page
llms.txtCurated site index for AI crawlers (llms.txt guide)
robots.txtAllow or block crawler paths

Schema on a Disallowed URL helps no one. Fix crawl access first, then markup, then optional llms.txt entries.

From draft to publish

  1. Choose the content format — FAQ, steps, or article body that models can quote.
  2. Write visible HTML first — answers and steps on the page.
  3. Add matching JSON-LD — same strings, same prices, same dates.
  4. Validate on the Structured Data Checker from Step 3 (and optionally Google’s test).
  5. Set the CMS so content edits refresh schema.
  6. Spot-check two more URLs from the same template after deploy.

Skipping step 2 is how teams ship beautiful schema over empty sections.

Common mistakes

  • Invisible FAQ spam (schema-only Q&A).
  • Product markup on every blog post “for rich results.”
  • Duplicate Article blocks from theme + plugin.
  • Prices or dates in JSON-LD that disagree with the hero.
  • Validating once at launch and never after template changes.
  • Expecting schema to fix weak intros or missing sources.

Open gptmelo’s Structured Data Checker. Paste a live article or FAQ URL — a page you want typed for AI search, not a homepage dump. No account required.

1. Fill the form. Paste that live URL (production, not staging).

Structured Data Checker with a URL field
Structured Data Checker — paste a URL for JSON-LD, title, and FAQ schema

2. Check. Click Check schema for free.

3. Read the result. You get title/meta checks plus JSON-LD types and pass/warn/fail rows. The screenshot is a sample — yours follows the URL you pasted. Glance at Article/FAQ types. Markup that does not match visible copy still fails the job.

Structured Data Checker result with schema pass/warn rows
Structured Data Checker — JSON-LD types and pass/warn/fail rows

4. Fix the live HTML, then check again. Edit JSON-LD and on-page copy together. Do not treat this window as the page.

FAQ

Does schema help AI citations?

It clarifies page intent when the on-page content already matches—schema alone does not fix weak copy.

Which schema types matter most?

FAQ, HowTo, and Article for guides; Product only when the page is truly about a product.

How do I test schema?

Paste the live URL into a structured-data checker, fix errors and mismatches, then re-check after CMS deploys.