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.