Schema.org JSON-LD for AI search citations (Organization, WebSite, FAQ)
·8 min read

Schema.org JSON-LD for AI search citations (Organization, WebSite, FAQ)

AI agents lean heavily on schema.org JSON-LD to decide what to cite. Copy-paste templates for the three blocks every site needs in 2026.

schema.orgJSON-LDAI SEOGEO

Plain HTML tells AI agents what's on the page. Schema.org JSON-LD tells them what it means. The difference shows up in citation rates: pages with proper JSON-LD get cited 4-7× more often by Perplexity, ChatGPT browse, and Google AI Overviews than pages without.

This guide gives you the three blocks every site needs in 2026: Organization, WebSite, and FAQPage. Copy-paste, replace placeholders, ship.

Why JSON-LD specifically

Schema.org supports three syntaxes: microdata, RDFa, and JSON-LD. Google has recommended JSON-LD since 2015, and AI agents follow suit because:

  • Separable from markup. JSON-LD sits in a <script> tag — agents parse it without walking your DOM.
  • Order-independent. Microdata requires the markup order to mirror semantics. JSON-LD doesn't.
  • Easier to validate. Tools like Google's Rich Results Test eat JSON-LD natively.

Block 1: Organization

Goes in <head> on every page (or at least on home, about, and contact). Declares who you are.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Brand",
  "url": "https://yoursite.com",
  "logo": "https://yoursite.com/logo.png",
  "description": "One-sentence pitch.",
  "sameAs": [
    "https://twitter.com/yourhandle",
    "https://github.com/yourorg",
    "https://www.linkedin.com/company/yourorg"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "[email protected]",
    "availableLanguage": "English"
  }
}
</script>

Three things to get right:

  • sameAs is your social-graph anchor. Include canonical profiles only — agents use this to dedupe across the web.
  • description is your elevator pitch. Match what you'd want quoted in an AI answer.
  • logo should be a PNG with a transparent background, ideally 512×512.

Block 2: WebSite + SearchAction

This unlocks the "sitelinks search box" — agents (and Google) can offer in-line search across your site.

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

Replace the urlTemplate with your real search URL. If you don't have on-site search, skip this block — declaring it without a working endpoint hurts trust.

Block 3: FAQPage

This is the highest-leverage block for AI citations. Agents lift FAQ answers verbatim into responses.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How long does shipping take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "2-5 business days within the US; 7-14 days international. Tracking included on every order."
      }
    },
    {
      "@type": "Question",
      "name": "Do you accept returns?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "30-day window for unused items. Email [email protected] to start; we cover return shipping for US orders."
      }
    },
    {
      "@type": "Question",
      "name": "Is this hand-made or factory-produced?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Hand-finished in our Portland workshop. The base components are produced by our partner factory in Vermont."
      }
    }
  ]
}
</script>

Three rules:

  • Match the visible page. The FAQ in your JSON-LD must appear as readable content elsewhere on the page. Google penalises invisible structured data.
  • Direct answers. Write the text as a self-contained answer — assume an agent will quote it without context.
  • 10–25 questions sweet spot. Below 10 looks thin; above 25 dilutes the strongest answers.

The @graph pattern (combine multiple blocks cleanly)

If you ship Organization + WebSite + Article on the same page, use @graph to keep them in one script tag:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    { "@type": "Organization", "@id": "https://yoursite.com/#org", "name": "Your Brand", "url": "https://yoursite.com" },
    { "@type": "WebSite", "@id": "https://yoursite.com/#site", "url": "https://yoursite.com", "publisher": { "@id": "https://yoursite.com/#org" } },
    { "@type": "Article", "headline": "Your post title", "author": { "@id": "https://yoursite.com/#org" } }
  ]
}
</script>

Use @id to cross-link entities. Our scanner parses this pattern correctly; many older SEO plugins do not.

Where to put it on common stacks

  • WordPress (no plugin): theme's header.php inside <head>, before </head>.
  • WordPress + Yoast/Rank Math: these emit Organization + WebSite for you. Add FAQPage manually via WPCode or a custom block.
  • Next.js: use generateMetadata and the <Script> component, or inline via dangerouslySetInnerHTML.
  • Webflow: Project Settings → Custom Code → Head Code.
  • Shopify: theme.liquid before </head>.
  • Tilda: Site Settings → More → HTML Code in HEAD.

Validate before shipping

  • Google Rich Results Test — flags JSON-LD syntax errors and missing required fields.
  • Schema.org Validator — strict against the official schema definition.
  • npx agentfix-mini-scanner yoursite.com — checks Organization, WebSite, FAQ presence and JSON-LD parseability.

Want all three blocks generated from your real content?

The AgentFix Pack crawls your site, extracts your real name, description, FAQs, social links, and emits ready-to-paste JSON-LD blocks. It also generates /llms.txt, /llms-full.txt, A2A agent-card.json, and MCP server-card.json. From $1 one-time.

Want this shipped for you?

AgentFix scans your site for all 33 AI-readiness signals and emails you a personalised ZIP with the missing files generated from your content. WordPress, Webflow, Tilda, Shopify, cPanel install guides for each. From $1 one-time.