All posts

TechnicalAugust 18, 2026 · 9 min read

Schema markup that actually helps AI answer engines

Schema.org markup doesn't persuade a model of anything - it just says something once, unambiguously, in a shape built to be parsed rather than read. A paragraph of prose has to be interpreted; a well-formed Offer with a price and a currency doesn't. For a system that's synthesizing an answer from many pages under time pressure, that difference is exactly what makes markup worth the hour it takes to add.

Start with the types that answer real questions

TypeAnswersPriority
Organization"Who makes this?"Add first - every page benefits
Product / Offer"How much does it cost?"High - price questions are constant
FAQPageDirect buyer questionsHigh - matches how assistants query
BreadcrumbList"Where does this page sit?"Low - cheap, mechanical, do it once
Dataset"What did you measure?"Medium - only if you publish data

Organization and Product/Offer cover the two questions buyers ask an assistant most - who are you, and what does it cost - so they're worth adding even if you do nothing else. A minimal Offer block looks like this:

Offer JSON-LD
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Team plan",
  "offers": {
    "@type": "Offer",
    "price": "29",
    "priceCurrency": "USD",
    "priceSpecification": {
      "@type": "UnitPriceSpecification",
      "billingDuration": "P1M"
    }
  }
}

FAQPage is the underrated one

Most teams reach for it last, if at all, but it's arguably the best fit for this specific channel: it forces you to write in question-and-answer form, which is exactly the shape a synthesizing model is trying to fill. A well-written FAQPage entry is close to a pre-written answer with your name already in it.

Where teams overreach

Review and AggregateRating schema exist for genuine customer reviews, not for badging your own product with stars it didn't earn from a third party. Google's guidelines are explicit about this, and misuse risks a manual action - a bad trade for a few gold stars in a search snippet. If you don't have real, collected customer reviews, leave that schema out entirely rather than approximate one.

Dataset schema for anything you publish as data

If you publish benchmark results, a pricing comparison, or market data, Dataset schema with a variableMeasured list turns your numbers into machine-readable claims instead of prose a model has to parse and hope it read correctly:

Dataset JSON-LD
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Q3 2026 support response time benchmark",
  "description": "Median first-response time across 12 helpdesk tools, sampled weekly.",
  "variableMeasured": [
    { "@type": "PropertyValue", "name": "Median response time", "value": "4.2 hours" }
  ]
}

It's a small, specific addition, and it's exactly the kind of structured fact an assistant can quote with confidence - a number with a named variable and a source, instead of a claim buried in a paragraph.

Validate before you ship it

Markup with a typo doesn't degrade gracefully - it just fails silently, and you won't notice unless you check. Run new schema through Google's Rich Results Test or the schema.org validator before it goes live, and again whenever the page it's on changes. This is mechanical, low-risk work; the only way to lose is to skip the validation step.

See where you stand in AI answers

Run a free audit and get a provider-labelled report on whether ChatGPT-style answers recommend your brand.

Start free audit