Schema graph diagram connecting Organization, Person, Article, FAQPage, and Speakable nodes
AEO deep dive

Schema for AI Engines: A Practical Deep Dive (2026)

The schema architecture LLMs and classic crawlers both parse correctly — the stack we ship on every engagement, the @id graph that ties it together, and the 30-day rollout playbook.

13 min read
·
2,050 words
·
Updated April 25, 2026
·
By Martin Vassilev

Why schema matters more for AI engines than for SERPs

Schema markup gives both classic crawlers and LLM retrieval systems unambiguous, machine-parseable signals about what a page is, who wrote it, when it was updated, and how it relates to other entities. For a SERP, schema unlocks rich results — review stars, FAQ accordions, sitelinks. For an AI engine, schema directly affects the probability that the engine correctly identifies your page as the canonical source for a query and quotes it accordingly.

The asymmetry is large. A page without schema can rank #1 organically and still be miscategorized by an LLM that has to infer entity relationships from prose. A page with a clean schema graph hands the LLM the answer to 'what is this page' in a form it cannot misread.

The schema stack we ship on every engagement

Every Toronto SEO engagement ships a layered schema stack with seven node types. Each node has a stable @id so the relationships between them survive across pages.

Organization (sitewide)

One canonical Organization node, on every page, referenced by stable @id. Holds name, logo, sameAs links, contact.

Person (per author)

One Person node per real human contributor. Holds credentials, sameAs (LinkedIn, GitHub), worksFor reference.

WebSite (sitewide)

Holds SearchAction, language, publisher reference. One node, referenced by every page.

WebPage (per page)

Per-URL identification. Holds inLanguage, isPartOf, breadcrumb, primaryImageOfPage.

Article (per editorial page)

Holds headline, datePublished, dateModified, author + publisher references, wordCount.

FAQPage (where applicable)

Question + acceptedAnswer pairs. Visible Q&A in DOM must match schema text.

Speakable (per editorial page)

Marks H1 + summary as machine-readable. Material lift on voice and AEO citations.

A connected schema graph is the cheapest E-E-A-T lever in modern SEO. It costs an engineering sprint and pays for itself in citation share within a quarter.

— Internal methodology note, Toronto SEO

Type-by-type: which to use, when, and how

TypeUse whenCritical fieldsCommon mistake
OrganizationEvery page, in the global graphname, url, logo, sameAs, contactPointMultiple competing Organization nodes per page
PersonEditorial pages with named authorsname, jobTitle, sameAs, worksFor, knowsAboutPerson referenced by name string instead of @id
Article / TechArticleEditorial content > 500 wordsheadline, datePublished, dateModified, author, publisher, image, wordCountdatePublished newer than dateModified (impossible)
FAQPagePages with > 3 visible Q&A pairsmainEntity[].name, mainEntity[].acceptedAnswer.textSchema Q&A text doesn't match visible DOM Q&A
HowToProcedural content with > 3 stepsstep[].name, step[].text, totalTime, supply, toolSteps in schema not matching steps on page
ServiceService pages where you sell something definedserviceType, areaServed, provider, offersPricing in schema not matching visible pricing
ProductProduct pages — physical or digitalname, sku, brand, offers, aggregateRating (real reviews only)Fake aggregateRating — fastest manual penalty
SpeakableLong-form articles, AEO-targeted pagescssSelector pointing at H1 + summarySelector matching nothing on the rendered page
BreadcrumbListEvery page with > 1 hierarchy levelitemListElement[].position, name, itemPosition numbering not 1-indexed

The schema graph: connecting nodes by @id

The single largest improvement most sites can make to their schema is moving from disconnected schema blocks (one Article block, one Organization block, no relationships) to a connected graph where each node references others by stable @id.

The pattern looks like this:

  • Define stable @ids for every long-lived entity
    https://torontoseo.com/#organization, https://torontoseo.com/#website, https://torontoseo.com/team#martin-vassilev. These don't change.
  • Reference, don't redefine
    Every Article references publisher by { '@id': '...#organization' }, not by re-stating the Organization. Same for author.
  • Use isPartOf to nest pages under the WebSite
    Every WebPage isPartOf the WebSite node. Tells the engine 'this URL belongs to this site identity.'
  • Use mainEntityOfPage on Article
    Connects the Article node to the WebPage node by URL. Disambiguates which Article belongs to which URL.
  • Use sameAs aggressively on Person and Organization
    LinkedIn, X, GitHub, Crunchbase, Wikipedia, Wikidata. Every legitimate identity link tightens entity disambiguation.

The result is a graph the engine can traverse: Article → author → Person → worksFor → Organization → publisher of → Article. Every relationship is explicit. The engine doesn't have to infer.

Validation: tools, gotchas, and what really matters

Schema Markup Validator (validator.schema.org)

The schema.org official validator. Use first — checks valid schema.org structure regardless of Google support.

Google Rich Results Test

Checks Google-specific rich-result eligibility. A page can be valid schema.org and still not be Google-eligible for a particular feature.

Search Console enhancement reports

Per-feature error reports across the entire indexed site. Quarterly review minimum.

Custom CI validation

We run JSON-LD validation in CI on every commit. Stops broken schema from ever reaching production.

The most common gotcha: FAQPage schema where the question and answer text in the schema doesn't exactly match the visible text on the page. Google's quality systems treat this as a deception signal. We've audited dozens of sites where the FAQPage schema was generated separately from the visible FAQ component and the two drifted apart over time.

Schema anti-patterns to avoid

  • Fake AggregateRating
    Inventing review counts and stars to earn a SERP star rating. Documented penalty trigger; the fastest manual action we've seen issued. Do not.
  • Schema describing content that isn't on the page
    FAQPage with 10 questions, only 4 visible. HowTo with steps not present. Both detected and demoted.
  • Speakable selector matching nothing
    Speakable schema with cssSelector pointing to a class that doesn't exist after render. Silent failure.
  • Multiple competing Organization nodes per page
    One Organization node sitewide. Multiple competing nodes confuse entity consolidation.
  • Author schema without sameAs links
    Person nodes that don't link out to verifiable identity (LinkedIn, GitHub, Wikipedia) carry minimal weight.
  • Outdated dateModified
    Refreshing dateModified without actually updating the content. Detected; trust signal degrades.

The 30-day schema-for-AI rollout playbook

WeekWorkstreamOutput
Week 1Audit + entity inventoryList of Organization, Person, Service, Product nodes the site needs. Stable @id assignment plan.
Week 2Sitewide graph (Organization + WebSite + Person + Speakable)Schema appears on every page; graph is connected by @id; validates without errors.
Week 3Per-page Article + FAQPage + BreadcrumbList rolloutTop 50 editorial pages have Article + FAQPage + Breadcrumb shipped + validated.
Week 4CI validation + monitoring + first auditJSON-LD validation runs on every PR; Search Console enhancement reports baselined.

By the end of week 4 the site has a complete connected schema graph, automated validation, and the baseline metrics in place to measure citation-share lift over the following quarter. The work then becomes maintenance: keeping dateModified honest, adding new author Person nodes as needed, and quarterly audits.

The honest summary

Schema for AI engines is not exotic — it's the same disciplined application of schema.org that has worked in classic SEO for a decade, plus a small number of AEO-specific additions (Speakable, tighter Person graphs, more aggressive sameAs use). What's changed is the asymmetry of the payoff. In 2018, schema unlocked SERP features. In 2026, schema increasingly determines whether an LLM can correctly identify your page as the source it should cite for a given query. The work is the same; the stakes are higher.

Frequently Asked Questions

What clients ask before commissioning a schema rebuild.

Schema engagement

Schema graph is the cheapest E-E-A-T lever you have.

We'll audit your existing schema, design the @id graph, and ship the rebuild in 30 days — measurable lift in citation share and rich-result eligibility.