ExplainerTechnical AEO
Schema Markup: The Complete Guide for SEO and AI Search
by the AEO GEO Labs team8 min read
Schema markup is code, usually JSON-LD, that labels what a page is about using the shared schema.org vocabulary: this is an Organization, this is a Product with this price, this Article was written by this Person. Search engines use it to understand pages and to show rich results. AI engines can read it too, though as of October 2026 none rely on it alone.
tl;dr
- 1Use JSON-LD. Google recommends it, and it's the easiest format to maintain.
- 2Five types cover most sites: Organization, WebSite, Article, Product and BreadcrumbList.
- 3Google has cut many rich results since 2023. Markup still helps machines understand you, even where it no longer changes how results look.
- 4Markup must match what's visible on the page, and it must be in the server HTML for crawlers that don't run JavaScript.
Schema markup is one of the machine-readable layers that sit alongside robots.txt and llms.txt; for the bigger picture of those files, see our guide to llms.txt and the AI crawler files.
What schema markup is (and how it differs from structured data)
Structured data is any standardized format for describing a page's content to machines; schema markup is structured data that uses the schema.org vocabulary. Google's introduction to structured data defines it as "a standardized format for providing information about a page and classifying the page content." In practice the two terms are used interchangeably, because schema.org is the vocabulary nearly everyone uses.
Schema.org itself is a shared dictionary of types and properties, launched in 2011 and backed by Google, Microsoft, Yahoo and Yandex. As of October 2026, schema.org lists 826 types and 1,540 properties. You will use perhaps ten of them.
A schema.org markup block has three parts:
- @context says which vocabulary you're using (
https://schema.org). - @type says what the thing is (
Organization,Product,Article). - Properties describe it (
name,url,price,author).
The three formats: JSON-LD, Microdata, RDFa
Google accepts three formats, and recommends JSON-LD because it is "the easiest solution for website owners to implement and maintain at scale."
| Format | Where it lives | Pros | Cons |
|---|---|---|---|
| JSON-LD | A <script type="application/ld+json"> block |
Separate from HTML, easy to template and debug | Can drift out of sync with visible content |
| Microdata | Attributes on HTML elements | Tied directly to visible content | Messy to edit, breaks when templates change |
| RDFa | Attributes on HTML elements | Flexible, linked-data friendly | Same maintenance pain as Microdata |
Pick one. Two formats describing the same thing with different values (two prices, two names) send mixed signals.
Which schema markup types matter for SEO
The schema markup for SEO that matters most is the set that describes who you are and what each page is. Here are the types worth implementing first, by page:
| Page | Type | Key properties |
|---|---|---|
| Homepage or About | Organization | name, url, logo, sameAs, contactPoint |
| Homepage | WebSite | name, url |
| Blog post or guide | Article or BlogPosting | headline, author (Person with url), datePublished, dateModified |
| Author bio | ProfilePage with Person | name, jobTitle, sameAs |
| Product page | Product with Offer | name, image, offers (price, priceCurrency, availability) |
| Local business | LocalBusiness | address, telephone, openingHours, geo |
| Inner pages | BreadcrumbList | itemListElement |
| Events | Event | name, startDate, location |
Here is a minimal Organization block for a homepage:
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Ledgerly",
"url": "https://ledgerly.com",
"logo": "https://ledgerly.com/logo.png",
"sameAs": [
"https://www.linkedin.com/company/ledgerly",
"https://www.wikidata.org/wiki/Q00000000"
]
}
And an Article with a real author:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Run Payroll Across Borders",
"datePublished": "2026-09-14",
"dateModified": "2026-10-01",
"author": {
"@type": "Person",
"name": "Maya Chen",
"url": "https://ledgerly.com/authors/maya-chen"
},
"publisher": { "@type": "Organization", "name": "Ledgerly" }
}
You can build either one without writing JSON by hand in the schema markup generator, which flags missing required and recommended fields as you type.
What changed: rich results Google has dropped
Google has steadily reduced the rich results that schema markup triggers, so the visible payoff is smaller than older guides promise. The main changes, from Google's own announcements:
- August 2023: Google said FAQ rich results would "only be shown for well-known, authoritative government and health websites," and in September 2023 deprecated How-to rich results entirely.
- June 2025: Google announced it was phasing out several more structured data features, including Book Actions, Course Info, Claim Review, Estimated Salary, Learning Video, Special Announcement and Vehicle Listing.
Google was explicit that unused markup does no harm: "Structured data that's not being used does not cause problems for Search, but also has no visible effects in Google Search." So you don't need to rip out old FAQPage markup. You just shouldn't expect it to change your listing.
What still produces rich results as of October 2026 includes Product (prices, ratings, availability), Review snippets, Recipe, Event, Video, Breadcrumbs, Organization logos and several others. Google's results did show what those were worth when they worked: its documentation cites Rotten Tomatoes seeing a 25% higher click-through rate on pages with structured data, and Nestlé measuring 82% higher click-through on rich result pages.
Schema markup and AI search
Schema markup helps AI search in a supporting role: it makes facts about your brand and pages unambiguous, but it is not a ticket into AI answers. The engines are fairly clear about this.
Google's AI features guidance says there's "no special schema.org structured data" needed to appear in AI Overviews or AI Mode, while still listing structured data that matches visible content as a best practice. Microsoft is more encouraging: in an October 2025 post on optimizing content for AI search answers, Microsoft Bing's Krishna Madhavan wrote that "schema is a type of code that helps search engines and AI systems understand your content."
There's a practical catch. Many AI crawlers fetch raw HTML without running JavaScript. If a tag manager injects your JSON-LD after page load, those crawlers never see it. Put your markup in the server-rendered HTML.
Our view: the types that matter most for AI are the identity ones. Organization with sameAs links, Person for authors, and accurate Product data give a model consistent facts to repeat. We go deeper on this in our guide to schema for AI search, and on the identity side in entity SEO.
How to add schema markup in five steps
Adding schema markup takes five steps, whatever your stack:
- Map page templates to types. Homepage gets Organization and WebSite, posts get Article, product pages get Product.
- Generate the JSON-LD. Use a generator, your CMS's SEO plugin, or a template in your codebase that fills properties from real data.
- Put it in the server HTML. Add the script block to the template's
<head>or body so it ships with the page, not via a tag manager. - Validate it. Check syntax and required fields before and after deploy. Our guide to schema markup validators covers which tool to use for what.
- Monitor it. Watch the enhancement reports in Google Search Console for errors as templates change.
Common schema markup mistakes
Most schema markup problems come from markup that disagrees with the page or with itself. The ones to check for:
- Marking up invisible content. Google's structured data policies say: "Don't mark up content that is not visible to readers of the page."
- Duplicate nodes. An SEO plugin and a theme both output Organization with different names or logos.
- Bad dates. "March 4, 2026" isn't machine-readable. Use ISO 8601:
2026-03-04. - Prices without currency. A
priceof89needspriceCurrency. - Fake or self-serving reviews. Google's policies bar misleading markup, and spammy structured data can earn a manual action.
- JavaScript-only markup. Fine for Google, invisible to many AI crawlers.
To find these on a live page, run it through the structured data checker. It reads the raw HTML the way a non-rendering crawler does and flags missing properties and malformed values.
Frequently asked questions
Does schema markup improve rankings?
Not directly. Google's documentation presents structured data as a way to understand pages and qualify for rich results, not as a ranking boost. It helps Google understand a page and makes the page eligible for rich results, which can raise click-through rates. Google's own documentation cites Rotten Tomatoes measuring a 25% higher click-through rate on pages with structured data. Better understanding and better listings help indirectly; the markup itself doesn't push you up.
What is the best format for schema markup?
JSON-LD. Google recommends it as the easiest format to implement and maintain at scale, and it sits in one script block instead of being spread across your HTML attributes. Microdata and RDFa still work, but they break more easily when templates change. Whatever you choose, use one format per page so you never describe the same thing twice.
Is FAQ schema still worth adding?
For most sites, FAQ schema no longer produces a visible result in Google. Since August 2023, Google shows FAQ rich results only for well-known government and health sites. The markup does no harm and may still help other machines read your Q&A content, so leave existing FAQPage markup in place. Just don't add it expecting a richer Google listing.
Do AI engines like ChatGPT read schema markup?
Some do, with limits. As of October 2026, no AI engine has published exactly how it uses schema. Google says no special schema is needed for its AI features, while Microsoft says schema helps AI systems understand content. Crawlers that don't run JavaScript only see markup in the raw HTML, so server-render it if you want every engine to read it.
How many schema types should one page have?
As many as truthfully describe the page, which is usually two to four. A blog post might carry Article, BreadcrumbList and a Person for the author. A homepage might carry Organization and WebSite. Don't stack unrelated types to chase rich results; markup must describe what is visible on that specific page.
If you want this done for your site, AEO GEO Labs implements structured data, llms.txt and crawler access as part of its GEO, AEO and SEO programs for B2B and SaaS teams. See our services.