Skip to content

Schema Markup for AI Search: A Practical Guide

By Storm Bennett 11 min read
Schema Markup for AI Search: A Practical Guide: Killerspots branded AI search optimization graphic

Schema markup has been oversold twice now. First as the thing that would win rich snippets, and now as the thing that will get you quoted by AI assistants. Both pitches share a flaw. They treat structured data as a lever you pull for visibility, when what it actually is, is a way of telling a machine what your page and your business are, in a format that leaves no room for interpretation.

That distinction matters more in AI search than it ever did in classic search, and it is worth being precise about why. A ranking system compares pages and orders them. A generative system reads across sources, decides what it believes about an entity, and writes an answer in its own words. When it is unsure about you, it does not rank you lower. It reaches for something it understands better, or it describes you vaguely, or it gets a fact wrong. Schema is how you shrink that uncertainty. Below is what actually earns its place in the code, what to skip, and how to tell whether any of it is working. This is the implementation side of the AI search optimization work we run for clients every week.

Direct answerIt states facts about your page and your business in a format a machine reads without inference. It does not push you into an answer. It removes the ambiguity that makes a system hedge, choose a competitor whose information is clearer, or describe your business incorrectly in a response you will never see.

The way to think about it is confidence rather than ranking. Everything a model knows about your business is assembled from scattered signals: your site copy, your profiles, directory listings, reviews, mentions on sites you do not control. Those sources disagree constantly. One says you serve a metro area, another says nationwide. One lists a service you retired two years ago. Schema is the one place where you get to state your version of the facts in a structured way that requires no reading between the lines.

This is also why schema tends to matter more for businesses that are harder to categorize. If you run a single service in a single city, the web describes you consistently without much help. If you do several things across several markets, which is true of most agencies, manufacturers, and multi service companies, the ambiguity is real and the markup is doing genuine work.

The honest caveat, and we say this to every client who asks: pages with no structured data at all get cited in AI answers every day. Schema is not the price of admission. It is one of the cheaper ways to stop being misunderstood, which is a different and more achievable goal than being chosen.

Which schema types matter most right now?

Direct answerOrganization or LocalBusiness for the business itself, Service on service pages, Article or BlogPosting on content, and BreadcrumbList for structure. Those four cover the overwhelming majority of real value. Product, Event, and Person matter when you genuinely have those things, and not before.

Start with the business node, because it is the one that everything else hangs from. One Organization node, published from a single source of truth, carrying the legal name, the canonical URL, the logo, the contact path, the service area, and a sameAs array pointing at the profiles you actually maintain. That last property does more than people expect. It is the explicit statement that the company on your site and the company on those profiles are the same entity, which is exactly the connection a model otherwise has to infer.

Service markup on service pages is the most commonly skipped high value type. A service page with no type declaration is just a document with words on it. With Service markup naming the service, the provider, and the area served, it becomes a machine readable claim that this company provides this thing. For a nationwide operation the areaServed property is doing heavy lifting, because it contradicts the local assumption a system would otherwise make from a physical address.

Article or BlogPosting on content should carry a real author reference pointing at a real author page, not a name string. The connection between a piece of content and an identifiable person with a track record is the schema level expression of experience and expertise, and it is one of the few structured signals that maps cleanly onto how answer engines evaluate sources.

How do you connect your entities so AI stops guessing?

Direct answerGive your organization one stable identifier, usually a URL fragment like your homepage plus a hash, and reference that same identifier from every other node on the site. Instead of dozens of disconnected snippets, you produce a single connected graph describing one business across every page.

This is the difference between schema that is technically present and schema that is genuinely useful, and it is where most implementations fall down. The usual pattern is each page emitting its own self contained blob: a fresh Organization here, a publisher named as a plain string there, an author who is just text. Every one of those validates cleanly. Together they describe an entity a machine still has to piece together by matching names.

The fix is small and mechanical. Assign your organization a fixed @id. Every node that needs to reference the business, the publisher on an article, the provider on a service, the parentOrganization on a location, points at that @id rather than restating the details. State the full organization details once, in one canonical place, and reference them everywhere else.

Two habits make this hold up over time. Keep identifiers stable, because changing an @id after the fact severs every reference pointing at it. And make sure the entity you describe in markup matches the one described in your visible copy and on your profiles. Structured data that contradicts the page it sits on is worse than none, since you have now given a system two conflicting accounts and no way to choose. That consistency work is the unglamorous half of getting recommended by AI systems, and it is usually the half that is missing.

Do FAQ and HowTo schema still matter now that the rich results are gone?

Direct answerFAQ markup is still worth shipping, HowTo is not. Google restricted FAQ rich results to a narrow set of sites in 2023 and dropped HowTo results entirely, but losing a visual snippet did not remove the markup from your page. Question and answer pairs remain one of the cleanest structures a generative system can lift.

The reaction to the 2023 change was to strip FAQ markup out, on the reasoning that no rich result meant no reason to keep it. That reasoning was sound for the narrow goal of winning a snippet and wrong for everything else. The markup still describes the content accurately, it still parses, and it is still consumed by systems that are not Google Search.

There is a more useful way to hold this. The value was never really in the schema, it was in the format. A question stated the way a person asks it, followed by a complete and self contained answer, is the single most extractable unit of content you can write. The markup labels that structure explicitly, which helps, but a well written FAQ section earns its keep even where nothing reads the JSON at all. That is why we treat the visible FAQ block and its markup as one deliverable rather than two, on every post we publish.

HowTo is different and the guidance is simpler. Google removed those results, and unlike FAQ the format carries little independent benefit for most business content. If you have it, leaving it does no harm. It is not worth building new.

Should you use a plugin or write the JSON-LD yourself?

Direct answerUse the plugin for the repetitive page level types it handles well, and take manual control of the organization node and anything requiring judgment. The realistic failure mode is not choosing wrong, it is running both at once and shipping two conflicting Organization nodes on every page.

Modern SEO plugins generate genuinely good structured data for the predictable cases. Article markup on posts, breadcrumbs, the publisher relationship, author linkage. Hand rolling those is work you will do worse and then have to maintain forever.

Where plugins fall short is anything that needs a decision. Whether your business is Organization or LocalBusiness, how to phrase areaServed for a business with an office in one city and clients across the country, which profiles belong in sameAs, how to describe a service that does not map neatly to a template. Those are judgment calls, and a plugin resolves them with a default that is frequently wrong for a business positioned nationwide.

The real hazard is duplication. Add a theme with built in schema, then a plugin that also emits schema, then a hand added block from a previous developer, and the page now carries three Organization nodes making three slightly different claims. Nothing errors. Every node validates. You have simply told the machine three inconsistent stories about who you are, which is precisely the ambiguity the markup existed to eliminate. Before adding anything, count what is already on the page. We find duplicates on the majority of sites we audit, and removing them is usually a bigger win than anything we add.

How do you know your schema is actually working?

Direct answerValidate the syntax, then verify the facts, then watch behavior. Run the page through Google's Rich Results Test and the Schema.org validator, read the rendered output rather than your source, then check whether assistants describe your business correctly. Validators confirm the code is well formed. Only the last check tells you it is true.

Validation is the easy part and the part people stop at. Both tools are free, they take seconds, and between them they catch malformed syntax, missing required properties, and broken references. Always test the rendered URL rather than pasted code, because what your template outputs and what your CMS or cache actually serves are not reliably the same document. Search Console’s enhancement reports are worth watching afterward for errors that appear at scale.

The accuracy pass is the one that matters and the one no tool performs. Read your own markup as a stranger would and ask whether every claim is currently true. Stale schema is remarkably common: an old phone number, a service line that was dropped, an owner who left, an areaServed written when the business was local and never revisited. All of it validates perfectly. All of it is wrong. We check this against the live business, not against the code, because the code cannot tell you it is out of date.

The behavioral check closes the loop. Ask the assistants directly, in a fresh logged out session, and see how your business gets described. When a model states something inaccurate about you, the cause is almost never the answer itself. It is a contradiction sitting in your own sources, and structured data is one of the faster places to resolve it. That is the same feedback loop behind tracking your brand’s AI visibility properly, and schema fixes are usually the first repairs it points at.

Where schema stops helping

Structured data cannot make a thin page authoritative. It describes what is there. If the page has nothing worth citing, perfect markup produces a perfectly described page nobody quotes. When we audit a site that has invested heavily in schema and seen nothing move, the content is almost always the constraint, and the markup was the easier problem to work on.

It also will not fix an entity problem that lives outside your site. If your business name, address, and description disagree across your profiles and directory listings, a system reading widely will find that inconsistency and weigh it against you no matter how clean your own JSON is. Schema is a strong statement, not a final one, which is why local and geographic AI visibility has to be worked at the profile level too.

And it will not survive neglect. A markup implementation is a set of claims with an expiry date. Set a reminder to reread it once a year against the business as it currently operates, or it quietly becomes a well formed description of a company you used to run.

Where to start

If you are starting from nothing, the order is: audit what is already on your pages and remove duplicates, build one correct Organization node with a stable identifier and an honest sameAs array, add Service markup to your service pages, then confirm your posts carry Article markup with a real linked author. Validate the rendered output, then read every claim and ask whether it is still true. That sequence covers most of the available value, and it is a few hours of work rather than a project.

Then leave it alone and go work on the content, because that is where the next constraint will be. Schema makes you legible. What makes you worth quoting is having something to say that the other results do not, which is the harder and more valuable half of answer engine and AI optimization. We have been building that combination for businesses since 1999, and the pattern holds consistently: the markup clears the path, and the substance is what gets you named. If you want to see how a system reads your site today, our AI search and SEO team does exactly that audit.

Frequently asked questions

Does schema markup help you appear in Google AI Overviews?

Indirectly, and Google has been consistent that structured data is an understanding aid rather than a ranking signal. What it does is remove guesswork. When your markup states plainly what the page is, who published it, what the business does, and where it operates, a system generating an answer has less reason to hedge or reach for a competitor whose information is easier to parse. Plenty of pages get cited in AI Overviews with no schema at all, so treat it as one input among several rather than the lever that decides the outcome.

Which schema types should a service business start with?

Three, in this order. One Organization or LocalBusiness node describing the business, published site wide from a single canonical source with a stable identifier. Service markup on each service page describing what is offered and to whom. Article or BlogPosting on content, with a real author linked to a real author page. Once those three are correct and consistent, add BreadcrumbList and Person. Everything past that is refinement, and refinement on a broken foundation is wasted effort.

Is JSON-LD better than microdata for AI search?

Yes, for practical reasons rather than ideological ones. JSON-LD sits in its own script block, separate from the visible markup, so it survives design changes that would break attributes woven into HTML tags. Google names it as the preferred format, it is easier to generate and audit programmatically, and it is far easier to keep consistent across a large site. If you inherited microdata that works, it is not urgent to rip out, but write anything new as JSON-LD.

How much schema is too much?

The limit is truthfulness, not volume. Every type you add must describe something genuinely present on that page. Marking up a review that is not displayed, a product you do not sell, or an FAQ block that exists only in the code is a guidelines violation, and it is the fastest way to have structured data ignored across a whole domain. A page with three accurate types is stronger than a page with ten aspirational ones.

Do I need schema on every single page?

You need the organization identity available site wide, and you need page level markup wherever the page has a clear type. A service page, a blog post, a location page, and a product page each have an obvious type worth declaring. A thin utility page like a thank you screen does not. The failure to avoid is the opposite one, where a plugin sprays a generic node onto every URL and the site ends up asserting the same shallow thing several hundred times.

Want results like this for your brand?

Killerspots is a full-service creative + digital agency. Let's talk.

Get a Free Quote
LeadConnector

Capture every lead. Follow up automatically.

LeadConnector — our AI-powered CRM — captures the leads your marketing drives, scores them by intent, and follows up 24/7 by text and email. Missed call? It auto-texts back. No lead ever goes cold.

AI Lead Scoring 24/7 AI Follow-Up SMS + Email Unified Inbox