Skip to content
AISO
← Back to blog

JSON-LD Structured Data for AI Visibility

By AISO11 min read

Introduction

For years, structured data was a Google rich-results play — add some schema, maybe win a star rating or a sitelink, move on. In 2026, that's no longer the main reason to bother.

JSON-LD has become one of the clearest signals AI engines use to understand what your page actually is, who's behind it, and what facts on it are safe to cite. ChatGPT, Gemini, Claude, Perplexity, and Google's AI Overviews don't "read" your site the way a human does — they parse it, and unstructured HTML leaves a lot of room for a model to misread your brand name, miss your pricing, or skip your page entirely in favor of a competitor whose markup made the same information unambiguous.

This guide covers the five schema types that matter most for AI visibility, gives you copy-paste JSON-LD templates for each, shows you how to validate them, and covers how to generate this markup automatically if you'd rather not write it by hand for every page on your site.

Why JSON-LD matters for AI citations in 2026 — not just Google rich results

Structured data does two jobs at once, and it's worth separating them.

The old job: tell Google's crawler enough about a page to qualify for an enhanced search result — star ratings, FAQ accordions, breadcrumbs. This is still useful, but it's a traffic-and-CTR play, not a comprehension play.

The new job: give AI engines an unambiguous, machine-readable version of the facts on your page, so a model doesn't have to infer them from prose. When ChatGPT or Perplexity is constructing an answer, it's working from extracted facts, not vibes — and JSON-LD is the cleanest possible source of those facts. A paragraph that says "AISO is an AI Search Optimization platform built for SEO agencies and SaaS teams" requires the model to parse sentence structure and infer relationships. An Organization schema block with name, description, and knowsAbout properties states the same thing as structured key-value data the model can lift directly, with no ambiguity about what's the subject and what's the description.

This matters more as engines lean harder on structured signals to resolve entities. AI models build something like an internal knowledge graph as they crawl and process content — who you are, what you make, how you relate to other entities in your category. Pages with clean Organization, Product, and Article markup give that graph-building process something solid to anchor to. Pages without it force the model to guess, and a model that has to guess is a model that's more likely to cite a competitor whose page made the same information explicit.

The practical effect: structured data is now a citation-readiness signal as much as a rich-result signal. If your structured data coverage is missing, you're not just losing a star rating — you're making yourself harder for an AI engine to trust as a source.

The 5 schema types that matter most

Out of the dozens of schema.org types available, five do most of the work for AI visibility on a typical business website:

  • Organization — establishes who you are as an entity: brand name, logo, description, social profiles, and key attributes AI engines use for entity resolution.
  • WebSite — confirms your domain's identity and (optionally) enables sitelinks search box behavior; it's a small but standard signal that reinforces your site as a coherent, identifiable property.
  • FAQPage — wraps your question-and-answer content in a format AI engines can lift directly into a response. This is consistently one of the most citable formats because it's already structured as a question paired with a direct answer.
  • SoftwareApplication — for SaaS and software products, this tells AI engines what category your product belongs to, what it costs, and what platform it runs on — directly relevant to "best tool for X" queries.
  • Article — establishes authorship, publish date, and headline for blog and resource content, which feeds into the trust and freshness signals AI engines weigh when deciding which sources to treat as current and credible.

Below is a ready-to-use JSON-LD template for each. Replace the placeholder values with your own and drop the script block into the <head> of the relevant page.

1. Organization schema

Place this on your homepage or about page.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Company Name",
  "url": "https://www.yoursite.com",
  "logo": "https://www.yoursite.com/logo.png",
  "description": "A one-sentence, factual description of what your company does and who it's for.",
  "sameAs": [
    "https://www.linkedin.com/company/yourcompany",
    "https://twitter.com/yourcompany",
    "https://www.crunchbase.com/organization/yourcompany"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "email": "hello@yoursite.com",
    "contactType": "customer support"
  }
}
</script>

The sameAs array matters more than it looks — linking to your LinkedIn, Crunchbase, or other verified profiles helps AI engines cross-reference your entity against other sources and confirm you're a real, established organization rather than an ambiguous or unverified name.

2. WebSite schema

Place this on your homepage.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Your Site Name",
  "url": "https://www.yoursite.com",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "https://www.yoursite.com/search?q={search_term_string}",
    "query-input": "required name=search_term_string"
  }
}
</script>

If your site doesn't have an internal search function, drop the potentialAction block and keep just the name and url — the core value here is confirming a single, unambiguous identity for the domain.

3. FAQPage schema

Place this anywhere you have genuine Q&A content — a dedicated FAQ section, a pricing page, or a product page.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is AI Search Optimization?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "AI Search Optimization (AISO) is the practice of making a website visible, understandable, and citable by AI answer engines like ChatGPT, Gemini, and Perplexity, rather than only optimizing for traditional search rankings."
      }
    },
    {
      "@type": "Question",
      "name": "Is the free analysis really free?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. The free plan includes a limited number of analyses per month with teaser results, no credit card or signup required."
      }
    }
  ]
}
</script>

Add one Question/acceptedAnswer pair per FAQ item. Keep answers factual and self-contained — write each one as if it has to stand alone, because that's exactly how an AI engine will lift it.

4. SoftwareApplication schema

Place this on your product or homepage if you sell software.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Your Product Name",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "description": "A factual, one-sentence description of what the product does.",
  "offers": {
    "@type": "Offer",
    "price": "19.00",
    "priceCurrency": "USD",
    "priceValidUntil": "2026-12-31"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "ratingCount": "120"
  }
}
</script>

Only include aggregateRating if you have real review data behind it — fabricated ratings are both a Google guideline violation and the kind of inconsistency that erodes AI trust signals once cross-referenced against third-party review sites.

5. Article schema

Place this on blog posts and long-form resource content.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Your Article Title",
  "author": {
    "@type": "Person",
    "name": "Author Name",
    "url": "https://www.yoursite.com/authors/author-name"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Your Company Name",
    "logo": {
      "@type": "ImageObject",
      "url": "https://www.yoursite.com/logo.png"
    }
  },
  "datePublished": "2026-01-15",
  "dateModified": "2026-06-01",
  "mainEntityOfPage": "https://www.yoursite.com/blog/your-article-slug"
}
</script>

datePublished and dateModified matter more than most teams realize — AI engines weigh content freshness when choosing between otherwise-similar sources, and a visible last-updated date is one of the clearest freshness signals you can give them.

How to validate with Google's Rich Results Test

Writing valid JSON-LD is only half the job — a single misplaced comma or wrong @type value can silently break the whole block. Validate every schema you deploy:

  1. Go to Google's Rich Results Test.
  2. Enter the live URL of the page (or paste the code directly using the "Code" tab).
  3. Run the test and check the results panel for each schema type detected.
  4. Fix any errors flagged in red — these are usually missing required fields. Review (but don't necessarily fix) warnings in yellow — these are often optional fields worth adding for completeness.
  5. Cross-check with the Schema.org Validator as a second pass — it catches some structural issues Google's tool doesn't flag, since Google only validates against the subset of schema.org it actively uses for rich results.

Re-run validation after any template change, and spot-check a sample of pages periodically — schema can silently break after a CMS update, theme change, or migration, often without anyone noticing until visibility quietly drops.

How to auto-generate schema for any page

Hand-writing JSON-LD for five schema types across every important page on a site works for a homepage and a handful of key pages. It doesn't scale to a full blog archive, a product catalog, or a site with dozens of FAQ-eligible pages — and manually maintained schema is exactly the kind of thing that drifts out of sync with the actual page content over time.

This is the gap AISO's Structured Data feature is built to close. Run any page through the free Analyze tool and AISO scans for existing JSON-LD, flags which Organization, Article, FAQ, or Product schema is missing, and generates ready-to-deploy markup tailored to that specific page's actual content — not a generic template you have to hand-edit from scratch.

For FAQ content specifically, the FAQ Generator takes it a step further: it reads your existing page copy and produces AI-optimized question-and-answer pairs — paired with the matching FAQPage schema — directly from content you've already written, so you're not staring at a blank page trying to guess what questions to write.

Common implementation mistakes that quietly break your schema

Even teams that deploy JSON-LD correctly on day one often lose the benefit over time. A few patterns worth checking for specifically:

Schema that contradicts the visible page content. If your Organization schema describes your company one way and your homepage copy describes it another, you're not reinforcing your entity — you're introducing the exact kind of ambiguity structured data is supposed to eliminate. Keep the description, name, and pricing fields in your JSON-LD in sync with what's actually rendered on the page.

Duplicate or conflicting schema blocks. It's common for a CMS plugin to inject its own Organization or Article schema while a hand-coded block also exists in the template — resulting in two competing, sometimes contradictory schema objects on the same page. Audit your rendered HTML (not just your CMS settings) to confirm only one version of each schema type is live.

FAQPage schema that doesn't match visible FAQ content. Google and other engines have penalized sites for marking up Q&A content that isn't actually visible to users on the page. Only wrap content in FAQPage schema that a visitor can actually read on that page — don't use it as a way to stuff in extra questions that exist only in the markup.

Stale dateModified values. A schema block that still says dateModified: 2024-03-01 on a page you've substantially rewritten sends a freshness signal that contradicts reality. Update this field whenever you make a meaningful content change, not just on first publish.

No schema on the pages that actually need it most. Teams often add Organization schema to the homepage and stop there, leaving every individual product, blog, and FAQ page with zero structured data. Comprehensive coverage across your highest-intent pages matters more than perfecting a single schema block on one page.

Each of these is easy to miss by eye and easy to catch with a systematic check — which is true of most structured data problems generally. They're invisible in your normal browsing experience and only show up once you go looking specifically for them, or once an AI engine quietly chooses a competitor's cleaner markup over yours.

The takeaway

Structured data stopped being a "nice to have for rich snippets" the moment AI engines became a primary research channel for buyers. The five schema types above — Organization, WebSite, FAQPage, SoftwareApplication, and Article — cover the core entity, identity, Q&A, and authorship signals that AI engines use to decide whether your page is a trustworthy, citable source.

Start with Organization and FAQPage if you do nothing else; they have the most direct line to how AI engines resolve who you are and what you can answer. Then run a free analysis to see exactly which schema is missing across your site, and how much visibility you're leaving on the table by skipping it.

Published by AISO — the AI visibility platform built for SEO agencies, SaaS founders, content teams, and growth marketers.

Frequently asked questions

Does JSON-LD help with AI citations?
Yes. AI engines use JSON-LD as an unambiguous, machine-readable source of facts about your page — brand name, pricing, Q&A pairs, authorship, and publish dates. Pages with clean structured data are easier for models to trust and cite than pages that force inference from unstructured HTML.
Which schema types matter most for AI visibility?
For most business websites, prioritize Organization, WebSite, FAQPage, SoftwareApplication (for SaaS), and Article (for blog content). Organization and FAQPage typically deliver the fastest citation impact — they anchor entity resolution and question-answer extraction directly.
How do I validate JSON-LD before deploying?
Run every schema block through Google's Rich Results Test using the live URL or Code tab. Fix red errors (usually missing required fields), review yellow warnings for optional improvements, then cross-check with the Schema.org Validator for structural issues Google's tool may miss.
Can I use FAQPage schema for questions not visible on the page?
No. FAQPage schema must match Q&A content that visitors can actually read on the page. Marking up hidden or markup-only questions violates search guidelines and erodes trust signals when engines cross-check visible content against your schema.
Should I include aggregateRating in SoftwareApplication schema?
Only if you have real review data behind it. Fabricated ratings violate Google guidelines and create inconsistencies that AI engines may detect when cross-referencing third-party review sites — which hurts rather than helps citation trust.
How do I generate JSON-LD at scale?
Hand-writing schema works for a homepage and a handful of key pages, but it drifts out of sync quickly across blogs and product catalogs. AISO's Structured Data feature scans any URL, flags missing schema types, and generates page-specific JSON-LD from your actual content.

Find out what AI sees when it reads your site

Free analysis. No credit card. Results in under a minute.

Enter a public page URL to analyze

Join teams using AISO to get cited, recommended, and chosen by AI.