Skip to content
AICite

JSON-LD Organization schema for AI-search

The one <script> tag every homepage needs so ChatGPT, Perplexity, and Gemini know who you are. Copy-paste template, every field explained, and how to verify it parses.

Why AI-search cares about Organization schema

When Perplexity or ChatGPT-with-browsing cites your page in an answer, it needs to attach a brand name and logo to the citation card. The model has two ways to figure out who runs a domain:

  1. Infer it from your <title>, og:site_name, header copy, and footer. Fuzzy, error-prone, and the reason AI answers occasionally attribute your quote to a different company with a similar name.
  2. Read the JSON-LD Organization block. Deterministic, machine-parseable, and unambiguous.

The gap between these two is the difference between "as Acme Corp explains…" and "as a company called Acme (which we couldn't confirm) suggests…". JSON-LD closes it.

The copy-paste template

Paste this inside <head> on your homepage, with your own values swapped in. Every field below is either required or high-signal — nothing here is padding.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://yourdomain.com/#organization",
  "name": "Your Company",
  "legalName": "Your Company, Inc.",
  "url": "https://yourdomain.com/",
  "logo": "https://yourdomain.com/logo.png",
  "description": "One-sentence description of what you do.",
  "foundingDate": "2019-01-15",
  "sameAs": [
    "https://twitter.com/yourhandle",
    "https://www.linkedin.com/company/yourcompany",
    "https://github.com/yourorg",
    "https://en.wikipedia.org/wiki/Your_Company"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "[email protected]",
    "url": "https://yourdomain.com/contact/"
  }
}
</script>

Every field, explained

Field Required? What LLMs use it for
@id Recommended A stable URL identifier for this entity. Lets other schema blocks reference the organization by ID instead of duplicating it.
name Required The name AI citations will use. Matches your marketing brand — not the legal entity.
legalName Optional The registered legal entity (e.g. "Acme Corp, Inc."). Helps LLMs match your brand to SEC filings, press releases, and Wikipedia.
url Required Canonical homepage. Make sure this matches your actual live domain and includes the trailing slash.
logo Required Absolute URL to a square logo image. Perplexity uses this in citation cards; Google surfaces it in knowledge panels. PNG or SVG, minimum 112×112 for Google's rich results.
description Recommended One sentence. This is what LLMs paraphrase when a user asks "what is Acme Corp?". Write it deliberately.
foundingDate Optional ISO date (YYYY-MM-DD). Helps disambiguate you from newer or older companies with similar names.
sameAs Critical Array of canonical URLs for the same entity on other platforms. Twitter/X, LinkedIn, GitHub, Crunchbase, and — if you have one — your Wikipedia page. This is the single highest-leverage field: LLMs cross-reference these URLs to confirm your identity.
contactPoint Optional Structured contact info. Useful when someone asks "how do I contact Acme?" — the LLM can quote the email or link the contact page directly.

Common variants: LocalBusiness, Corporation, OnlineStore

Organization is the base type. If a more specific subtype describes you accurately, use it — the extra information helps LLMs answer more specific questions about you.

LocalBusiness (with a physical address)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Acme Coffee Roasters",
  "url": "https://acmecoffee.example/",
  "logo": "https://acmecoffee.example/logo.png",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "42 Bean Street",
    "addressLocality": "London",
    "postalCode": "E1 6AN",
    "addressCountry": "GB"
  },
  "telephone": "+44-20-1234-5678",
  "openingHours": "Mo-Fr 07:00-18:00, Sa-Su 08:00-16:00"
}
</script>

Corporation (public / regulated entity)

{
  "@context": "https://schema.org",
  "@type": "Corporation",
  "name": "Acme Holdings",
  "legalName": "Acme Holdings PLC",
  "tickerSymbol": "ACME",
  "url": "https://acme.example/",
  "logo": "https://acme.example/logo.png"
}

Multiple types (Organization + OnlineStore)

{
  "@context": "https://schema.org",
  "@type": ["Organization", "OnlineStore"],
  "name": "Acme Shop",
  "url": "https://shop.acme.example/",
  "logo": "https://shop.acme.example/logo.png"
}

Verify it's actually parsed

  1. View source, find the block. Open your homepage, view source (Ctrl-U), search for application/ld+json. Confirm there's exactly one Organization block (multiple confuses parsers).
  2. Run the Schema.org validator. Paste your homepage URL at validator.schema.org. It parses the JSON-LD and lists any errors — missing required fields, malformed URLs, wrong data types.
  3. Run Google's Rich Results Test. search.google.com/test/rich-results — same idea, plus it shows how Google's parser sees your entity specifically.
  4. Curl-fetch it as an LLM would. curl -A "PerplexityBot" https://yourdomain.com/ | grep -A 30 'application/ld+json' — proves the block is actually served to crawlers and not hidden behind a client-side hydration boundary.

The 5 mistakes that make LLMs skip your schema

  • Injecting JSON-LD via JavaScript after page load. Some crawlers execute JS, many don't. Server-render the <script> tag or ship it as static HTML.
  • Relative URLs in url, logo, or sameAs. LLMs parse these into a knowledge graph — relative URLs break that. Always absolute.
  • Multiple conflicting Organization blocks. If your CMS auto-generates one and your theme also has one, parsers will pick one non-deterministically. Audit for duplicates.
  • Missing sameAs. Without it, LLMs have nothing to cross-reference. Even three URLs (Twitter, LinkedIn, GitHub) massively improves brand disambiguation.
  • Malformed JSON. A single trailing comma silently breaks the entire block. Validate before shipping. In-place edits on production HTML are how this happens.

Check your site now

FAQ

Should I put JSON-LD on every page or just the homepage?

Organization schema belongs on the homepage only. Sub-pages use Article, Product, BreadcrumbList, or FAQPage depending on content. Repeating the full Organization block on every page is wasteful and can produce inconsistent knowledge-graph entries if the copies drift.

Does JSON-LD affect Google search ranking?

Not directly. Google uses it to build knowledge-panel cards and decide rich-result eligibility, which affects clickthrough. AI answer engines like Perplexity and ChatGPT use it for citation-card correctness. Neither treats it as a ranking factor in the classical PageRank sense — but wrong or missing schema costs you visibility both places.

Can I use Microdata or RDFa instead of JSON-LD?

Technically yes — schema.org supports all three. Practically no: JSON-LD is the format every AI-search parser handles reliably. Microdata mixed with your HTML is fragile and Microdata-only sites regularly get skipped. Ship JSON-LD.

What about Google-Extended and AI training?

JSON-LD is public content in your HTML — any crawler that fetches your page sees it, whether you allow AI training or not. Its purpose is disambiguation at inference time (when a user asks a question), not training. Blocking Google-Extended in robots.txt doesn't hide your JSON-LD from Gemini's live retrieval.

How big can the JSON-LD block get before it's a problem?

Practical ceiling: ~50KB. Under that, no parser cares. Over that, some crawlers truncate. Keep sameAs to canonical URLs only (not every social platform), skip the long knowsAbout arrays that some SEO tools auto-generate, and you'll stay well under.

Ship the JSON-LD once and it works forever — unless your brand name, logo, or social handles change. This is the highest-leverage 30-minute fix in the AI-search stack. For the full 13-signal fix pack — llms.txt, robots.txt, OpenGraph, and the rest — see the AICite Pro Report ($24, 30 seconds).

Related: What is llms.txt? · robots.txt for AI crawlers · State of AI-search 2026: 25 sites ranked · sitemap.xml for AI crawlers · OpenGraph for AI-search · llms.txt vs robots.txt vs sitemap.xml.