Schema markup is the cheapest SEO win you will ever ship. Done right, it adds rich results in Google SERPs (FAQs, breadcrumbs, ratings, prices) that meaningfully lift click-through. Done wrong, it triggers manual actions and gets your rich results stripped.
Here is the schema set every SaaS site should ship in 2026, with the JSON-LD shape and where to put it.
The non-negotiables
Organization (every page, in the head template)
Tells Google who you are. Required for the brand knowledge panel and any future trust signals. Include name, url, logo (PNG ≥ 112px), and sameAs links to your social profiles.
WebSite (homepage)
Declares your site as a discrete entity. Optional SearchAction subschema enables sitelinks search box in SERPs.
BreadcrumbList (every non-home page)
Enables breadcrumb display in SERPs, which lifts CTR ~5–10% by signaling site structure. Trivially easy to ship.
High-leverage rich results
FAQPage (service pages, pricing pages, support docs)
Generates expandable FAQ rich results in SERP — multiplies your real estate when triggered. Google has tightened criteria over the years; FAQ schema must mirror visible on-page FAQs exactly.
Product (each pricing tier, each downloadable product)
For paid SaaS plans, mark up each tier with Product + Offer. Includes price, currency, availability. Triggers price snippets in SERP.
SoftwareApplication (your main product page)
Specifically for software products. Subtypes include WebApplication, MobileApplication. Lets you mark applicationCategory, operatingSystem, offers, and aggregateRating if you have reviews.
Article + BreadcrumbList (every blog post)
Article schema enables Top Stories and rich results in some queries. Required fields: headline, datePublished, dateModified, author, publisher, mainEntityOfPage. Combined with BreadcrumbList, it gives the post the best chance of triggering rich results.
Common mistakes
Schema does not match visible content
Schema headline says "X"; H1 says "Y". Schema price says $99; visible page says $129. Google flags these as deceptive and may remove your rich results entirely.
Required fields missing
Article without dateModified. Product without offers. FAQPage without acceptedAnswer.text. Run every template through Rich Results Test before shipping.
Multiple Organization schemas, all different
Pages each declare their own Organization with slight variations. Use a single Organization schema with a stable @id ("https://yoursite.com/#organization"), referenced from other schemas, not duplicated.
Schema for content that is not on the page
FAQPage schema for FAQs that exist only in the JSON-LD, not visible to users. Google now requires the visible content to match — penalty if it does not.
How to implement cleanly
Centralize schema generation in a single file (schema.ts in our case) with helpers for each type. Every page calls the helper with its data. The same helpers are used by both the React component and any prerender / SSR layer. This guarantees the rendered HTML head and the React tree never disagree.
For sites that scale, validate schema in CI: a Lighthouse CI run on every PR catches regressions before deploy.
What we ship
Our SEO Optimization service includes a complete schema implementation tailored to your stack — JSON-LD helpers, rich results validation, and CI checks. The same set we use on our own site.