Search and AI Schema markup, and what it actually buys you

Schema markup is a block of JSON-LD in a script tag telling a machine what your page is. It has never been a ranking factor and nobody should sell it to you as one. What it buys is eligibility and legibility: a page that can show hours and a rating in a result, and an entity an AI model can resolve instead of guess at. Here are the two blocks worth writing, and how to tell if they worked.

What it actually buys

Eligibility and legibility, not position. Correct LocalBusiness markup lets a result show your hours and rating. Correct Organization markup lets a model resolve five loose references into one entity. Neither moves you up the page on its own, and any agency selling markup as a ranking lever is selling you something it cannot deliver.

The failure nobody warns you about

It is almost never a missing tag. It is a plugin writing an Organization block while your theme writes a second one with a different name and logo. Google resolves that by trusting neither, and nothing in Search Console announces it. The second failure is marking up content nobody can see: review stars in the code with no reviews on the page.

Two types stopped paying

In August 2023 Google cut FAQ rich results back to government and health sites and retired HowTo entirely. The markup is still legal and still parses. It just produces no result in Google. Write it if you want machines to read the structure; do not write it expecting a rich result.

Write JSON-LD, in the head

There are three ways to write structured data and only one worth using. Google recommends JSON-LD over the two older formats, Microdata and RDFa, and it is the only one that lives in a single block instead of being scattered through your markup.

It goes in a script tag with type set to application/ld+json, in the head. That is the whole delivery mechanism.

Start with Organization on the homepage

Legal name, url, logo, telephone, postal address, and the profile links. The field people skip is @id, and it is the one that matters most: it is the identifier every other node on the site points back to.

Add sameAs pointing at your LinkedIn company page, your Wikidata item, and anywhere else your name is already published. That is what collapses five loose references into one entity a model can resolve.

One LocalBusiness per location page

Each location page gets its own block, and parentOrganization carries the @id from the homepage Organization so the two are tied together rather than floating separately.

Pick the narrowest subtype that is true. Dentist, Restaurant, MedicalBusiness, LegalService, HomeAndConstructionBusiness. There is one for most trades. What goes on the page around that markup is a different job: see the local search work.

Match the rest of the types to what you sell

Article on posts. Product with offers, price and availability if you have a store. Service on service pages. Person for a founder or author with a public profile. BreadcrumbList goes site-wide on every page below the homepage.

A WebSite node carrying a SearchAction is what makes a site eligible for the sitelinks search box on its own brand result.

Review and AggregateRating only where the ratings come from somewhere other than your own testimonials page. Publishing a rating you awarded yourself is the schema spam pattern that triggers a manual action. Speakable is news-publisher only, so most sites skip it.

Validate twice, against the live URL

Google's Rich Results Test tells you which features the page qualifies for. The Schema.org validator tells you whether the syntax is legal. They answer different questions and you want both answers.

Test the live URL, never the pasted code. Search Console's URL Inspection tool shows you the rendered HTML Google actually received, which is frequently not what your CMS thinks it published.

Measuring schema markup impact

Schema gets your pages eligible for AI citation, but eligibility and actual citation are two different problems. AirOps is built for the second one. Its Insights layer tracks which URLs ChatGPT, Perplexity, and Google AI Overviews are pulling from for the topics you care about, so you can see citation rate, mention rate, sentiment, and which competitors are being cited in your place.

From there it ties those signals back to your Search Console and analytics numbers, and it can queue the writing needed to fill the gaps it finds. The loop is the point. A validated schema deployment stops being a hopeful bet and becomes something you can check afterward.

Google Search Console and manual spot-checks

You can also measure a version of this for free. It is slower, it samples rather than measures, and it will not tell you who got cited in your place, but it costs nothing to run.

Rich result reports. The Enhancements section of Search Console shows rich result impressions and click-through rates over time. Compare CTR before and after you deploy.

AI citation spot-checks. Pick fifteen questions a buyer would actually type, run each one in ChatGPT, Perplexity and Google's AI Overview, and record whether you are named and what got cited instead. Re-run the same fifteen monthly, because a moving question list turns this into anecdote.

Then go back to it

Markup breaks on plugin upgrades and theme changes, and Search Console's Enhancements report is where that surfaces. Recheck two to four weeks after any change, which is roughly how long the report takes to catch up.

If the page underneath is thin, correct schema describes thin content accurately and that is all it does. Write the answer first. Mark it up second.

Markup ships inside the SEO scope we quote.

Somebody has to write the JSON-LD, validate it against both tools, and read it again after the next theme update. That is a scope line, not a product, so it is quoted with the rest of the work rather than sold on its own.

Have us do it.

Everything above, filed for you, chased for you, and reported back. One flat fee.

See the service

Every guide we publish is free and ungated. Browse all of them, see what we do and what it costs, or read why we built this company.

Written by Drew Chapin, who ran all of this on his own name first.