All guides
Technical GuideJune 17, 2026 · 8 min read

Schema Markup for AI Search: A Practical Guide (With Examples)

Short answer: schema markup is structured data — usually written as JSON-LD — that you add to your web pages to state your facts in a format machines can read directly. It tells search engines and AI assistants exactly what your business is, where it operates, and what it offers, instead of forcing them to guess from your page text. It doesn't guarantee you'll be cited, but it makes your facts consistent and verifiable — the qualities AI engines favor when they decide what to trust and repeat.

What is schema markup (and JSON-LD)?

Schema markup is a shared vocabulary defined at schema.org — a standard backed by Google, Microsoft, Yahoo, and Yandex — for describing things on the web: businesses, products, articles, events, people, FAQs, and more. JSON-LD (JavaScript Object Notation for Linked Data) is the recommended way to write it: a small block of structured JSON you drop into your page. It doesn't change how the page looks to humans — it's a hidden, machine-readable summary of the same facts.

Without schema, a crawler reads "Open Mon–Fri, call us at 555-0100" as ordinary prose and has to infer what it means. With schema, the same facts are labelled: this is the telephone, these are the openingHours, this is the address. Nothing is left to interpretation.

Why it matters for AI search

AI assistants like ChatGPT, Perplexity, and Google's AI overviews answer questions by retrieving sources and summarizing them. When they assemble an answer, they lean on facts that are explicit, consistent, and verifiable. Schema markup feeds all three:

  • Explicit: your name, address, phone, hours, and services are labelled, not buried in sentences an engine has to parse.
  • Consistent: the same machine-readable facts appear on your site and can match your Google Business Profile, directories, and other listings — reducing the contradictions that make AI hedge or omit you.
  • Verifiable: structured data is easy to cross-check, so an engine has more confidence stating your details in an answer.

To be clear: schema is not a ranking trick and it does not guarantee citations. What it does is remove ambiguity, so that when an AI engine does reach for your information, it gets the right facts. It works alongside the other things that matter — see what answer engine optimization is for the bigger picture.

Example 1 — LocalBusiness

If you serve customers in a specific area, LocalBusiness (or a more specific subtype like Plumber, Dentist, or Restaurant) is the most important schema to get right. It states your name, location, contact details, and hours unambiguously:

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Riverside Plumbing Co.",
  "image": "https://www.riversideplumbing.com/storefront.jpg",
  "url": "https://www.riversideplumbing.com",
  "telephone": "+1-555-0100",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "120 Market Street",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 30.2672,
    "longitude": -97.7431
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "08:00",
      "closes": "18:00"
    }
  ]
}

Use the most specific @type that fits your business, and make sure the values match what you publish everywhere else (especially your Google Business Profile). A mismatched phone number or address is exactly the kind of inconsistency that erodes trust.

Example 2 — FAQPage

An FAQPage turns your questions and answers into structured pairs. This is well suited to AI search because the question-and-answer shape mirrors how people prompt assistants — and your answer is already written in a directly quotable form. Only mark up Q&As that genuinely appear on the page for users:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Do you offer emergency plumbing service?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. We provide 24/7 emergency plumbing across the Austin area, with same-day response for burst pipes and major leaks."
      }
    },
    {
      "@type": "Question",
      "name": "What areas do you serve?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "We serve Austin and surrounding communities including Round Rock, Cedar Park, and Pflugerville."
      }
    }
  ]
}

Keep answers accurate and self-contained. An assistant may lift a single answer verbatim, so each one should make sense on its own.

Example 3 — Organization

For a company that isn't tied to a single physical location, Organization describes the entity itself — its name, logo, and the official profiles that confirm who you are. The sameAs array is especially valuable: it links your site to your authoritative profiles elsewhere, helping engines connect the dots and confirm your identity.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Alphaa",
  "url": "https://www.alphaa.ai",
  "logo": "https://www.alphaa.ai/logo.png",
  "description": "An answer engine optimization platform that helps businesses get found and recommended by AI assistants.",
  "sameAs": [
    "https://www.linkedin.com/company/alphaa",
    "https://x.com/alphaa"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "hello@alphaa.ai"
  }
}

If you sell a specific product, Product works the same way — describe the name, description, brand, and (if relevant) offers and aggregateRating — but only include a rating if it reflects real reviews shown on the page. Inventing ratings is both against the guidelines and the kind of thing that gets you distrusted.

Where to place the markup

JSON-LD goes inside a script tag with the type application/ld+json. The recommended spot is the page's head, though engines also read it in the body. It looks like this:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Riverside Plumbing Co."
}
</script>
  • WordPress: a plugin like Yoast or Rank Math generates much of this automatically; you can also add custom JSON-LD in your theme header.
  • Next.js / custom sites: render the JSON-LD in a script tag in your page or layout. Put the markup on the page whose facts it describes — your homepage or contact page for LocalBusiness, your FAQ page for FAQPage.
  • Squarespace / Wix / Webflow: use a code-injection or embed block to paste the script into the page or site header.

One @type per block is cleanest. You can include several scripts on a page if it legitimately represents multiple things (for example, an Organization block and an FAQPage block).

How to validate it

Always test before you ship — a typo can silently break the whole block. Two free tools:

  • Google's Rich Results Test — paste a URL or code and it reports which structured-data types it detected and flags errors and warnings relevant to Google.
  • the Schema.org Validator — checks your markup against the schema.org vocabulary itself, independent of any one search engine.

Run both. The first tells you how Google reads it; the second confirms the markup is technically valid. Fix every error and review the warnings, then re-test until it's clean.

A realistic bottom line

Schema markup won't single-handedly get you recommended by AI. But it removes guesswork: it states your facts in the precise, consistent, verifiable form that AI engines reward. Pair it with an accurate Google Business Profile, clear content, and consistent listings, and you give every engine — search or AI — the same trustworthy story about your business.


Not sure how AI engines currently see your business? Alphaa checks your schema, your profiles, and the other signals AI assistants read — then shows you exactly what to fix. Run a free AI visibility scan →

Run my free AI scan →60 seconds · no signup · no credit card