What schema should a B2B SaaS deploy for AI visibility?
Eleven canonical schema types, sequenced by leverage. Organization with sameAs, SoftwareApplication with featureList, Offer per pricing tier, FAQPage on every surface page, plus the integration and review schemas the answer engines actually extract for SaaS comparison queries.
Want the short list?
Eleven canonical types for B2B SaaS, sequenced by AI-citation leverage:
Organization— root entity anchor with verifiedsameAsWebSite— site-level metadata withSearchActionSoftwareApplication— what your product actually isOffer— one per pricing tier withpriceSpecificationFAQPage— on every surface page that has FAQ-shaped contentArticlewithcitationarray — every blog post and case studyPerson— for the founder and named senior staff withsameAsService— if you sell platform + services bundledReview+AggregateRating— your G2 / Capterra / TrustRadius reviews exposedHowTo— for step-by-step product workflowsBreadcrumbList— every nested page
The first six are load-bearing. Get them right and you're at category median or above. Numbers 7 to 11 are the differentiators that push you toward top decile.
So why these specifically?
Two reasons.
Reason 1 — the answer engines extract from these types preferentially for B2B SaaS queries. When ChatGPT, Claude, or Perplexity get a query like "best customer-success platform for mid-market SaaS", they look for SoftwareApplication blocks with featureList, Offer blocks with prices, and AggregateRating blocks with review density. Brands without these emit are invisible to the comparison logic.
Reason 2 — the integration ecosystem schemas matter for capability queries. "Does Brand A integrate with Slack?" is a query the engines now answer from extracted data. If your integrations aren't structured with explicit schema, the engine guesses — and frequently guesses wrong, disqualifying you on a false premise. The fix is to type the integrations explicitly.
Type 1 — Organization (load-bearing)
The root entity anchor. One block, deployed in your root layout, inherited everywhere.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://acme.com/#organization",
"name": "Acme Corp",
"url": "https://acme.com/",
"logo": "https://acme.com/logo.png",
"description": "Customer-success platform for mid-market SaaS.",
"foundingDate": "2024-03-15",
"founder": { "@id": "https://acme.com/#founder" },
"sameAs": [
"https://www.linkedin.com/company/acme",
"https://x.com/acme",
"https://github.com/acme",
"https://www.crunchbase.com/organization/acme"
],
"contactPoint": {
"@type": "ContactPoint",
"contactType": "sales",
"email": "sales@acme.com",
"areaServed": "US"
}
}
The sameAs array is the single highest-leverage field. Every verified third-party profile (LinkedIn, X, GitHub, Crunchbase, Clutch, podcast directories) deepens the entity graph. Brands with five or more sameAs entries get cited at meaningfully higher rates than brands with one or two.
Type 2 — WebSite
Site-level block with the SearchAction potentialAction exposed. Tells engines about your site search.
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://acme.com/#website",
"url": "https://acme.com/",
"name": "Acme",
"publisher": { "@id": "https://acme.com/#organization" },
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://acme.com/search?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}
Most engines support the SearchAction surface. Worth deploying.
Type 3 — SoftwareApplication (load-bearing for SaaS)
The schema that names your product as software. Critical for capability queries.
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"@id": "https://acme.com/#product",
"name": "Acme Customer-Success Platform",
"applicationCategory": "BusinessApplication",
"applicationSubCategory": "CustomerSuccessSoftware",
"operatingSystem": "Web, iOS, Android",
"offers": { "@id": "https://acme.com/#offers" },
"featureList": [
"Customer health scoring with usage signals",
"Slack and Microsoft Teams native integrations",
"Salesforce and HubSpot bidirectional sync",
"Renewals forecasting with ML-based churn prediction",
"Custom playbook automation"
],
"softwareVersion": "2026.4",
"screenshot": "https://acme.com/og-product-screenshot.png",
"aggregateRating": { "@id": "https://acme.com/#rating" }
}
The featureList array is what engines extract for capability queries. Each line is a separately-extractable claim. Operators consistently underestimate this — six to twelve specific capability strings outperforms one paragraph of marketing copy.
The applicationCategory and applicationSubCategory should match the category language buyers actually use. Not your invented category name.
Type 4 — Offer per pricing tier
One block per pricing tier. Critical for "how much does Brand X cost" queries.
{
"@context": "https://schema.org",
"@type": "Offer",
"@id": "https://acme.com/#offer-growth",
"name": "Growth tier",
"description": "For SaaS companies $5M to $20M ARR with 1-5 CSMs.",
"price": "499",
"priceCurrency": "USD",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "499",
"priceCurrency": "USD",
"billingDuration": "P1M",
"unitText": "MONTH"
},
"availability": "https://schema.org/InStock",
"category": "subscription",
"itemOffered": { "@id": "https://acme.com/#product" }
}
Deploy one Offer block per pricing tier. The engines extract pricing for comparison answers. Brands without machine-readable pricing get described as "contact for pricing" even when prices are listed in prose on the page.
If you have usage-based pricing or custom enterprise tiers, model them explicitly with priceSpecification of type UnitPriceSpecification (per-seat, per-API-call, etc.) or priceRange for enterprise tiers.
Type 5 — FAQPage (load-bearing)
The single most-cited schema type in the answer engines for category questions.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Does Acme integrate with Salesforce?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Bidirectional sync via the native Salesforce integration."
}
},
{
"@type": "Question",
"name": "How is Acme priced?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Three tiers — Starter at $99/mo, Growth at $499/mo, Enterprise custom-quoted."
}
}
]
}
Deploy FAQPage on every surface page that has FAQ-shaped content. Pricing page, integrations page, security page, comparison pages. The FAQ doesn't need to be visible as a UI element — but if it is, schema and UI should match. The full FAQPage explainer with deeper examples lives at what is FAQPage schema.
Type 6 — Article with citation array
Every blog post, case study, and whitepaper. The citation array is what tilts AI extraction in your favor.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How B2B SaaS companies lose revenue in AI search",
"author": { "@id": "https://acme.com/#author-alice" },
"datePublished": "2026-04-15",
"dateModified": "2026-04-15",
"publisher": { "@id": "https://acme.com/#organization" },
"citation": [
{ "@type": "WebPage", "name": "Anthropic — Building effective agents", "url": "https://www.anthropic.com/research/building-effective-agents" },
{ "@type": "ScholarlyArticle", "name": "Apollo Research — Scheming evaluations", "url": "https://www.apolloresearch.ai/research" }
]
}
The citation array signals to the engines that the article is sourced. Articles with sourced citations get extracted at materially higher rates than articles without.
Types 7 to 11 — the differentiators
Person for the founder and senior staff. Verified sameAs to LinkedIn, GitHub, X, conference talks. The schema that makes named-leader queries work — "who founded Brand A", "who runs engineering at Brand A" — get answered correctly.
Service if you sell platform + implementation services bundled. Most B2B SaaS skip this; brands that sell white-glove enterprise onboarding should deploy it.
Review + AggregateRating — your G2, Capterra, TrustRadius reviews exposed via schema with platform attribution. The engines extract review schema with high confidence; reviews not exposed via schema are invisible regardless of how strong the underlying ratings are.
HowTo for step-by-step product workflows. "How do I set up Brand A's Slack integration" is a query the engines now answer from HowTo schema.
BreadcrumbList on every nested page. Cheap to deploy via template; clears a REQUIRED canonical type.
Where do most B2B SaaS sites fail?
Five most-common gaps we see in audits:
Gap 1 — SoftwareApplication.featureList missing or thin. The capability claims live in marketing copy but not in extractable schema. Fix by listing the 6 to 12 most-important capabilities as separate strings in the featureList array.
Gap 2 — pricing-page Offer schema missing. Prices visible in prose but no machine-readable structured pricing. Fix by deploying one Offer block per tier on the pricing page.
Gap 3 — integrations page has no structure at all. A list of integration logos rendered as images, no schema. Fix by either deploying SoftwareApplication.integrationOf or using FAQPage to expose the integrations as Q&A pairs.
Gap 4 — review schema absent despite high G2 / Capterra ratings. Reviews exist on a third-party platform; not exposed on your own site via Review schema with attribution. Fix by deploying Review schema with proper platform sourceOrganization attribution.
Gap 5 — Article schema deployed but citation array empty. Article schema present, but no citations. Fix by adding 2 to 4 verified external citations per article.
The audit at /audit ships the schema-coverage scorecard against your specific site, naming each gap with revenue tags.
What does this look like deployed?
The Doxia Axis schema-coverage-check utility is open-source and runs against any URL with a named AI-crawler user-agent:
git clone https://github.com/Doxia-Axis/schema-coverage-check.git
python3 schema_coverage.py https://yourdomain.com/ --user-agent GPTBot
The output names which canonical types are deployed and which are missing. Use it before audit, after deployment, and quarterly thereafter to monitor for regressions.
Where to go from here
- The full canonical schema set: /answers/what-schema-matters-for-ai-visibility.
- What is FAQPage schema? /answers/what-is-faqpage-schema.
- The free open-source coverage tool: github.com/Doxia-Axis/schema-coverage-check.
- Or just request the audit: /audit. Five business days. Schema scorecard with revenue tags per gap.