Structured data guide

SoftwareApplication 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.

SoftwareApplication schema: outline of the sections covered on this page, Type plugin, Google require, SoftwareApplication example, Free paid
SoftwareApplication schema at a glance: the main sections of this page.
Key takeaways
  • Google needs name, offers.price and either aggregateRating or review for the rich result.
  • Use applicationSubCategory and softwareRequirements to express “WordPress plugin”.
  • Only mark up genuine ratings that users can see on the page.

Which type should a plugin or SaaS use?

ProductTypeNotes
WordPress pluginSoftwareApplicationSet applicationSubCategory and softwareRequirements
Browser SaaSWebApplicationSet browserRequirements
iOS or Android appMobileApplicationSet operatingSystem
GameVideoGameCombine with SoftwareApplication properties

What does Google require for a Software App rich result?

PropertyStatusNote
nameRequired
offers.priceRequiredUse 0 for free software
aggregateRating or reviewRequired (one of)Must reflect real, visible reviews
applicationCategoryRecommendedFor example BusinessApplication
operatingSystemRecommendedFor 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.

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.
  • softwareVersion and downloadUrl: keep both current or leave them out. A stale version number is worse than none.
  • screenshot and featureList: 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.

Try NexalSEO free

NexalSEO prints Organization, WebSite and WebPage markup as one connected graph, so you are not stitching separate blocks together by hand.

See all features