SoftwareApplication Schema

How to implement SoftwareApplication schema (schema.org/SoftwareApplication) for Google's Software App rich result — the required name/offers/rating fields, the applicationCategory enum, choosing WebApplication vs MobileApplication, when to use it instead of Product schema, and the genuine-rating rules that keep you out of trouble.

First published: Jul 1, 2026 · Last updated: Jul 18, 2026 · Advanced
demand #26 in Structured Data#55 in On-Page#249 in Technical SEO#338 on the site

SoftwareApplication schema (schema.org/SoftwareApplication) is structured data that tells search engines an app's name, category, operating system, price, and rating so the page can qualify for Google's Software App rich result — the star rating, review count, price, and OS shown in the snippet. Google's required fields are narrow: name, offers (with a price; set it to 0 for free apps), and at least one of aggregateRating or review; applicationCategory and operatingSystem are recommended. The two things most guides get wrong: they present the whole schema.org property list (downloadUrl, fileSize, screenshot) as if it affects the rich result when it doesn't, and they blur SoftwareApplication with Product schema — but they're separate types with separate rich-result surfaces, so a paid SaaS or web app should generally use SoftwareApplication (or a WebApplication/MobileApplication subtype), not Product. And the ratings have to be genuine and user-sourced; fabricated or incentivized stars risk a manual action, not just a validation warning.

TL;DR — schema.orgSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor./SoftwareApplication markup (usually JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal.) makes an app or software page eligible for Google’s Software App rich result (rating, review count, price, OS in the snippet). Google’s required fields are narrow: name, offers (with price; 0 for free apps, priceCurrency recommended once price

0), and at least one of aggregateRating or review. applicationCategory (from a fixed enum) and operatingSystem are recommended. The rest of the large schema.org property list (downloadUrl, fileSize, screenshot, permissions…) is spec-valid but SEO-inert for this result. Prefer the most specific subtype (WebApplication, MobileApplication, VideoGame) over generic SoftwareApplication. It’s a separate type from Product with a separate rich-result surface — a paid SaaS/web app should generally use SoftwareApplication, not Product. Ratings must be genuine and user-sourced; fabricated or misleading review markupReview schema (schema.org/Review) is structured data for a single critic's or user's evaluation of one specific thing — one author, one itemReviewed, one reviewRating — distinct from AggregateRating, which summarizes many reviews into an average. violates Google’s structured-data policies.

Evidence for this claim Schema.org SoftwareApplication describes a software application and includes application category, operating system, offers, and review metadata. Scope: Schema.org vocabulary. Confidence: high · Verified: Schema.org: SoftwareApplication Evidence for this claim Google's software app feature requires name, offers.price, and either aggregateRating or review; markup must describe a real app visible on the page. Scope: Current Google Software app structured-data requirements and policies. Confidence: high · Verified: Google Search Central: Software app structured data

What SoftwareApplication schema unlocks

The concrete payoff is the Software App rich result — Google’s enhanced listing for app and software pages that can surface the star rating, review count, price, and supported operating system in the snippet. schema.org describes the type itself in a single line — “A software application.” — and Google’s Search Central docs turn that into a specific eligibility spec for the rich result. The whole point of getting this markup right is to be eligible for that snippet; valid markup only puts you in the running, it doesn’t guarantee display — and it doesn’t promise downloads, rankings, CTR, star visibility, or AI-search citations either. Google says it plainly: “Google does not guarantee that your structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. will show up in search results, even if your page is marked up correctly.”

Google’s requirements here are refreshingly narrow — narrower than most third-party guides make them look. Here’s the actual split from Google’s Software App docs:

PropertyStatusNotes
nameRequired”The name of the app.”
offersRequired”An offer to sell the app.” Use price: 0 for free apps.
aggregateRating or reviewRequired (one of)An average score or a single review — at least one.
applicationCategoryRecommended”The type of app (for example, BusinessApplication or GameApplication).”
operatingSystemRecommended”The operating system(s) required to use the app (for example, Windows 7, OSX 10.6, Android 1.6).”
priceCurrency (in offers)Recommended (when price > 0)Google will try to infer currency if you omit it, but set it.

That’s the entire eligibility surface. name + offers + one-of-rating/review, with applicationCategory and operatingSystem as the two recommendations worth adding every time.

TIP Validate the app type and its real rating evidence

SoftwareApplication has its own feature requirements. A Product template can validate as schema.org vocabulary while still asking Google to evaluate the wrong rich-result surface for a web or mobile app.

Paste the live page or JSON-LD into my validator to inspect the detected type, schema.org vocabulary, graph references, and visible rating mismatches before deployment. Schema Markup Validator Free

  1. Use SoftwareApplication or the honest WebApplication or MobileApplication subtype, not Product by reflex.
  2. Include name, offers with price, and a genuine aggregateRating or review that is visible on the page.
  3. Check Google's Software App requirements separately, then confirm the deployed URL in the Rich Results Test.

Handling free apps vs. paid apps

Google is explicit about free apps: “If the app is available without payment, set offers.price to 0.” Don’t drop offers entirely because the app is free — offers is on the required list; a free app should include it with price: 0, not omit it. And for paid apps: “If the app has a price greater than 0, we recommend also including the offers.priceCurrency property (or Google will try to find the right currency).” So set priceCurrency to a valid ISO 4217 code like USD once you’re charging anything.

The applicationCategory enum — and the quiet mistake it causes

applicationCategory only accepts values from Google’s documented list. The accepted values are:

GameApplication · SocialNetworkingApplication · TravelApplication · ShoppingApplication · SportsApplication · LifestyleApplication · BusinessApplication · DesignApplication · DeveloperApplication · DriverApplication · EducationalApplication · HealthApplication · FinanceApplication · SecurityApplication · BrowserApplication · CommunicationApplication · DesktopEnhancementApplication · EntertainmentApplication · MultimediaApplication · HomeApplication · UtilitiesApplication · ReferenceApplication

You can also use the schema.org URL form (e.g. https://schema.org/GameApplication), but the plain text string is standard practice. Here’s the trap: a value outside that list — say a descriptive "Productivity Software" — isn’t a hard error. Google just silently ignores it, so the rest of your markup validates and you never see a warning, but the field isn’t doing anything. That quiet no-op is one of the most common mistakes I’d expect to find auditing app pages.

Choose the most specific subtype

SoftwareApplication has several more specific subtypes in schema.org — its “More specific Types” are MobileApplication, WebApplication, VideoGame, OperatingSystem, and RuntimePlatform. Where one fits, use it instead of the generic type:

  • WebApplication — a browser-based SaaS tool (this is the common case for the audience I write for).
  • MobileApplication — a native iOS/Android app.
  • VideoGame — a game, but see the caveat belowVideoGame alone isn’t enough for the rich result.

Google’s Software App eligibility docs treat SoftwareApplication, MobileApplication, and WebApplication interchangeably, so specificity costs you nothing in eligibility for those three and adds precision. VideoGame is the one exception: Google is explicit that “Google doesn’t show a rich result for Software Apps that only have the VideoGame type. To make sure that your Software App is eligible for display as a rich result, co-type the VideoGame type with another type” — Google’s own example co-types it with MobileApplication, e.g. "@type": ["VideoGame", "MobileApplication"]. So a game page needs VideoGame plus another eligible application type in the same @type array, not VideoGame on its own. If you run a SaaS product, WebApplication is usually the honest, precise choice.

SoftwareApplication vs. Product schema — the disambiguation that matters

This is the confusion I most want to clear up, because SaaS marketers reach for Product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two. reflexively — the app is “a thing you buy,” so Product feels right. It usually isn’t the right pick. The right call follows what the page’s entity actually is and which Google feature you’re targeting — not a blanket rule that every SaaS, boxed-software, subscription, or app-marketplace page defaults to one type.

SoftwareApplication and Product are separate schema.org types with separate required/recommended fields and separate Google rich-result surfaces:

  • SoftwareApplication cares about operatingSystem and applicationCategory, and feeds the Software App rich result.
  • Product cares about gtin/mpn/sku/brand, availability, shipping and returns, and feeds product snippets and merchant listings — surfaces built around physical, purchasable goods and (optionally) a Google Merchant CenterGoogle Merchant Center (GMC) is a free platform where retailers upload and manage product data so their products can appear across Google — Shopping, organic Search product grids, Images, Lens, and AI surfaces. Since 2020 it powers free (organic) product listings, not just paid Shopping ads. feed.

Those Product-side conventions — GTINProduct identifiers are the standardized values — GTIN (Global Trade Item Number), MPN (Manufacturer Part Number), and brand — that shopping feeds like Google Merchant Center and Microsoft Merchant Center use to match a product listing to the correct item in their catalog. A GTIN alone is usually enough; without one, brand + MPN is the fallback; products with none declare that with the identifier_exists attribute./MPN catalog matching, shipping details, merchant feeds — don’t map cleanly onto software. A downloadable app or a SaaS subscription doesn’t have a UPC or a shipping policy. So for installable or runnable software with an OS and a category, use SoftwareApplication (or a subtype). Reach for Product schema only when the item genuinely behaves like a generic sellable good — for instance boxed software sold like a retail SKU, or a subscription you’re deliberately modeling as a plain purchasable product rather than as the application itself. Picking the wrong type means Google checks for fields your markup doesn’t have and misses the ones that actually drive the result you want. (The Product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two. article on this site goes deep on that side; this is the app-native counterpart to it.)

These aren’t always forced either/or nodes, either. Google’s own worked example for VideoGame co-types it with MobileApplication in the same @type array rather than picking one — proof that a single entity can carry more than one type when it genuinely is more than one thing. The same logic applies here: if a page’s entity truthfully is both an application and a generically sellable good, co-typing (or a @graph with both nodes) can be the honest answer. Don’t reach for that as a default hedge — do it because the entity actually supports both, and document why.

Reviews and ratings — the eligibility rules that actually matter

Because aggregateRating/review is part of the required set, the ratings rules are load-bearing here, and Google incorporates its general Review snippet guidelines by reference: the aggregateRating and review docs both say to “Follow the Review snippet guidelines and list of required and recommended” properties. The rules that bite:

  • Ratings must come from real users. Google: “Ratings must be sourced directly from users.”
  • Don’t pull in other sites’ ratings. Google: “Don’t aggregate reviews or ratings from other websites.”
  • If you show individual reviews, also show an aggregate. Google: “If you include multiple individual reviews, also include an aggregate rating of the individual reviews.”

One nuance worth getting right, because it’s easy to over-state. There’s a self-serving-reviews ineligibility rule that gets quoted a lot — “If the entity that’s being reviewed controls the reviews about itself, their pages that use LocalBusiness or any other type of Organization structured data are ineligible for star review feature.” Note what it’s scoped to: LocalBusiness/Organization markup. Google’s review-snippet docs list SoftwareApplication among the normal reviewable item types (alongside Product, Book, Course, Game, Movie, Recipe, and others), and it is not swept into that specific LocalBusiness/Organization ban. So app schema ratings on your own page are eligible — but that’s not a loophole. They still have to be genuine and user-sourced, and Google’s broader fake-review enforcement (removal at scale, spam policies, manual actions) applies to app ratings just like everything else.

Which leads to the warning I want to make loudly, because most competitor guides skip it entirely: fabricated, incentivized, or editorially-curated ratings are a manual action risk, not just a validation problem. Google’s own guidelines section on the Software App page ties back to Search Essentials and the general structured-data policies: “If your site violates one or more of these guidelines, then Google may take manual action against it. Once you have remedied the problem, you can submit your site for reconsideration.” And it’s worth understanding how much a rich-result manual action can escalate — see the Quotes tab for Danny Sullivan’s general statement that a rich-result manual action can lead to your rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. being removed and can widen into a broader spam manual action that affects ranking. That’s general rich-result policy, not a SoftwareApplication-specific ruling — but it’s exactly why casually faking app stars is a bad trade.

Other schema.org properties worth knowing — but not required

schema.org gives SoftwareApplication a big property list beyond the required set: downloadUrl, installUrl, fileSize, screenshot, featureList, softwareVersion, permissions, memoryRequirements, storageRequirements, operatingSystem, applicationSubCategory, applicationSuite, and more. A few, with schema.org’s own descriptions:

  • downloadUrl“If the file can be downloaded, URL to download the binary.”
  • fileSize“Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.”
  • permissions“Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).”
  • screenshot“A link to a screenshot image of the app.”

These are all valid and can help other consumers (AI agents, aggregators, your own tooling) understand the app — but none of them are required or recommended by Google’s Software App rich-result docs, and none of them affect rich-result eligibility. I’m calling this out because third-party guides routinely pad their “requirements” lists with downloadUrl, screenshot, and fileSize to look comprehensive, leaving readers polishing fields that do nothing for the snippet they’re chasing. Add them if they’re useful for other reasons; don’t add them thinking they’ll earn or improve the rich result.

Bing and other engines

Bing supports schema.org and JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. broadly and validates markup through its Markup Validator, but it doesn’t publish a dedicated “Software App” required/recommended property table or a distinct app rich-result surface the way Google does. So schema.org/SoftwareApplication is valid, generically-supported markup on Bing — there’s just no bespoke Bing app rich result to target. Bing recognizing the same vocabulary isn’t feature parity with Google’s Software App result: don’t assume the same markup earns you an equivalent rating/price/OS snippet on Bing, since Bing hasn’t documented that it builds one.

Where this sits in the bigger picture

SoftwareApplication is one type in the wider structured data / schema markupSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. world, and the ratings mechanics it leans on are shared with the review and aggregateRating vocabularies. For a paid app, the Product schema article is its closest neighbor and the place to go when you decide the item really is a generic sellable good rather than the application itself. And if your implementer is a SaaS marketing team, this markup usually lives on the same pricing and landing pages that the broader SaaS SEO work covers.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.