SoftwareApplication schema incomplete: add name, offers or rating
SoftwareApplication schema is missing name, offers.price, or a rating/review — required for Google's app rich result. VideoGame types must be co-typed with SoftwareApplication. Find incomplete app markup free.
What it means
This page has SoftwareApplication, MobileApplication, WebApplication, or VideoGame JSON-LD but is missing a field Google needs for the app rich result: name, or at least one of offers / aggregateRating / review. Recommended fields applicationCategory and operatingSystem route the listing to relevant queries. Reported as a notice — an advisory nudge, not a blocker.
Why it matters
Google's app rich result shows the app name, price, star rating, and platform directly in search. name is the displayed title. Google needs at least one of offers (with a numeric price — free apps must set 0 explicitly, and priceCurrency is required when price is non-zero), aggregateRating (with ratingValue and ratingCount), or review; with none of the three, the rich result is suppressed. A common, catchable mistake is the VideoGame co-type rule: a standalone "@type": "VideoGame" is not eligible — it must be co-typed as ["VideoGame", "SoftwareApplication"].
How to fix it
- Confirm
nameis present and matches the app name shown on the page. - Add an
offersobject with a numericprice(set0for free apps) andpriceCurrencyfor any non-zero price, OR anaggregateRating/review. - For a rating, use
aggregateRatingwithratingValueandratingCount. - For a
VideoGame, add"SoftwareApplication"to the@typearray. - Add
applicationCategory(e.g.FinanceApplication) andoperatingSystemto widen placement. - Validate with Google's Rich Results Test.
When it's not a problem
An app that has genuinely never been reviewed will lack rating data — the rich result simply won't appear until a rating or review exists; this reflects the real eligibility state, not a false alarm. If a free app already sets offers.price to 0 and the rule still fires, confirm price sits inside an Offer node (not at the top level), which static analysis can misread. It does not overlap with schema.invalid.
How common is it?
62 audited sites in our corpus currently show this issue. The breakdowns below show which platforms, gatekeepers, verticals and countries are most exposed.
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.