InsightsTechnical SEO

Structured data: the JSON-LD that tells Google what your app is

Schema.org markup gives search engines structured facts — name, category, pricing, rating — instead of prose to interpret. A generated app ships with none. Here are the two schemas that matter most for a launched app and how to add them.

Aug 8, 2026 · 6 min read

The short version

Structured data is JSON-LD in your page's <head> that tells Google exactly what your app is, who made it, and what it costs — unambiguous facts instead of prose it has to interpret. A generated app ships with none. The two schemas that produce the most visible results are Organization (powers your Knowledge Panel) and SoftwareApplication (powers rich results with pricing and category).

What structured data looks like

It's a <script> block with type="application/ld+json" in your <head>. Google reads it, validates it, and uses the facts inside to enrich your search result:

SoftwareApplication JSON-LDhtml
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Tabby",
  "applicationCategory": "FinanceApplication",
  "operatingSystem": "Web",
  "description": "Split shared expenses with friends.",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  }
}
</script>

The two schemas that matter most

Organization

The Organization schema tells Google who built the app. It powers the Knowledge Panel — the info box that appears on the right side of search results for branded queries. Without it, Google guesses from scattered mentions; with it, you control the name, logo, description, social profiles and contact point.

One addition that's especially relevant for a new product: sameAs links to your Wikidata item, X/Twitter, LinkedIn, GitHub and Instagram. These tell Google's Knowledge Graph that your app is a distinct entity from any other company that shared the name.

SoftwareApplication

The SoftwareApplication schema tells Google your product is an application, not a blog, a store or a corporate site. It can power a rich result with your app's name, category, rating, pricing, and supported operating systems. This is the schema that distinguishes a product launch from a content page.

  • `applicationCategory` — Use one of Schema.org's recognized categories. DeveloperApplication for dev tools, FinanceApplication for fintech, HealthApplication for health.
  • `operatingSystem`Web for a browser app, Android, iOS for mobile.
  • `offers` — An AggregateOffer or individual Offer with price and priceCurrency. Even free apps should declare "price": "0" — it tells Google the app exists in a pricing tier.
  • `aggregateRating` — If you have reviews. Don't fabricate them — fake reviews in structured data are a manual-action offense.

How generated apps break it

The three most common failures:

MistakeResultFix
No JSON-LD at allGoogle has no structured facts about your app — it guesses from proseAdd Organization + SoftwareApplication schemas
JSON-LD injected by JavaScriptGoogle's first pass sees no structured data; the JS-rendered block may not be picked up on the second passServe JSON-LD in the static HTML, before any JS loads
Schema with invalid fields or missing required propertiesGoogle ignores the entire block — one bad field invalidates the whole schemaValidate with Google's Rich Results Test

How to validate

  1. 1

    Google's Rich Results Test

    Go to search.google.com/test/rich-results, paste your URL. It shows which schemas Google detected and whether they're valid.

  2. 2

    Schema.org Validator

    Paste your JSON-LD into validator.schema.org. It checks every field against the Schema.org spec.

  3. 3

    Check the raw HTML

    View Page Source and search for application/ld+json. If it's absent, no crawler sees it.

Actuant checks whether JSON-LD is present in the raw HTML, validates the Organization and SoftwareApplication schemas against required fields, and reports what's missing.