Blog
Wild & Free Tools

Schema Markup for SaaS Pricing Pages (Product or Service?)

Last updated: April 2026 8 min read

Table of Contents

  1. Software application schema
  2. Pricing tiers
  3. Aggregate offer alternative
  4. Software application vs product
  5. Reviews and ratings
  6. Frequently Asked Questions

SaaS pricing pages are uniquely tricky to mark up with schema. Software isn't a physical product. It's not really a service in the schema.org sense either. And pricing pages have multiple tiers, often with different features and prices. The right schema for SaaS depends on what you're selling — and getting it right unlocks rich results that competitors who use generic Product schema miss.

SoftwareApplication: The Right Type for Most SaaS

Schema.org has a dedicated SoftwareApplication type that inherits from CreativeWork. It's designed for software products and includes fields no other type covers:

For most SaaS — web-based, browser-based, or mobile-app — SoftwareApplication is the right type. It signals to Google that your offering is software, not a generic Product, and unlocks rich result formats specific to apps.

Subtypes include WebApplication (for web-only SaaS), MobileApplication (for native mobile), and VideoGame (for games). Use the most specific one that fits.

Marking Up Multiple Pricing Tiers

SaaS pricing pages typically have 3-5 tiers (Free, Starter, Pro, Business, Enterprise). The schema pattern: one SoftwareApplication with an array of Offer objects in the offers field.

{
  "@context": "https://schema.org",
  "@type": "WebApplication",
  "name": "YourSaaS",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": [
    {
      "@type": "Offer",
      "name": "Free",
      "price": "0",
      "priceCurrency": "USD"
    },
    {
      "@type": "Offer",
      "name": "Starter",
      "price": "29",
      "priceCurrency": "USD",
      "priceSpecification": {
        "@type": "UnitPriceSpecification",
        "price": "29",
        "priceCurrency": "USD",
        "billingIncrement": 1,
        "unitText": "MONTH"
      }
    },
    {
      "@type": "Offer",
      "name": "Pro",
      "price": "99",
      "priceCurrency": "USD"
    }
  ]
}

Each tier becomes its own Offer with a name and price. Use UnitPriceSpecification with billingIncrement and unitText to signal recurring billing.

Sell Custom Apparel — We Handle Printing & Free Shipping

AggregateOffer for Price Range Display

If you want Google to show a price range ("from $29/month") instead of listing each tier, use AggregateOffer instead of an array of Offers:

"offers": {
  "@type": "AggregateOffer",
  "lowPrice": "0",
  "highPrice": "299",
  "priceCurrency": "USD",
  "offerCount": "4"
}

This gives Google a single price range rather than per-tier pricing. Useful for SaaS with many tiers or with custom enterprise pricing where the high end isn't a fixed number.

Choose between the array pattern and AggregateOffer based on what you want to show in search results. Array gives more detail; AggregateOffer is cleaner.

SoftwareApplication vs Product: When to Use Which

You can technically use Product schema for SaaS, but SoftwareApplication is the better choice for most software companies. Here's when each fits:

Use SoftwareApplication when:

Use Product schema when:

For modern SaaS: SoftwareApplication. For software-adjacent digital products: Product. For both, use the type that matches what you're actually selling.

Reviews and Ratings for SaaS

aggregateRating works on SoftwareApplication just like Product. If you have real user reviews collected via G2, Capterra, Trustpilot, or your own review system, you can include the rating in your schema:

"aggregateRating": {
  "@type": "AggregateRating",
  "ratingValue": "4.7",
  "reviewCount": "238",
  "bestRating": "5",
  "worstRating": "1"
}

Critical: don't fake the numbers. Google's spam team aggressively penalizes fake aggregateRating in software listings. Pull real numbers from your review platforms.

If you display individual reviews on your pricing or product page, include them as Review objects nested in the SoftwareApplication. This unlocks individual review snippets in some search results — particularly valuable for enterprise SaaS where decision-makers read reviews before booking demos.

For more on schema validation, see our validator workflow guide.

Try It Free — No Signup Required

Runs 100% in your browser. No data is collected, stored, or sent anywhere.

Open Free Schema Markup Generator

Frequently Asked Questions

Should SaaS use Product or SoftwareApplication schema?

SoftwareApplication for most modern SaaS. Product is for physical products or generic digital downloads. SoftwareApplication has software-specific fields (applicationCategory, operatingSystem, softwareVersion) that Product lacks.

How do I mark up multiple pricing tiers?

Use an array of Offer objects in the offers field, one per tier. Each tier has its own name (Free, Starter, Pro) and price. For monthly billing, use UnitPriceSpecification with billingIncrement and unitText set to MONTH.

What's the difference between WebApplication and SoftwareApplication?

WebApplication is a subtype of SoftwareApplication specifically for web-based apps. Use WebApplication if your software runs in a browser. Use SoftwareApplication for the broader category or if you have apps across multiple platforms (web + mobile).

Can I include free trial information in schema?

Indirectly. The Offer can have a price of "0" with a name like "Free Trial." For trial-only offerings, add a description noting the trial duration. There's no specific isFreeTrial field, but the pattern works.

Will SaaS schema get me into Google's Software vertical?

Google doesn't have a dedicated software search vertical the way it does for shopping or recipes, but SoftwareApplication schema does feed into knowledge panels for branded searches and into AI search results when users ask for software recommendations.

Should I include screenshots in SaaS schema?

Yes. Add a screenshot field with an image URL or array of image URLs showing your app interface. Google can use these in some rich result formats and for visual context in knowledge panels.

Launch Your Own Clothing Brand — No Inventory, No Risk