Skip to Content

No SoftwareApplication schema

What Is This Issue

SaaS or app product pages are missing SoftwareApplication schema, preventing display of ratings, pricing, and OS compatibility in Google rich results.

Without SoftwareApplication schema:

  • Your app/software won’t appear in Google rich results
  • Ratings and reviews won’t show for your app
  • Pricing information won’t display in search results
  • OS compatibility won’t be indicated
  • App store links won’t appear in search results
  • Users can’t see app details before clicking

A proper SoftwareApplication schema should include: @type (SoftwareApplication, MobileApplication, WebApplication, or VideoGame), name, operatingSystem, applicationCategory, and optionally offers, aggregateRating, downloadUrl, softwareVersion.

Why Is This Important

SoftwareApplication schema is important for app/software visibility:

  • Rich results: Enables app ratings, pricing, and compatibility to appear in search results
  • App store visibility: Helps your app appear in app store search results
  • OS compatibility: Users can see which operating systems are supported
  • Pricing display: Shows pricing information directly in search results
  • Rating signals: Displays app ratings and review counts
  • AI search readiness: AI engines use SoftwareApplication schema to understand and recommend apps

Resolving this issue improves your SEO health score by ensuring app/software products are properly structured for maximum visibility.

How XeoPix Detects This

XeoPix follows these logical steps to detect missing SoftwareApplication schema:

  1. Detect app/software pages: The crawler identifies pages with:

    • URL patterns (/app, /software, /product, /download)
    • App store links (App Store, Google Play, Microsoft Store)
    • Software/product descriptions
  2. Extract structured data: The crawler looks for JSON-LD, Microdata, or RDFa blocks on the page

  3. Check for SoftwareApplication schema: The crawler verifies if any schema block has:

    • @type set to SoftwareApplication, MobileApplication, WebApplication, or VideoGame
    • Required properties: name, operatingSystem, applicationCategory
  4. Validate schema completeness: If SoftwareApplication schema is found, the crawler checks for:

    • operatingSystem declared
    • applicationCategory declared
    • downloadUrl or app store link present
    • aggregateRating nested in block (if reviews exist)
  5. Trigger conditions: The issue is flagged when:

    • App/software page detected but no SoftwareApplication schema found
    • SoftwareApplication schema exists but operatingSystem is missing
    • SoftwareApplication schema exists but applicationCategory is missing

How To Fix

  1. Identify app/software pages: Look for pages with:

    • URL patterns (/app, /software, /product, /download)
    • App store links (App Store, Google Play, Microsoft Store)
    • Software/product descriptions
  2. Choose the correct subtype:

    • SoftwareApplication: For desktop applications
    • MobileApplication: For iOS/Android apps
    • WebApplication: For SaaS/browser-based applications
    • VideoGame: For games
  3. Add SoftwareApplication JSON-LD structured data to the page’s <head> or before </body>:

    For SaaS/web-based apps:

    { "@context": "https://schema.org", "@type": "WebApplication", "name": "Example SEO Tool", "operatingSystem": "All (Web-based)", "applicationCategory": "BusinessApplication", "offers": { "@type": "Offer", "price": "49.00", "priceCurrency": "USD" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "512" } }

    For mobile apps:

    { "@context": "https://schema.org", "@type": "MobileApplication", "name": "Example Mobile App", "operatingSystem": "iOS, Android", "applicationCategory": "BusinessApplication", "downloadUrl": "https://apps.apple.com/app/example/id123456", "softwareVersion": "2.1.0" }
  4. Include required properties:

    • name: App/software name
    • operatingSystem: Supported operating systems
    • applicationCategory: Category of application (e.g., “BusinessApplication”, “DeveloperApplication”, “EducationApplication”, “FinanceApplication”, “GameApplication”)
  5. Add recommended properties:

    • offers: Pricing information (even for free apps, use "price": "0")
    • aggregateRating: If you have real user reviews
    • downloadUrl: Direct download or app store link
    • softwareVersion: Keep updated on releases
  6. Validate with Google’s Rich Results Test

What We Store

Storage Level

Page Level — This issue is evaluated for each individual URL that contains structured data.


Database Table / Prisma Model

PageStructuredData


Stored Fields

FieldTypeDescription
schemaTypeSchemaTypeThe type of schema (e.g., Organization, Person)
schemaFormatSchemaFormatThe format of the schema (JSON-LD, Microdata, RDFa)
schemaIdentifierString?Unique identifier for the schema
rawJsonJson?The raw JSON-LD or structured data content
schemaErrorsJson?Array of validation errors found in the schema
isValidSchemaBoolean?Whether the schema is valid according to validation
missingFieldsJson?Array of required fields that are missing

Detection Dependencies

  • The following data sources are required to evaluate this issue:
  • HTML Document — The crawler parses the HTML to find structured data (JSON-LD, Microdata, RDFa)
  • Structured Data Validation — The extracted schema is validated against Schema.org definitions
  • Schema Parser — JSON-LD scripts, Microdata attributes, and RDFa markup are parsed

Examples

Example 1: Missing SoftwareApplication Schema on SaaS Product Page

Problematic state:

<!-- SaaS product page without SoftwareApplication schema --> <html> <head> <title>Example SEO Tool - Free Trial</title> </head> <body> <h1>Example SEO Tool</h1> <p>Powerful SEO software for agencies and marketers.</p> <p><strong>Price:</strong> $49/month</p> <p><strong>Platform:</strong> Web-based (All browsers)</p> <button>Start Free Trial</button> </body> </html>

Corrected state:

<!-- SaaS product page with SoftwareApplication schema --> <html> <head> <title>Example SEO Tool - Free Trial</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebApplication", "name": "Example SEO Tool", "operatingSystem": "All (Web-based)", "applicationCategory": "BusinessApplication", "offers": { "@type": "Offer", "price": "49.00", "priceCurrency": "USD" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "512" } } </script> </head> <body> <h1>Example SEO Tool</h1> <p>Powerful SEO software for agencies and marketers.</p> <p><strong>Price:</strong> $49/month</p> <p><strong>Platform:</strong> Web-based (All browsers)</p> <button>Start Free Trial</button> </body> </html>

Example 2: MobileApplication Schema for iOS App

Corrected state:

{ "@context": "https://schema.org", "@type": "MobileApplication", "name": "Example Analytics App", "operatingSystem": "iOS, Android", "applicationCategory": "BusinessApplication", "downloadUrl": "https://apps.apple.com/app/example-analytics/id123456", "softwareVersion": "2.1.0", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "reviewCount": "1024" } }

Example 3: Incomplete SoftwareApplication Schema

Problematic state:

{ "@context": "https://schema.org", "@type": "SoftwareApplication", "name": "Project Management Tool" }

Missing required properties: operatingSystem, applicationCategory

Corrected state:

{ "@context": "https://schema.org", "@type": "WebApplication", "name": "Project Management Tool", "operatingSystem": "All (Web-based)", "applicationCategory": "BusinessApplication", "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD", "description": "Free tier available" } }

Unit Test

Test File

xeopix-crawling-v2/__tests__/seo-audit-checks/structuredDataRichResults/issue-235-softwareapplication-schema.test.js

Purpose

Validates that the crawler correctly validates SoftwareApplication JSON-LD schemas and does not report false positives when the schema is properly formed.

Tested Function

runStructuredDataRichResults()

Issue Information

  • Issue Number: 235
  • Issue Code: softwareapplication_schema_missing
  • Toggle Group: structuredDataRichResults

Test Scenarios

Positive Test Cases

  • Valid SoftwareApplication schema: Page has a SoftwareApplication schema with name and operatingSystem — no issue reported.

Negative Test Cases

None — the test only validates that valid schemas pass.

Boundary Cases

None.

Edge Cases

  • Empty HTML: <html></html> — no crash.

Expected Outcome

Pass

Issue should not be reported when a valid SoftwareApplication schema with required properties is present.

Fail

No negative test cases are defined.

Validation

  • Correct pass-through of valid SoftwareApplication schemas
  • Graceful handling of empty HTML
  • xeopix-crawling-v2/toggleGroups/structuredDataRichResults.js
  • xeopix-crawling-v2/issueCodes.js
  • xeopix-crawling-v2/utils/context.js
  • xeopix-crawling-v2/utils/issues.js
  • xeopix-crawling-v2/utils/schema.js

Coverage Summary

  • Covers valid SoftwareApplication schema detection
  • Covers empty HTML resilience

References

Last updated on