← All posts

Schema Markup for AI and SEO: A JSON-LD Guide

Quick answer: Schema markup is structured data you add to a page using the schema.org vocabulary, usually as JSON-LD in a script tag, to tell machines exactly what your content is. It helps classic SEO by qualifying you for rich results, and it helps AI systems by handing them clean, unambiguous facts instead of making them infer meaning from prose. The types that matter most are Article, FAQPage, Product, Organization, and HowTo.

A web page is written for humans, which means a machine has to guess at its meaning. Is that number a price or a phone extension? Is that name the author or someone quoted? Schema markup removes the guessing. You annotate the page with a structured description of what each thing is, and both search engines and AI systems get the facts directly instead of parsing them out of your paragraphs.

That matters more in the AI era, not less. When a model synthesizes an answer, clean structured data is a reliable fact source. Prose can be misread. A JSON-LD price field cannot.

What schema.org and JSON-LD are

schema.org is a shared vocabulary, maintained collaboratively by the major search companies, that defines types (Article, Product, Organization) and properties (author, price, datePublished). It is the dictionary.

JSON-LD (JSON for Linking Data) is the format most people use to express that vocabulary. You drop a <script type="application/ld+json"> block into your page, and it sits alongside your HTML without changing how the page looks. It is the recommended format because it is self-contained and does not tangle with your visible markup.

Here is the minimal shape:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Schema Markup for AI and SEO: A JSON-LD Guide"
}
</script>

Every block starts with @context (pointing at schema.org) and @type (the thing you are describing). Everything else is properties of that type.

The types that matter

You do not need all several hundred schema.org types. A handful cover most real sites.

Type Use it for Payoff
Article Blog posts, news, guides Author, date, and topic clarity for search and AI
FAQPage Pages with question and answer pairs Clean Q and A pairs AI can lift directly
Product Ecommerce items Price, availability, and reviews as structured facts
Organization Your company identity Consistent brand entity across the web
HowTo Step-by-step instructions Ordered steps a model can follow and cite

Article

For any editorial page. This tells a system who wrote it, when, and what it is about.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Schema Markup for AI and SEO: A JSON-LD Guide",
  "author": {
    "@type": "Organization",
    "name": "link.sc"
  },
  "datePublished": "2026-07-18",
  "dateModified": "2026-07-18",
  "description": "The JSON-LD types that matter and how schema helps SEO and AI."
}

FAQPage

One of the most valuable types for AI, because a question and answer pair maps directly onto how people query AI engines. You are handing the model pre-built answers.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is schema markup?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Schema markup is structured data added to a page using the schema.org vocabulary so machines can understand exactly what the content is."
      }
    },
    {
      "@type": "Question",
      "name": "Does schema markup help AI search?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. Structured data gives AI systems clean, unambiguous facts instead of forcing them to infer meaning from prose."
      }
    }
  ]
}

Product

For ecommerce, this exposes price, availability, and ratings as machine-readable fields.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Example Widget",
  "description": "A durable widget for everyday use.",
  "brand": { "@type": "Brand", "name": "Example" },
  "offers": {
    "@type": "Offer",
    "price": "29.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}

Organization

Publish this once, sitewide, so every system resolves your brand to one consistent entity.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "link.sc",
  "url": "https://link.sc",
  "description": "One API to fetch and search the web for LLMs and agents.",
  "sameAs": ["https://link.sc/pricing"]
}

HowTo

For tutorials, expose the steps in order so a model can present them faithfully.

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to add JSON-LD to a page",
  "step": [
    { "@type": "HowToStep", "text": "Choose the schema.org type that matches your content." },
    { "@type": "HowToStep", "text": "Write a JSON-LD block with @context and @type." },
    { "@type": "HowToStep", "text": "Add the required properties for that type." },
    { "@type": "HowToStep", "text": "Place it in a script tag in the page head." }
  ]
}

How schema helps SEO and AI at the same time

For classic SEO, structured data is what qualifies you for rich results: review stars, FAQ dropdowns, product prices in the listing. It does not directly boost rankings, but it makes your listing more useful and more clickable.

For AI, the benefit is different and arguably bigger. When a model reads your page, prose forces it to infer facts, and inference introduces errors. Structured data removes the inference. The datePublished is the date, full stop. The price is the price. You are reducing the chance the model gets your facts wrong, which is a real risk given how confidently AI systems can be wrong. We covered that failure mode in AI search engines are confidently wrong. Clean structured data is one of the few things you control that pushes back against it.

There is a caveat worth stating plainly: not every AI system reads JSON-LD during inference, and the major providers have not published exactly how much weight they give it. Treat schema as a high-value, low-cost signal, not a guaranteed lever. The upside is real and the downside is a few minutes of markup.

Common mistakes

  • Marking up content that is not on the page. Schema must describe what the user actually sees. Invisible or contradictory markup can get you penalized.
  • Invalid JSON. A single trailing comma breaks the whole block. Validate before you ship.
  • Wrong type. Do not label a blog post as a Product. The type must match reality.
  • Stale dates. If dateModified says last year but you updated the page, fix it. Freshness signals depend on it.
  • Forgetting to test. Run every page through a structured data validator, and confirm the markup is present in the raw HTML a crawler receives, not injected later by JavaScript.

That last point connects to everything else about AI visibility: if a crawler cannot fetch your rendered page, it cannot read your schema either. You can confirm what a crawler receives by fetching the raw page and inspecting it, the same way an AI system would.

Where to start

Add Organization sitewide, Article to every editorial page, and FAQPage to anything with question-shaped sections. Validate it, confirm it is in the HTML, and move on. Schema is not glamorous, but it is one of the cleanest ways to make sure both search engines and AI systems get your facts right.

Give the machines the facts. Do not make them guess.


Want to confirm your schema survives rendering? Fetch any URL to clean markdown with link.sc and see exactly what a crawler reads.