AEOHow we research and reviewPublished September 15, 202612 min read

12 Schema Markup Examples for AI Search, by Page Type

A page-type-by-page-type gallery of schema markup examples — pricing pages, comparison pages, docs, case studies, careers pages and more — with the type that actually fits each one.

12 Schema Markup Examples for AI Search, by Page Type

Direct answer

Which schema type should I use for each type of B2B SaaS page?

The right schema type follows the actual purpose of the page: Organization and WebSite for site-level identity, Article for editorial content, SoftwareApplication or Product only when the claims are accurate, BreadcrumbList for navigation hierarchy, JobPosting for real openings, VideoObject for real hosted video, and Person for named authors — never a type chosen because it looks like it might help AI search.

01

Match schema type to the page's real purpose — don't default to Article or Product for pages that aren't either.

02

SoftwareApplication and Review schema carry real accuracy obligations; getting them wrong is a policy risk, not just a missed opportunity.

03

This is an examples gallery organized by page type — for a first-principles implementation guide, see our companion schema post.

Most schema guides teach the four or five core types in isolation. This one is organized the other way around: by the page you're actually looking at.

For the first-principles version — what structured data does, what it can't promise, and how to validate it — start with Schema Markup for AEO: A Copy-Paste Implementation Guide. This post assumes that foundation and focuses on matching type to page.

The rule that overrides every example below

Every value in these examples is a placeholder. Replace it with information that is true and visible on the actual page. Schema that overstates or fabricates what a page contains — a rating that doesn't exist, a price that isn't current — is a policy and integrity problem, not a shortcut.

1–2. Homepage & site-level identity

01

Homepage

Use: Organization

Describe the real, legally-named organization behind the site — not a product name or marketing brand alone — and keep the @id stable so other pages can reference it.

Organization JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://example.com/#organization",
  "name": "Example Company",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": ["https://www.linkedin.com/company/example-company"]
}
02

Homepage or global layout

Use: WebSite

Add this once, site-wide, rather than regenerating it per page. It should reference the Organization @id as publisher, not duplicate the full object.

WebSite JSON-LD

{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "@id": "https://example.com/#website",
  "url": "https://example.com",
  "name": "Example Company",
  "publisher": { "@id": "https://example.com/#organization" }
}

3–4. Product & pricing pages

03

Product overview page

Use: SoftwareApplication

Only use this for an actual software product page, and only include an aggregateRating or review property if real, verifiable ratings exist — Google's guidelines treat fabricated review markup as a policy violation, not a gray area.

SoftwareApplication JSON-LD

{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Example Platform",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD",
    "description": "Free diagnostic tier"
  }
}
04

Pricing page (paid tier or one-time offer)

Use: Product

Keep price and availability synchronized with what's actually charged today — stale pricing schema is one of the more common causes of a 'this markup doesn't match the page' warning.

Product JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Quick Fix Report",
  "description": "One-time technical and AEO fix report.",
  "offers": {
    "@type": "Offer",
    "price": "399",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}

5–6. Editorial content & navigation

05

Blog post or guide

Use: Article

Reserve this for genuine editorial content. A landing page or product page marked up as an Article to gain a perceived AEO edge misrepresents the page type.

Article JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Example Guide Title",
  "datePublished": "2026-09-01",
  "author": {
    "@type": "Person",
    "name": "Jane Smith"
  }
}
06

Documentation or nested guide page

Use: BreadcrumbList

The hierarchy should reflect real site navigation, not an invented path built only to add breadcrumb rich results.

BreadcrumbList JSON-LD

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com" },
    { "@type": "ListItem", "position": 2, "name": "Docs", "item": "https://example.com/docs" },
    { "@type": "ListItem", "position": 3, "name": "Setup Guide", "item": "https://example.com/docs/setup" }
  ]
}

7–8. Careers & people pages

07

Individual job listing

Use: JobPosting

Remove or update the listing's schema the moment the role is filled or closed — Google explicitly penalizes stale JobPosting markup for roles no longer open.

JobPosting JSON-LD

{
  "@context": "https://schema.org",
  "@type": "JobPosting",
  "title": "Senior Backend Engineer",
  "datePosted": "2026-09-01",
  "validThrough": "2026-10-15",
  "employmentType": "FULL_TIME",
  "hiringOrganization": {
    "@type": "Organization",
    "name": "Example Company"
  },
  "jobLocation": {
    "@type": "Place",
    "address": { "@type": "PostalAddress", "addressLocality": "Remote" }
  }
}
08

Founder or team bio page

Use: Person

Link back to the Organization @id via worksFor, and only include sameAs profiles that genuinely belong to that individual.

Person JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Jane Smith",
  "jobTitle": "Founder",
  "url": "https://example.com/about/jane-smith",
  "worksFor": { "@id": "https://example.com/#organization" }
}

9–10. Video & event pages

09

Product walkthrough or demo video page

Use: VideoObject

Only mark up a video actually hosted or embedded on the page, with an accurate upload date and a real, reachable thumbnail image.

VideoObject JSON-LD

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Product Walkthrough",
  "description": "A recorded walkthrough of the core workflow.",
  "uploadDate": "2026-08-20",
  "thumbnailUrl": "https://example.com/video-thumb.jpg",
  "contentUrl": "https://example.com/videos/walkthrough.mp4"
}
10

Webinar or live event landing page

Use: Event

Update or remove Event markup once the event has passed — an evergreen 'upcoming' event that already happened is a common and easily avoided error.

Event JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Live Product Demo",
  "startDate": "2026-10-01T17:00:00-04:00",
  "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
  "location": {
    "@type": "VirtualLocation",
    "url": "https://example.com/webinar"
  }
}

11–12. Research pages & FAQs

11

Published research or benchmark dataset page

Use: Dataset

Include a real license and a URL that resolves to the actual dataset or its documentation — this is one of the more underused types for original-research content.

Dataset JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "AI Search Readiness Benchmark 2026",
  "description": "Public benchmark dataset of AI search readiness signals.",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "url": "https://example.com/research/benchmark-2026"
}
12

Genuine FAQ section

Use: FAQPage

Use sparingly. Google has significantly restricted FAQ rich-result visibility, and this markup should only describe real, visible question-and-answer content — see our companion schema guide for the full caveat.

FAQPage JSON-LD

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Does this feature require an enterprise plan?",
      "acceptedAnswer": { "@type": "Answer", "text": "No, it is available on all paid plans." }
    }
  ]
}

Mistakes specific to picking the wrong type

Correct

A comparison landing page uses Article schema because it is genuinely long-form editorial content with a named author and publish date.

Incorrect

A pricing page uses Article schema instead of Product schema simply because Article was easier to copy from an existing template.

Check what's actually implemented

See which schema types your site is missing, by page type.

Run Growthract's free diagnostic to check structured data coverage and accuracy across your actual pages.

Schema-by-page-type FAQs

Can a single page use more than one schema type?

Yes. A blog post about a product launch might reasonably combine Article and BreadcrumbList, referencing the same Organization @id used sitewide.

Should every B2B SaaS site use SoftwareApplication schema?

Only on pages that describe the actual software product, and only with properties you can factually support. It is not a general-purpose homepage schema.

What happens if I use the wrong schema type?

At minimum, it fails validation or is ignored. In more serious cases — like fabricated ratings — it can trigger a manual action under Google's structured-data guidelines.

Continue exploring