Schema markup for SaaS product pages: Product, Offer, FAQPage

Schema markup for SaaS product pages tells search engines exactly what your pricing plans, product features, and FAQs represent — enabling rich results in SERPs that display more information than a standard blue link. For SaaS companies competing on branded and category terms, rich results deliver measurably higher click-through rates by showing pricing tiers, star ratings, or FAQ answers directly in the search result.

Why schema markup matters for SaaS product pages

Search engines process your content in two stages: they read the text, and they interpret its meaning. Schema markup — JSON-LD embedded in the <head> or body of your page — makes the second stage explicit. Instead of inferring that your "$99/month" text refers to a subscription offer, the engine can read a structured Offer object with price, priceCurrency, and priceValidUntil properties.

For SaaS specifically, structured data enables several rich result types: FAQ accordions in search results (directly below the result), pricing information for product pages, software application details (ratings, category, platform), and review snippets if you aggregate user reviews. Each of these can increase the real estate your listing occupies in the SERP and improve click-through rates without any change in ranking position.

Product schema for SaaS pricing pages

The Product schema type is applicable to SaaS products as well as physical goods. A minimal implementation for a SaaS pricing page:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Your SaaS Product Name",
  "description": "One-sentence description of what the product does.",
  "brand": {
    "@type": "Brand",
    "name": "Your Company Name"
  },
  "offers": [
    {
      "@type": "Offer",
      "name": "Starter",
      "price": "49.00",
      "priceCurrency": "USD",
      "billingIncrement": "MONTH",
      "priceValidUntil": "2027-12-31",
      "availability": "https://schema.org/OnlineOnly"
    },
    {
      "@type": "Offer",
      "name": "Growth",
      "price": "149.00",
      "priceCurrency": "USD",
      "billingIncrement": "MONTH",
      "priceValidUntil": "2027-12-31",
      "availability": "https://schema.org/OnlineOnly"
    }
  ]
}

Important constraints: the price values must be accurate and match what is displayed on the page. Google's guidelines penalise structured data that does not reflect page content. If you offer custom enterprise pricing without a listed price, omit that tier from the offers array or use "price": "0" with a note that pricing is custom.

Offer schema: defining your plans

Each pricing tier is a separate Offer object nested within the Product. Key Offer properties for SaaS subscription plans:

  • name: the plan name (Starter, Professional, Enterprise)
  • price: the numeric price as a string ("49.00")
  • priceCurrency: ISO 4217 currency code ("USD", "AUD", "GBP")
  • priceValidUntil: a future date in ISO 8601 format — required for Google to display price in rich results
  • billingIncrement: "MONTH" or "YEAR"
  • availability: use "https://schema.org/OnlineOnly" for SaaS products
  • url: the canonical URL of the pricing page or plan-specific signup page

FAQPage schema for product and feature pages

FAQPage schema is one of the most reliably implemented rich result types for SaaS pages. When implemented correctly, Google may display up to three FAQ questions directly in the search result — dramatically increasing the space your listing occupies.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Does your product integrate with Salesforce?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. Our native Salesforce integration syncs contact and deal data bidirectionally, with a setup time of under 15 minutes."
      }
    },
    {
      "@type": "Question",
      "name": "Is there a free trial?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. All plans include a 14-day free trial with no credit card required."
      }
    }
  ]
}

Implement FAQPage schema on any page that contains a structured FAQ section — pricing pages, integration pages, feature pages, and help documentation landing pages. Each question in the schema must have a corresponding visible answer on the page.

SoftwareApplication schema

For the core product page, SoftwareApplication is a more specific type than Product:

  • @type: "SoftwareApplication"
  • name: product name
  • applicationCategory: a schema.org enumeration value (e.g., "BusinessApplication", "FinanceApplication")
  • operatingSystem: "Web", "Android", "iOS" — list all that apply
  • offers: same Offer structure as above
  • aggregateRating: if you display and can verify aggregate user ratings — include ratingValue, ratingCount, and the source

Implementation and validation

Implement all schema as JSON-LD in a <script type="application/ld+json"> tag. JSON-LD is Google's preferred format and separates structured data from HTML markup, making it easier to maintain.

  1. Generate the JSON-LD for each page type
  2. Inject it in the document <head> or at the end of <body>
  3. Validate using Google's Rich Results Test for eligibility, and Schema.org Validator for structural correctness
  4. Monitor Google Search Console's "Enhancements" section for errors and warnings post-deployment
  5. Revalidate after any changes to pricing, plan names, or FAQ content

Skylabs implements structured data for SaaS and B2B websites as part of the [technical SEO foundation](/en/seo-technical-foundation) service. For SaaS companies building out their full organic acquisition strategy, [technical SEO checklist for SaaS 2026](/blog/en/technical-seo-checklist-saas-2026) provides the broader context in which schema markup sits.

Related services

Frequently asked

Is schema markup a direct ranking factor?

Schema markup is not a confirmed direct ranking factor. Its primary benefit is rich result eligibility — FAQ accordions, pricing display, star ratings — which improves click-through rate from existing ranking positions. Improved CTR can indirectly affect ranking through user engagement signals.

What happens if my schema markup is inaccurate?

Google may demote or remove rich results for pages with schema that does not accurately reflect page content, or with misleading structured data. In egregious cases (e.g., fake reviews in AggregateRating schema), manual actions can be applied. Keep schema data accurate and in sync with visible page content.

Can I use multiple schema types on the same page?

Yes. A SaaS pricing page can implement both Product/SoftwareApplication schema (for the pricing information) and FAQPage schema (for the FAQ section) on the same page. Use separate JSON-LD blocks for each type, or combine them as a graph with @graph.

Ready to upgrade your website?

Talk to us about professional website design for your business.

Chat Zalo

Related articles