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:
GameApplicationSocialNetworkingApplicationTravelApplicationShoppingApplicationSportsApplicationLifestyleApplicationBusinessApplicationDesignApplicationDeveloperApplicationDriverApplicationEducationalApplicationHealthApplicationFinanceApplicationSecurityApplicationBrowserApplicationCommunicationApplicationDesktopEnhancementApplicationEntertainmentApplicationMultimediaApplicationHomeApplicationUtilitiesApplicationReferenceApplication4. Required and Recommended Properties
| Property | Required? | Notes |
|---|---|---|
| name | ✅ Required | The official name of the software |
| applicationCategory | ✅ Required | From the accepted category list above |
| operatingSystem | ✅ Required | e.g. "Web Browser", "iOS 14+", "Android 5.0+" |
| offers.price | ⭐ Recommended | Use "0" for free apps |
| offers.priceCurrency | ⭐ Recommended | ISO 4217 currency code (USD, EUR, INR) |
| aggregateRating | ⭐ Strongly recommended | Displays stars in search result |
| description | ✅ Recommended | Short description of what the app does |
| screenshot | Optional | URL of a screenshot image |
| featureList | Optional | Key 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 Type | Schema @type | operatingSystem Value | downloadUrl |
|---|---|---|---|
| Chrome Extension | BrowserApplication | "Google Chrome" | Chrome Web Store URL |
| Firefox Add-on | BrowserApplication | "Firefox" | addons.mozilla.org URL |
| macOS Desktop App | DesktopApplication or SoftwareApplication | "macOS 12+" | Mac App Store or direct .dmg |
| Windows App | DesktopApplication or SoftwareApplication | "Windows 10, Windows 11" | Microsoft Store or direct .exe |
| VS Code Extension | SoftwareApplication | "Windows, macOS, Linux" | marketplace.visualstudio.com URL |
| CLI Tool | SoftwareApplication | "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 →Related Guides
→ What is JSON-LD?
How to write SoftwareApplication schema in JSON-LD format
→ E-commerce Schema Markup
Product schema for digital products and SaaS landing pages
→ Google Rich Results Guide
App rich results, star ratings, and how they appear in search
→ Schema Markup Checker
How to validate your SoftwareApplication schema
→ Schema Markup Audit
Audit your app landing page for schema completeness
→ JavaScript SEO & Structured Data
Rendering app schema in Next.js, React, and SPAs