Home / Guides / SoftwareApplication schema
Structured data guideSoftwareApplication schema for plugins, SaaS and apps
By Anis Harbaoui, SEO specialist · Updated 16 October 2026
SoftwareApplication schema describes a piece of software (name, category, platform, price and ratings) so search engines can show a Software App rich result and connect it to its publisher. There is no “Plugin” type in Schema.org: WordPress plugins, SaaS products and mobile apps all use SoftwareApplication or one of its subtypes.

- Google needs
name,offers.priceand eitheraggregateRatingorreviewfor the rich result. - Use
applicationSubCategoryandsoftwareRequirementsto express “WordPress plugin”. - Only mark up genuine ratings that users can see on the page.
Which type should a plugin or SaaS use?
| Product | Type | Notes |
|---|---|---|
| WordPress plugin | SoftwareApplication | Set applicationSubCategory and softwareRequirements |
| Browser SaaS | WebApplication | Set browserRequirements |
| iOS or Android app | MobileApplication | Set operatingSystem |
| Game | VideoGame | Combine with SoftwareApplication properties |
What does Google require for a Software App rich result?
| Property | Status | Note |
|---|---|---|
name | Required | |
offers.price | Required | Use 0 for free software |
aggregateRating or review | Required (one of) | Must reflect real, visible reviews |
applicationCategory | Recommended | For example BusinessApplication |
operatingSystem | Recommended | For a plugin: WordPress |
Without ratings the markup is still valid and useful for entity understanding, but no rich result will appear.
SoftwareApplication example for a WordPress plugin
{
"@type": "SoftwareApplication",
"@id": "https://example.com/#software",
"name": "Example SEO",
"applicationCategory": "BusinessApplication",
"applicationSubCategory": "WordPress SEO plugin",
"operatingSystem": "WordPress",
"softwareRequirements": "WordPress 6.4+, PHP 8.0+",
"softwareVersion": "1.3.10",
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
"publisher": { "@id": "https://example.com/#organization" },
"about": [
{ "@type": "Thing", "name": "WordPress",
"sameAs": "https://www.wikidata.org/wiki/Q13166" },
{ "@type": "Thing", "name": "Plug-in",
"sameAs": "https://www.wikidata.org/wiki/Q184148" } ]
}publisher references the Organization by @id, and about places the software in the WordPress and plug-in categories on Wikidata.
Free and paid plans: how to mark up pricing
List each plan as an Offer, or use an AggregateOffer with lowPrice and highPrice. Keep prices identical to the visible pricing page: a mismatch is one of the most common reasons markup is ignored.
Further reading: Google software app structured data guide.
Which optional properties are worth adding?
Google lists a few fields as required for the Software App result, and the sections above cover them. The optional ones help Google and other readers classify the product. Add them when you have the facts:
applicationCategory: choose the closest value from Google’s list, for example BusinessApplication or DeveloperApplication.operatingSystem: for a WordPress plugin, a value such as WordPress is clearer than leaving it empty.softwareVersionanddownloadUrl: keep both current or leave them out. A stale version number is worse than none.screenshotandfeatureList: include them only if the screenshots and features are visible on the page.
Can I add ratings I wrote myself?
No. Ratings and reviews in the markup must come from real users and be visible on the page. If your plugin has a public rating somewhere, you can show that figure and link to it. A number you invented, or a score you gave your own product, risks a manual action for spammy structured data.
If you have no real ratings yet, leave the rating fields out and accept that the rich result may not appear. Honest markup with fewer fields is better than complete markup that Google can penalize.
Where do I put the markup in WordPress?
There are three common routes: your SEO plugin’s schema settings, a code snippet that prints JSON-LD for one page, or a custom HTML block. Whichever you use, print the block once and give your Organization the same @id you use elsewhere, so the app markup joins the rest of your graph instead of floating on its own.
Check the rendered page source afterward, not only the editor. Page builders and caches can change what visitors actually receive.
Frequently asked questions
Is there a Plugin type in Schema.org?
No. Use SoftwareApplication with applicationSubCategory and softwareRequirements.
Where should the SoftwareApplication node appear?
On the product’s main page, referenced by @id from related pages.
Can I use WordPress.org ratings?
Yes, if you display them on the page, keep them current and link to the source.
Related guides
What is schema markup?
The full structured data guide.
Organization schema explained
The publisher your software points to.
Why schema is not showing
Diagnose a missing rich result.
NexalSEO prints Organization, WebSite and WebPage markup as one connected graph, so you are not stitching separate blocks together by hand.
See all features