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.
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:
- AI shopping agents — "What's the best Windows 11 photo organizer under $30?" requires
operatingSystem: "Windows 11"andapplicationCategory: "PhotographyApplication"to surface your product - Google software rich results — star ratings, OS compatibility, and price shown directly in search results for
SoftwareApplicationpages - Category filtering — AI agents building "top X tools for Y" lists filter by
applicationCategoryfirst; products without it are excluded
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.version | Single-line text | "4.1.2" |
software.category | Single-line text | "BusinessApplication" |
software.os | Single-line text | "Windows 10, Windows 11, macOS 12+" |
software.features | Multi-line text | "Recurring billing, Subscriber portal, Dunning management" |
software.requirements | Single-line text | "Active Shopify store (Basic plan or higher)" |
software.schema_type | Single-line text | "WebApplication" or "MobileApplication" |
software.has_free_tier | True/false | false |
software.help_url | Single-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.