SeAudit
← All articles
Technical SEO·8 min·2026-09-23

SoftwareApplication Schema for Your SaaS Pricing Page in 2026

Google requires a numeric price and a real review for the SoftwareApplication rich result. How to mark up your SaaS pricing page without getting rejected.

Flat design illustration of a purple circular rating gauge connected by nodes to a stack of abstract price blocks, for a SaaS pricing page.

Google refreshed its SoftwareApplication rich result documentation on September 8, 2026. If you run a SaaS product, there's a good chance your pricing page misses at least one of the three requirements needed to qualify — and two increasingly common SaaS habits make it worse: hiding your price behind a "Contact us" form to pre-qualify leads, and injecting schema through Google Tag Manager instead of the HTML served on first load.

SoftwareApplication or Product: which one belongs on your pricing page

Google offers two structured data families for anything sold online. Product targets retail: a physical item or a generic subscription wrapped in an Offer. SoftwareApplication is the dedicated type for software. It adds two properties no Product markup carries natively — applicationCategory and operatingSystem — and unlocks its own rich result showing rating, price, and category right under your link in Google results.

Direct answer: for a self-service B2B SaaS (not distributed through a mobile app store), SoftwareApplication is the type to put on your pricing or product page. Product still makes sense for classic e-commerce, or alongside it if you also sell metered add-ons.

The three non-negotiable requirements — and the one that trips up almost everyone

Per Google's documentation, three elements are required for rich result eligibility, not merely recommended:

PropertyRequirementCommon trap
nameThe application's nameRarely an issue
offers.priceA numeric price, 0 for a free plan, priceCurrency for a paid onePrice hidden behind "Contact us" means nothing to declare
aggregateRating OR reviewAt least one average rating or individual reviewZero visible reviews means zero valid schema

Trap number one: if your sales motion deliberately hides pricing to force a qualification call, you literally have nothing to put in offers.price. There's no clean workaround — a fabricated or loosely-sourced "starting at" price violates Google's content policies and risks the rich result being pulled sitewide, not just on the offending page.

Trap number two, less obvious: aggregateRating is only valid if it follows the same rules as a standalone Review (see our guide to Review and AggregateRating schema) — no self-rating your own brand, no fabricated reviews. Without real customer reviews somewhere (Trustpilot, G2, or a properly marked-up reviews page on your own site), you can't legitimately populate either aggregateRating or review.

A mini case: a pricing page going from zero to eligible

Take a fictional SaaS with three plans ($19, $49, and $99/month), with no reviews displayed anywhere on the site. Run through the Rich Results Test, the pricing page fails immediately: no aggregateRating, no review, a required condition unmet. After adding an aggregateRating sourced from 34 real Trustpilot reviews (4.6/5 average) and setting operatingSystem to "Web", the test passes. The rich result typically shows up 5 to 15 days after Googlebot's next crawl — the standard indexing timeline, nothing accelerated by the schema itself.

applicationCategory and operatingSystem: the two properties that remove ambiguity

Both are recommended, not required, but they stop Google from misclassifying your tool. applicationCategory must come from Google's closed list (BusinessApplication, DeveloperApplication, SecurityApplication, and so on) — a SaaS that invents its own category ("ProductivityTool") doesn't get rejected, it just loses the signal entirely, unused. operatingSystem accepts values like "Web", "Windows, macOS", or "iOS, Android" depending on what you actually support — overstating it (claiming mobile support that doesn't exist) falls under Google's general policy against misleading structured data.

Minimal example for a B2B web SaaS:

{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "YourTool",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": {
    "@type": "Offer",
    "price": "49",
    "priceCurrency": "USD"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "ratingCount": "34"
  }
}

Does any of this actually help with AI citations?

Picture two pricing pages with identical visible content — same plans, same copy, same layout. One carries full SoftwareApplication markup, the other has none. Does that difference change which one ChatGPT or Perplexity ends up citing? A 2026 Ahrefs analysis tested exactly this kind of question, and the answer is blunt: schema has no demonstrated effect on how AI engines generate their answers, and most of them strip structured data outright during processing. On that criterion alone, our two fictional pages would have comparable citation odds.

What complicates the picture: SE Ranking measured that roughly 71% of pages cited by ChatGPT and 65% of those cited by Google AI Mode do carry structured data. That number is real, but it tells a different story than the one we'd like to read into it — those pages likely have other qualities that explain the citation (authority, freshness, clear editorial structure), and schema is just one symptom among several, not the cause. On correlation with any specific schema type, SE Ranking itself only found a link it describes as "very weak."

Where SoftwareApplication has a direct, verifiable effect is on classic Google Search (the rich result itself) and on machine readability for any crawler, AI included — under one non-negotiable technical condition: the schema has to live in the HTML served on first load, not injected afterward through Google Tag Manager or a client-side script. AI crawlers like GPTBot or ClaudeBot don't reliably execute JavaScript; schema that only exists client-side is simply invisible to them. We cover this rendering trap in our JavaScript SEO and SSR/CSR rendering guide.

When not to add SoftwareApplication

Three cases where it's the wrong call. First, if you have no real customer reviews and no near-term plan to collect any: better to declare nothing than to fabricate an aggregateRating, which risks a sitewide manual action. Second, if your offering is a hands-on service (agency, consulting, custom implementation) rather than self-service software: Service or Organization better match the actual offer, and a fake SoftwareApplication on a service engagement is a textbook case of structured data misrepresenting the actual content. Third, if your pricing page deliberately never shows a numeric price as a sales strategy: ship the minimal viable schema (name, applicationCategory) without offers rather than inventing a number, and accept you won't qualify for the full rich result while that hidden-pricing strategy stays in place.

Key takeaways

  • SoftwareApplication requires three non-negotiable things: name, a numeric offers.price, and either aggregateRating or review
  • A price hidden behind "Contact us," or zero reviews anywhere, makes the rich result unreachable — there's no clean shortcut
  • applicationCategory and operatingSystem are recommended, not required, but they remove ambiguity for Google and for AI crawlers alike
  • Schema has to live in the HTML served on first load — markup added only through GTM is invisible to GPTBot and ClaudeBot
  • Schema has no demonstrated, direct effect on generative AI citations, but it does correlate (71% of pages cited by ChatGPT carry structured data) and it secures your classic Google rich result

FAQ

Should I use SoftwareApplication or Product for a SaaS pricing page?

SoftwareApplication, in nearly every case for a self-service B2B SaaS. Product still makes sense for classic e-commerce or metered add-ons billed per unit.

Can I declare a "starting at $X" price in offers.price?

Technically yes, via priceSpecification with a range, but the price must stay accurate and verifiable on the page. A teaser price that doesn't match any actually available plan violates Google's content policies.

Can aggregateRating exist with zero customer reviews?

No. AggregateRating must be based on real, verifiable reviews, either on your own site or a third-party platform (Trustpilot, G2, Capterra). Without reviews, the minimal viable schema skips both aggregateRating and review, and the full rich result stays out of reach.

How long does the SoftwareApplication rich result take to appear?

Like any structured data, it follows Google's standard indexing cycle: typically 5 to 15 days after Googlebot's next crawl of the page, once valid schema is in place.


Want to know if your pricing page is properly marked up before going further? Run the free SeAudit audit for your /100 score, or go straight to the full report for a detailed technical diagnosis.

Stay visible in AI and on Google: 1 quick-win a week.

Every week, 1 tactical SEO + GEO article + 1 quick-win to apply on your site this week. No fluff, no aggressive cross-sell.

No spam. Unsubscribe in 1 click. GDPR ✓