SoftwareApplication Schema for AI Search
SoftwareApplication is the schema.org type that lets AI search engines extract a software product's name, platform, category, rating, and price; Google's required pairing of AggregateRating (or Review) plus Offer makes the page eligible for rich results, and operatingSystem, applicationCategory, screenshot, and softwareVersion make the product citable by ChatGPT, Perplexity, and.
TL;DR
Mark up every product or app page with SoftwareApplication JSON-LD that includes name, operatingSystem, applicationCategory, an AggregateRating or Review, and an Offer with price and priceCurrency. Add screenshot, softwareVersion, featureList, and downloadUrl for AI extraction. Validate with Google's Rich Results Test before shipping.
Scope
This specification covers SoftwareApplication and its subtypes (WebApplication, MobileApplication, VideoGame) for AI search use cases. It applies to SaaS landing pages, app store mirror pages, browser extensions, and desktop tools.
It does not cover Product schema for physical goods or Service schema for non-software services.
Required properties
Per Google Search Central:
- name (Text) — The product name customers search for, not an internal codename.
- aggregateRating OR review — At least one is required for review-snippet rich-result eligibility. Both can be present together.
- offers (Offer) — Must include price and priceCurrency. Use "price": "0" for free apps, not omit.
For strict schema.org validity, name is the only universally required field. Google's enforcement adds the rating + offer requirements for rich-result display.
Recommended properties
These fields are not required for validation, but each one materially improves AI extraction:
- operatingSystem (Text) — Comma-separated list (e.g., "iOS, Android", "Windows 10, macOS, Linux", "Web Browser").
- applicationCategory (Text) — One of the schema.org enumerated categories: BusinessApplication, DeveloperApplication, DesignApplication, EducationalApplication, GameApplication, LifestyleApplication, MultimediaApplication, ProductivityApplication, SecurityApplication, SocialNetworkingApplication, UtilitiesApplication, etc.
- applicationSubCategory (Text) — Free-text refinement (e.g., "Project Management").
- screenshot (URL) — At least one product screenshot URL.
- featureList (Text or URL) — Bulleted feature list as text or a URL pointing to the feature page.
- softwareVersion (Text) — Current released version.
- fileSize (Text) — Install size (e.g., "42 MB").
- downloadUrl (URL) — Direct download or app store URL.
- installUrl (URL) — Often the same as downloadUrl but reserved for one-click install flows.
- releaseNotes (Text or URL) — Changelog for the current version.
- memoryRequirements / processorRequirements / storageRequirements — System requirements.
- author / publisher (Organization) — Publisher entity for AI disambiguation.
Subtype selection
- WebApplication — Anything that runs in a browser (SaaS dashboards, web apps).
- MobileApplication — iOS or Android apps with a separate installUrl for each platform.
- VideoGame — Games (use applicationCategory: GameApplication).
- SoftwareApplication (base) — Desktop tools, CLI utilities, and cross-platform packages where no subtype fits.
Subtypes inherit all parent fields and add domain-specific properties (browserRequirements on WebApplication, carrierRequirements on MobileApplication).
Working JSON-LD examples
B2B SaaS
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "Acme Project Manager",
"operatingSystem": "Web Browser",
"applicationCategory": "BusinessApplication",
"applicationSubCategory": "Project Management",
"browserRequirements": "Requires JavaScript. Chrome 100+, Safari 15+, Firefox 100+.",
"softwareVersion": "4.2.0",
"screenshot": "https://example.com/screenshots/dashboard.png",
"featureList": "Tasks, Gantt chart, Time tracking, Reporting",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.7,
"ratingCount": 1842
},
"offers": {
"@type": "Offer",
"price": "15.00",
"priceCurrency": "USD"
},
"publisher": {
"@type": "Organization",
"name": "Acme Inc.",
"url": "https://acme.example.com"
}
}Mobile app (free)
{
"@context": "https://schema.org",
"@type": "MobileApplication",
"name": "FocusFlow",
"operatingSystem": "iOS, Android",
"applicationCategory": "ProductivityApplication",
"installUrl": "https://apps.apple.com/app/id123456789",
"screenshot": [
"https://example.com/screens/ios-1.png",
"https://example.com/screens/android-1.png"
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.5,
"ratingCount": 25430
},
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
}
}Browser extension
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Tab Saver",
"operatingSystem": "Chrome, Firefox, Edge",
"applicationCategory": "BrowserApplication",
"softwareVersion": "2.1.0",
"fileSize": "1.2 MB",
"downloadUrl": "https://chrome.google.com/webstore/detail/abcdef",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.8,
"ratingCount": 312
},
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
}
}Validation
- Google Rich Results Test at https://search.google.com/test/rich-results — The authoritative check for review-snippet eligibility.
- Schema.org Validator at https://validator.schema.org/ — Catches generic syntax errors.
- Google Search Console — Software App report — Production telemetry once indexed.
Always test against a real production URL; cached or pre-render variants can hide bugs.
Common pitfalls
- Omitting priceCurrency — Even free apps need priceCurrency to be valid. Use any ISO 4217 currency code paired with "price": "0".
- Inflated ratingCount — Google flags suspicious aggregate ratings. Match what is publicly visible on the page.
- Wrong subtype — Tagging a web app as MobileApplication because it has a mobile layout produces inconsistent extraction.
- Missing screenshots — AI Overviews thumbnail surfaces depend on screenshot. Without it, your product appears as a text-only snippet.
- Stale softwareVersion — Hard-coded version numbers age fast. Generate at build time.
- Aggregate rating without on-page review content — Per Google's review-snippet guidance, the rating must reflect content visible to users on the same page.
FAQ
Q: Is SoftwareApplication or Product better for SaaS?
SoftwareApplication. It is the dedicated schema.org type for software and inherits from CreativeWork, not Product. It exposes app-specific fields (operatingSystem, applicationCategory) that AI engines use for entity resolution.
Q: Do I need both aggregateRating and review?
No, but having both is fine. Google requires at least one for review-snippet rich-result eligibility. AggregateRating plus a few representative Review items provide the strongest signal.
Q: What applicationCategory values does Google accept?
Any schema.org enumerated value (e.g., BusinessApplication, GameApplication, ProductivityApplication). Free-text categories work in some validators but produce weaker results in Google Search.
Q: Does ChatGPT use SoftwareApplication schema?
ChatGPT and other LLM-based search products extract structured data when present and use it to enrich citations. Properties like name, applicationCategory, and featureList improve both the chance of citation and the quality of the citation summary.
Q: How should I handle multi-platform pricing?
Use an array of Offer objects, each with its own price, priceCurrency, and optional priceSpecification. For tiered SaaS plans, use AggregateOffer with lowPrice / highPrice plus per-tier nested Offer objects.
Q: Can I include a free trial in the Offer?
Yes. Use priceSpecification with a UnitPriceSpecification that has price: 0 and validThrough set to the trial end date, alongside the regular price for paid usage.
Bài viết liên quan
AggregateRating Schema for AI Citations
AggregateRating schema specification for AI citations: required fields, decimal handling, parent-type pairings (Product, Course, SoftwareApplication, LocalBusiness), Google policy violations.
MonetaryAmount Schema for AI Citations
MonetaryAmount schema specification for AI citations: required fields, ISO 4217 currency, value vs minValue/maxValue, validFrom/validThrough, and embedding in JobPosting, Offer, MonetaryGrant.
Recipe FAQ Pairs Schema for AI Search
Specification for pairing Recipe and FAQPage JSON-LD schema on a single page so AI Overviews and Perplexity cite both the recipe and its Q&A pairs.