SoftwareApplication Schema: Show App Ratings and Price in Google Search

Last Updated: February 25, 2026 · 10 min read

SoftwareApplication schema lets Google display your app's rating, pricing model, operating system compatibility, and download count directly in search results. For SaaS products, web tools, and mobile apps, this is one of the most underused rich result opportunities available — most competitors are not doing it yet.

💡 Where to add this schema

Add SoftwareApplication schema to your app's main landing page or homepage — the primary page that ranks for your app name. Do not add it to every page of your app.

1. Complete SoftwareApplication Schema — Web App / SaaS

{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Schema Validator",
  "applicationCategory": "DeveloperApplication",
  "operatingSystem": "Web Browser",
  "url": "https://schemavalidator.org",
  "description": "Free online tool to validate JSON-LD, Microdata,
    and RDFa structured data markup against Schema.org.",
  "screenshot": "https://schemavalidator.org/screenshot.jpg",
  "softwareVersion": "3.0",
  "datePublished": "2024-01-01",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "ratingCount": "4127",
    "bestRating": "5",
    "worstRating": "1"
  },
  "author": {
    "@type": "Organization",
    "name": "SchemaValidator",
    "url": "https://schemavalidator.org"
  },
  "featureList": [
    "JSON-LD validation",
    "Microdata validation",
    "RDFa validation",
    "Rich results eligibility check",
    "URL and code paste support"
  ]
}

2. Mobile App Schema (iOS / Android)

{
  "@context": "https://schema.org",
  "@type": "MobileApplication",
  "name": "My App",
  "operatingSystem": "Android 5.0+",
  "applicationCategory": "LifestyleApplication",
  "url": "https://myapp.example.com",
  "downloadUrl": "https://play.google.com/store/apps/details?id=com.example",
  "installUrl": "https://play.google.com/store/apps/details?id=com.example",
  "offers": {
    "@type": "Offer",
    "price": "2.99",
    "priceCurrency": "USD"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "ratingCount": "8920"
  }
}

3. applicationCategory Values

Use the correct category for your app type. These are the accepted values:

GameApplicationSocialNetworkingApplicationTravelApplicationShoppingApplicationSportsApplicationLifestyleApplicationBusinessApplicationDesignApplicationDeveloperApplicationDriverApplicationEducationalApplicationHealthApplicationFinanceApplicationSecurityApplicationBrowserApplicationCommunicationApplicationDesktopEnhancementApplicationEntertainmentApplicationMultimediaApplicationHomeApplicationUtilitiesApplicationReferenceApplication

4. Required and Recommended Properties

PropertyRequired?Notes
name✅ RequiredThe official name of the software
applicationCategory✅ RequiredFrom the accepted category list above
operatingSystem✅ Requirede.g. "Web Browser", "iOS 14+", "Android 5.0+"
offers.price⭐ RecommendedUse "0" for free apps
offers.priceCurrency⭐ RecommendedISO 4217 currency code (USD, EUR, INR)
aggregateRating⭐ Strongly recommendedDisplays stars in search result
description✅ RecommendedShort description of what the app does
screenshotOptionalURL of a screenshot image
featureListOptionalKey feature list as string or array

5. Common Mistakes

🚩 Using aggregateRating with a ratingCount of 0 or fabricated numbers

The ratingCount must reflect real, verified user reviews. Fabricated ratings violate Google's quality guidelines and risk manual action.

🚩 Adding SoftwareApplication schema to every page of the app

Only add it to the primary landing/marketing page. Interior app pages (dashboard, settings) should use WebPage schema instead.

🚩 Wrong operatingSystem format

Use clear strings: "Web Browser", "iOS 14+", "Android 5.0+", "Windows 10", "macOS 12+". Google needs to parse this.

🚩 Missing offers block

Without an offers block, Google cannot display pricing in rich results. Always include price and priceCurrency, even if price is "0".

6. Schema for Browser Extensions and Desktop Apps

SoftwareApplication applies beyond web apps and mobile apps. Here are the correct schemas for different software distribution contexts:

Software TypeSchema @typeoperatingSystem ValuedownloadUrl
Chrome ExtensionBrowserApplication"Google Chrome"Chrome Web Store URL
Firefox Add-onBrowserApplication"Firefox"addons.mozilla.org URL
macOS Desktop AppDesktopApplication or SoftwareApplication"macOS 12+"Mac App Store or direct .dmg
Windows AppDesktopApplication or SoftwareApplication"Windows 10, Windows 11"Microsoft Store or direct .exe
VS Code ExtensionSoftwareApplication"Windows, macOS, Linux"marketplace.visualstudio.com URL
CLI ToolSoftwareApplication"Windows, macOS, Linux"GitHub Releases or package manager URL

7. Monitoring App Schema in Search Console

SoftwareApplication schema does not have its own dedicated Enhancements section in GSC (unlike Product or FAQ). Use these methods to monitor it:

GSC URL Inspection

Use the URL Inspection tool on your app landing page. After clicking 'View crawled page', select the 'More info' tab. Under 'Structured data' you will see SoftwareApplication listed with its detected properties. This confirms Google has parsed your schema.

Google Rich Results Test (periodic checks)

Run your URL through the Rich Results Test monthly. The preview will show whether your app's rating, pricing, and OS are being detected correctly for the app rich result.

Search Appearance filter in GSC Performance

In GSC → Performance → Search appearance, filter for 'Structured data'. If your SoftwareApplication schema is driving rich results, those impressions appear separately from standard organic.

8. SaaS Product Schema vs App Schema: Key Differences

SaaS products (subscription-based web tools) have different schema needs than traditional software downloads. Here is how to handle the key differences:

No download URL

Omit downloadUrl entirely. It is optional. Just set url to your app landing page. Google understands web-based applications do not have download URLs.

Subscription pricing (monthly/annual)

Use offers with priceSpecification to indicate recurring pricing: { "@type": "UnitPriceSpecification", "price": "29", "priceCurrency": "USD", "billingDuration": "P1M" } (P1M = monthly, P1Y = annual).

Free trial available

Add an additional Offer with price: '0' and an Eligible region or eligibleQuantity to indicate it is a trial. Use a separate offers array to list both the free trial and paid tiers.

Multiple pricing tiers (Free/Pro/Enterprise)

Use AggregateOffer with lowPrice (free tier = 0) and highPrice (enterprise tier). Note that the most specific, actionable pricing shown in the SERP comes from a single clear Offer, not an AggregateOffer range.

Frequently Asked Questions

Does SoftwareApplication schema work for web-based tools, or only downloadable apps?

It works for both. For web-based tools and SaaS products, set operatingSystem to "Web Browser" and omit downloadUrl — it is optional. For downloadable software (macOS app, Windows installer, mobile app), include downloadUrl pointing to the App Store, Play Store, or your download page. Google understands the distinction and will display the appropriate rich result format for each.

My app has no reviews yet. Should I still add aggregateRating?

No — do not include aggregateRating if you have no real reviews. Adding a placeholder ratingCount of 0 or fabricated numbers violates Google's quality guidelines and risks a manual action on your search appearance. Wait until you have genuine user reviews from a verified review system (App Store, Google Play, or a third-party review platform). Once you have real data, add the aggregateRating block with accurate ratingValue and ratingCount.

Where exactly should I add SoftwareApplication schema — on every page of my app?

Only on your primary marketing/landing page — the page that describes and promotes the software itself. This is typically your homepage or a dedicated product page like /product or /about. Do not add it to interior app pages (dashboard, settings, user profile) — those should use WebPage schema instead. Adding it to every page creates duplicate entity signals and may confuse Google about which page represents the software.

How do I display star ratings in Google Search using this schema?

Add the aggregateRating property with a valid ratingValue (numeric, e.g. "4.8"), ratingCount (number of reviews), bestRating ("5"), and worstRating ("1"). Google will display star ratings in search results when: (1) the ratingCount is above a meaningful threshold (typically 5+), (2) the ratings come from a verifiable source, and (3) your schema validates cleanly. Note that Google does not guarantee stars will always appear — they reserve rich result display at their discretion.

What is MobileApplication vs SoftwareApplication in Schema.org?

MobileApplication is a subtype of SoftwareApplication specifically for apps distributed through mobile app stores. Use MobileApplication for iOS App Store and Google Play apps — it signals to Google that this is a native mobile app download. Use SoftwareApplication for web apps, SaaS, desktop software, and browser extensions. Both support the same core properties. For apps available on both web and mobile, use SoftwareApplication (the parent type) which covers all platforms.

My app has a free tier and a paid tier. Which price do I put in the offers block?

For a freemium model, use AggregateOffer with lowPrice set to "0" (free tier) and highPrice set to your highest paid tier price. Alternatively, use an array of multiple Offer objects — one for each tier — each with its own price, priceCurrency, and optionally a name describing the tier (e.g. "Pro", "Enterprise"). If you want to drive conversions from the SERP, a single clear Offer showing your entry-paid price often performs better than an ambiguous range.

Can I add SoftwareApplication schema to a Shopify or WordPress site for a digital product?

Yes — you can add JSON-LD SoftwareApplication schema to any page by injecting a script tag in the page's head or body. On WordPress, use a plugin (Yoast, RankMath, or a custom code snippet plugin) to inject it on specific pages. On Shopify, add it to your product.liquid or theme.liquid for the relevant product page. The schema works independently of the CMS — it is just a JSON-LD block that Google reads from the HTML source.

How long until SoftwareApplication rich results appear after adding the schema?

After adding valid schema, Google typically crawls and processes the page within 1-4 weeks for established sites (faster for frequently crawled pages). Rich results then appear when Google decides to surface them — there is no guaranteed timeline. Use the URL Inspection tool in Google Search Console to force a recrawl of the landing page. Once Google re-crawls and finds valid schema, check the Rich Results Test to confirm it detects SoftwareApplication correctly. Rich result display in actual SERPs may take an additional 2-4 weeks after that.

Validate Your App Schema

Check your SoftwareApplication JSON-LD for errors and rich-result eligibility.

Validate App Schema →