Schema markup for AEO: the types AI actually reads
Schema markup is structured data: a block of facts about your business, written in schema.org's JSON-LD format, that an AI can read straight from your page without having to interpret your prose. It sits in the page's `<head>` as a script, invisible to visitors, and it tells an answer engine plainly what you are, what you sell, and what you've answered. It's the #2 lever in AEO, behind the content itself.
What schema markup actually is
Your page already states the facts a buyer needs, what your product is, who it's for, what it costs. The trouble is they're buried in sentences, layout and images that a model has to parse and guess at. Schema markup restates those same facts as a small, structured block of JSON-LD (JavaScript Object Notation for Linked Data) so the machine doesn't have to guess.
In practice it's one or more `<script type="application/ld+json">` blocks in the page's head. You don't need to be technical to add it, it's a paste-in job, not a rebuild. The rule that matters more than the syntax: only ever state facts that are true and already shown on the page. Schema is not a place to claim things your page doesn't.
The types that matter for AEO
Schema.org has hundreds of types. For getting recommended by AI, five do almost all the work. You don't need all five on every page, match the type to what the page is.
If you do only one thing, do the Organization block with accurate `sameAs` links. It's the anchor that ties your name to the profiles you control, and it helps a model trust that the entity it's reading about is really you.
FAQPage is for the model, not for Google
This is the most misread type. FAQPage schema used to win those expandable FAQ rich snippets in Google search results, Google has long since pulled most of that back. So if you're adding FAQPage hoping for a fancier Google listing, stop: that's not why it's here.
Add FAQPage so an AI can extract a clean answer to a real buyer question, not for a Google rich snippet. The snippet era is over; the extraction use case is the one that matters now.
Write the questions the way a buyer actually phrases them to ChatGPT, and answer each one in a sentence or two that stands on its own. The answers in your FAQPage should also appear in the visible page, never mark up a question your page doesn't genuinely answer.
The aggregateRating trap, read this before you copy a score
Product schema lets you include an `aggregateRating`. There's a strong temptation to drop your G2 score or your Capterra score in there. Don't. Putting a rating you collected somewhere else, a third party's stars, into your own page's JSON-LD is exactly what Google treats as a structured-data violation, and it risks a manual action against your site.
Only ever mark up first-party reviews that are genuinely displayed on that page. Never lift a G2, Capterra or Trustpilot score into your own aggregateRating. If you don't show real reviews on the page, omit the rating entirely, a missing rating costs you nothing; a fabricated one can cost you the site.
The safe version: if you host real customer reviews on the page, you can mark those up. If you don't, leave `aggregateRating` out and let the rest of the schema do its job. The model still reads your Organization, FAQPage and Product facts.
How to add it, in order
- 1
Start with Organization on the homepage
Name, logo, URL, and sameAs links to the profiles you actually control. Confirm each link before you add it, omit any you can't verify rather than inventing one.
- 2
Add FAQPage where you answer real questions
Use the questions buyers ask AI, in their words. Keep each answer self-contained, and make sure the same answer is visible on the page.
- 3
Mark up Product, Article and Breadcrumbs where they fit
Real specs and prices on product pages; author and dates on guides; the trail from home on deeper pages. Only true facts, only what's on the page.
- 4
Validate, then check it's being read
Run the JSON-LD through a schema validator to catch typos, then re-check the AI answers to confirm the recommendation is moving. Retrieval engines pick up changes within days of crawling; a model's training memory only shifts when it's retrained, so some of this lands fast and some builds.
If writing the blocks by hand is the part you'd rather skip, MentionLM generates paste-ready Organization and FAQPage JSON-LD for your brand, calibrated to your tier and aimed at the exact questions you're losing, so you can drop it straight into your head.
Frequently asked questions
Does schema markup help me rank in Google too?
Sometimes, but that's not the point here. Google has retired most of the FAQ rich snippets schema used to win, so don't add FAQPage expecting a fancier search listing. For AEO, schema earns its place by letting an AI read your facts cleanly, that's the job it's doing now.
Can I put my G2 or Capterra rating in my own schema?
No. Copying a third-party score into your own page's aggregateRating is a structured-data violation that risks a Google manual action. Only mark up real first-party reviews that are actually displayed on the page. If you don't show reviews, leave the rating out, it costs you nothing to omit it.
Do I need to be a developer to add schema?
No. JSON-LD is a block of text you paste into the page's head, no rebuild required. Most site builders and CMSs have a field or plugin for it. The harder part is getting the facts right and resisting the urge to overstate; the code itself is straightforward.
Which schema type should I add first?
Organization, on your homepage, with accurate sameAs links to the profiles you control. It anchors your brand as an entity and is the one block every site should have. FAQPage on your answer pages is the natural second step.
How do I know if AI already recommends me?
Ask the engines the questions your buyers ask, and read the answers. MentionLM scans ChatGPT, Claude, Gemini and Perplexity in about ten seconds and shows whether you're named, and which rivals get named instead.
See where AI recommends a rival instead of you.
Scan your site free →