Schema.org JSON-LD is how you tell crawlers and AI systems what your pages are, not just what they say. When an AI assistant generates an answer that cites your site, structured data is often the evidence it uses to confirm your entity, your expertise, and the freshness of your content. Getting it right is a small investment with outsized returns on AI-mediated discovery.

JSON-LD vs. Microdata vs. RDFa

Google explicitly recommends JSON-LD, and for good reason: it's a single <script type="application/ld+json"> block in <head>, completely separate from HTML structure. Microdata and RDFa both work, but they embed attributes directly in HTML elements, which makes them brittle across template changes and refactors.

JSON-LD can be server-rendered or injected by a Cloudflare Worker — either is fine. The hard requirement is that it must be present in the initial HTML response. Schema blocks injected after page load by client-side JavaScript are unreliable for crawlers and invisible to most AI parsers.

Organization schema: put it everywhere

Organization schema belongs on every page, injected through your base layout or template. It establishes your entity — name, URL, logo, and sameAs links to your authoritative profiles on Twitter, LinkedIn, GitHub, and Crunchbase. AI systems use these cross-references to unambiguously identify your company across sources and merge signals correctly.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Inc.",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://twitter.com/example",
    "https://github.com/example"
  ]
}

Keep the sameAs list current. A stale link to a defunct profile is worse than no link — it signals entity confusion to downstream systems.

WebSite schema and SearchAction

WebSite schema with a SearchAction tells search engines and AI agents that your site has a functional search surface. The SearchAction needs a target.urlTemplate pointing at your search endpoint. This schema powers Google's sitelinks search box in results pages, and it signals to AI agents that the site is navigable programmatically. Put it only on the homepage.

SoftwareApplication: mark your tools as tools

If you have an AI product or SaaS landing page, SoftwareApplication schema tells AI systems this page describes a runnable tool, not just a document. Set applicationCategory to "WebApplication" and operatingSystem to "Web". If you have public pricing, add an offers block with your plan names and prices. This is how AI assistants distinguish product pages from informational content when assembling "best tools for X" answers.

Article schema: freshness signals matter

Every blog post and documentation page needs Article schema with at minimum headline, datePublished, dateModified, author (a Person with name and url), and publisher (your Organization). The dateModified field carries real weight: AI systems use it to judge how current your information is, and a post that hasn't been modified in three years gets downgraded in freshness-sensitive queries. Update dateModified any time you make a substantive revision, not just cosmetic edits.

FAQPage schema: direct feed for AI snippets

For any page with question-and-answer content, FAQPage schema wraps your Q&A pairs in a machine-readable structure. Each entry in the mainEntity array is a Question object with a name (the question text) and an acceptedAnswer containing text. This directly feeds Google's "People Also Ask" feature and provides AI-generated FAQ snippets with structured, attributable answers rather than extracted text.

The question text in name should match the natural language phrasing users actually search for. Overly formal or abbreviated question text reduces match rates.

HowTo schema: steps without a click

HowTo schema is worth adding to any step-by-step guide. It uses a step array of HowToStep objects, each with a name and text. AI systems can present the steps directly inline in an answer, which means users get the answer without visiting your page — but that visibility is still traffic value through brand recognition and citation attribution. An unstructured guide has neither.

Verify before shipping

isitready.dev validates structured data on every page of your site — checking schema type coverage, required fields, and JSON-LD syntax errors — and flags pages that are missing entity data. Run it against your canonical origin before launch, and again after any major template change.