Structured Data Guide

Shopify Software Application Schema: SoftwareApplication JSON-LD for Digital Product Stores

Shopify stores selling software, plugins, Figma templates, WordPress themes, or digital tools treat their products as generic downloads. AI shopping agents answering "best Mac photo editor under $40" or "Shopify plugin for subscription billing" can only match your listing if you declare it as a SoftwareApplication — not just a product.

TL;DR Add a SoftwareApplication JSON-LD block alongside your Product block on software product pages. Essential properties: operatingSystem, applicationCategory, softwareVersion, downloadUrl, featureList, and aggregateRating. Use the subtype WebApplication for SaaS and MobileApplication for apps. Store software metadata in Shopify metafields and render conditionally from product.liquid.

Why SoftwareApplication Schema Matters for Digital Product Stores

The Shopify digital products market has exploded — templates, plugins, presets, scripts, tools, and standalone apps are all commonly sold through Shopify stores. But most of these stores are invisible to the discovery channels that matter most for software buyers:

Software-specific properties don't belong in generic Product markup — they belong in SoftwareApplication, which schema.org specifically designed for this purpose.

SoftwareApplication Subtypes

Subtype Use For Extra Properties
SoftwareApplication Desktop apps, downloadable software, plugins, scripts Base type — all properties available
WebApplication Browser-based SaaS tools, web apps accessed by URL Adds browserRequirements (e.g., "Requires JavaScript")
MobileApplication Native iOS or Android apps distributed via Shopify Adds applicationSuite and supportingData

SoftwareApplication Schema Properties Reference

Property Type Description
operatingSystem Text Compatible OS: "Windows 10, Windows 11", "macOS 14+", "iOS 16+", "Cross-platform"
applicationCategory Text or URL App Store category name: "DesignApplication", "ProductivityApplication", "DeveloperApplication"
softwareVersion Text Current version string: "3.2.1", "2026.06"
downloadUrl URL Direct download URL (post-purchase) or the purchase/download page URL
featureList Text or URL Free-text list or URL to a features page — drives feature-comparison queries
softwareRequirements Text System requirements: "Requires 8GB RAM, 64-bit processor"
softwareHelp CreativeWork or URL Link to documentation, help center, or user guide
releaseNotes Text or URL Changelog URL or text summary of latest release
screenshot ImageObject or URL UI screenshots — shown in Google software rich results
isAccessibleForFree Boolean true if a free tier or free trial exists
installUrl URL Direct installation URL (for browser extensions, app store links)
applicationSuite Text Suite this app belongs to: "Adobe Creative Cloud", "Microsoft 365"
countriesSupported Text ISO 3166 country codes where available (for geo-restricted software)
countriesNotSupported Text Countries where the software is not available

SoftwareApplication JSON-LD Example: Shopify Plugin

/* Product block (commerce signals) */
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "SubscribeFlow — Shopify Subscription Plugin",
  "description": "Add subscription billing to any Shopify product in minutes. Supports recurring orders, pause/skip flows, dunning management, and revenue recovery. One-time purchase, lifetime updates.",
  "image": "https://your-store.myshopify.com/cdn/shop/products/subscribeflow-screenshot.jpg",
  "brand": {"@type": "Brand", "name": "SubscribeFlow"},
  "offers": {
    "@type": "Offer",
    "price": "49.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://your-store.myshopify.com/products/subscribeflow"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "184"
  }
}

/* SoftwareApplication block (software signals) */
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "SubscribeFlow",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Shopify (web-based)",
  "softwareVersion": "4.1.2",
  "datePublished": "2024-03-01",
  "dateModified": "2026-05-18",
  "description": "Shopify plugin that adds subscription and recurring billing capabilities. Supports weekly, monthly, and annual billing cycles, subscriber portal, pause/skip, dunning, and revenue analytics.",
  "featureList": "Recurring billing, Subscriber portal, Pause/skip flows, Dunning management, Revenue recovery, Analytics dashboard, API access",
  "softwareRequirements": "Active Shopify store (Basic plan or higher)",
  "downloadUrl": "https://your-store.myshopify.com/products/subscribeflow",
  "screenshot": [
    {
      "@type": "ImageObject",
      "url": "https://your-store.myshopify.com/cdn/shop/products/subscribeflow-dashboard.jpg",
      "caption": "SubscribeFlow analytics dashboard"
    },
    {
      "@type": "ImageObject",
      "url": "https://your-store.myshopify.com/cdn/shop/products/subscribeflow-setup.jpg",
      "caption": "One-click product subscription setup"
    }
  ],
  "isAccessibleForFree": false,
  "offers": {
    "@type": "Offer",
    "price": "49.00",
    "priceCurrency": "USD",
    "url": "https://your-store.myshopify.com/products/subscribeflow"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "184"
  },
  "author": {
    "@type": "Organization",
    "name": "SubscribeFlow",
    "url": "https://your-store.myshopify.com"
  }
}

WebApplication Example: SaaS Tool

{
  "@context": "https://schema.org",
  "@type": "WebApplication",
  "name": "InvoiceGenius",
  "description": "Automated invoice generation and payment tracking for freelancers and small agencies. Connect your Stripe, PayPal, or bank — invoices auto-generate from project milestones.",
  "applicationCategory": "BusinessApplication",
  "browserRequirements": "Requires modern browser with JavaScript enabled",
  "operatingSystem": "All (web-based, no installation required)",
  "softwareVersion": "2026.06",
  "url": "https://invoicegenius.example.com",
  "isAccessibleForFree": true,
  "offers": [
    {
      "@type": "Offer",
      "name": "Free Plan",
      "price": "0",
      "priceCurrency": "USD",
      "description": "Up to 5 invoices/month, 1 client"
    },
    {
      "@type": "Offer",
      "name": "Pro Plan",
      "price": "12.00",
      "priceCurrency": "USD",
      "priceSpecification": {
        "@type": "UnitPriceSpecification",
        "price": "12.00",
        "priceCurrency": "USD",
        "referenceQuantity": {"@type": "QuantitativeValue", "value": 1, "unitCode": "MON"}
      },
      "description": "Unlimited invoices, unlimited clients, payment reminders, analytics"
    }
  ]
}

Shopify Liquid Template: SoftwareApplication JSON-LD

{% comment %} product.liquid — SoftwareApplication JSON-LD for digital/software products {% endcomment %}

{% assign sw_version = product.metafields.software.version.value %}
{% if sw_version %}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": {{ product.metafields.software.schema_type.value | default: "SoftwareApplication" | json }},
  "name": {{ product.title | json }},
  "description": {{ product.description | strip_html | truncate: 800 | json }},
  "applicationCategory": {{ product.metafields.software.category.value | json }},
  "operatingSystem": {{ product.metafields.software.os.value | json }},
  "softwareVersion": {{ sw_version | json }},
  "dateModified": {{ product.updated_at | date: "%Y-%m-%d" | json }},
  "featureList": {{ product.metafields.software.features.value | json }},
  "softwareRequirements": {{ product.metafields.software.requirements.value | json }},
  {% assign sw_help_url = product.metafields.software.help_url.value %}
  {% if sw_help_url %}
  "softwareHelp": {{ sw_help_url | json }},
  {% endif %}
  "downloadUrl": "https://{{ shop.domain }}{{ product.url }}",
  "isAccessibleForFree": {{ product.metafields.software.has_free_tier.value | default: false }},
  "offers": {
    "@type": "Offer",
    "price": "{{ product.price | money_without_currency | remove: ',' }}",
    "priceCurrency": {{ shop.currency | json }},
    "availability": {% if product.available %}"https://schema.org/InStock"{% else %}"https://schema.org/OutOfStock"{% endif %},
    "url": "https://{{ shop.domain }}{{ product.url }}"
  },
  "author": {
    "@type": "Organization",
    "name": {{ shop.name | json }},
    "url": "https://{{ shop.domain }}"
  }
  {% if product.metafields.reviews.rating %}
  ,"aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "{{ product.metafields.reviews.rating.value }}",
    "reviewCount": "{{ product.metafields.reviews.rating_count.value }}"
  }
  {% endif %}
}
</script>
{% endif %}

Required metafields for software products

Metafield key Type Example value
software.versionSingle-line text"4.1.2"
software.categorySingle-line text"BusinessApplication"
software.osSingle-line text"Windows 10, Windows 11, macOS 12+"
software.featuresMulti-line text"Recurring billing, Subscriber portal, Dunning management"
software.requirementsSingle-line text"Active Shopify store (Basic plan or higher)"
software.schema_typeSingle-line text"WebApplication" or "MobileApplication"
software.has_free_tierTrue/falsefalse
software.help_urlSingle-line text (URL)"https://docs.yourapp.com"

Common SoftwareApplication Schema Mistakes

Mistake Effect Fix
Using only Product @type for software products All software-specific signals (OS, version, category) invisible to AI agents and Google software rich results Add a separate SoftwareApplication block alongside Product on software product pages
Setting operatingSystem to "All" or "Any" AI agents filtering "Mac software" or "Windows only" will not match your product List each supported OS explicitly: "Windows 10, Windows 11, macOS 13, macOS 14"
Omitting softwareVersion and dateModified AI agents assessing recency ("actively maintained software") can't determine last update Always include softwareVersion and set dateModified to the last release date
Missing featureList Feature-comparison queries ("software with X feature") can't match your product Add featureList as a comma-separated string of key features
Omitting screenshot images Google software rich results won't show UI screenshots in search results Add 2-3 screenshot ImageObject entries showing the actual product UI

CatalogScan Software Schema Checks

CatalogScan's AI Readiness scan detects Shopify stores selling digital products — software, plugins, templates, presets — and checks whether product pages include SoftwareApplication structured data alongside Product blocks. Stores missing SoftwareApplication markup on software products receive a software-signal gap warning. The scan validates: operatingSystem specificity (flags "All" as insufficient), softwareVersion presence, applicationCategory using recognized category values, and screenshot ImageObject entries.

Related guides: Digital product delivery schema · Book product schema · Ecommerce product schema overview · Shopify schema markup guide

FAQ

Should I use SoftwareApplication or Product schema for software sold on Shopify?

Use both. Product handles commerce signals (price, availability, seller). SoftwareApplication handles software-specific signals (OS, version, category, features, screenshots). AI agents and Google software rich results process both blocks independently.

What applicationCategory values can I use?

Use Apple App Store category names: BusinessApplication, DesignApplication, DeveloperApplication, EducationalApplication, FinanceApplication, GraphicsApplication, ProductivityApplication, UtilitiesApplication, VideoApplication, MusicApplication, PhotographyApplication, and others. You can also use free-text for niche categories not covered by this list.

What's the difference between SoftwareApplication, WebApplication, and MobileApplication?

All are subtypes of SoftwareApplication. Use WebApplication for browser-based SaaS accessed by URL. Use MobileApplication for native iOS/Android apps. Use SoftwareApplication (base type) for desktop installable software, plugins, or tools that don't fit the web/mobile subtypes. Multi-platform products use the base SoftwareApplication type and list all OS values in operatingSystem.

How do I handle freemium pricing in SoftwareApplication schema?

Set isAccessibleForFree: true to signal that a free tier exists. In the offers array, include two Offer objects — one with price 0 describing free tier limitations, and one with the paid tier price. This lets AI agents surface your product for "free project management tool" queries while also matching paid-tier searches.

Do screenshots in SoftwareApplication schema appear in Google search results?

Yes. Google can show UI screenshots from the screenshot property in software rich results. Use ImageObject entries with url and caption for each screenshot. 2-4 screenshots showing the core UI are recommended — they increase click-through rate substantially compared to software listings without screenshots.