Schema markup is why ChatGPT can't see your business
The machines aren't ignoring you. They're guessing. Stop making them guess.
Short version: if AI answers skip your business or get your details wrong, missing or broken structured data is a big reason. Not the only reason. But it's the one you can fix this week, and most shops never touch it.
Here's what happened on a build last month. Client had a clean site. Good copy, real hours, real services. Then we asked ChatGPT and Google's AI about them. One shrugged. The other made stuff up. Wrong phone number. Old address. A service they'd dropped two years back. A human could read the page fine. The machines were guessing.
They were guessing because nobody gave them anything but guesses to work with.
What actually broke?
Nothing crashed. That's the trap. The site looked perfect to a person and said nothing clear to a parser.
A web page is words and pictures to you. To a crawler it's a wall of HTML. It has to infer what's a phone number, what's a price, what's your business name versus a photo caption. Structured data ends the inferring. It's a small block of code that labels the facts. This is the name. This is the address. This is the service. Straight from Google: “Google uses structured data that it finds on the web to understand the content of the page, as well as to gather information about the web and the world in general.”
No labels, no clean facts. The parser falls back to guessing, and guesses show up in AI answers as wrong details or no mention at all.
Why can't a machine read a page a human reads fine?
Because a human reads meaning and a machine reads markup. You see “Open til 6.” A parser sees a string of text sitting near some other text. Is that your hours? A tagline? Part of a review someone left? It cannot be sure.
Now stack the AI layer on top. Google says its AI features run on retrieval augmented generation, “also known as grounding,” which leans on “our core Search ranking systems to retrieve relevant, up-to-date web pages from our Search index.” Plain English: the AI answer is only as good as what got understood and indexed first. If the machine misread your page going in, the AI repeats the miss going out. Garbage in, confident garbage out.
Wait, doesn't Google say schema isn't required for AI?
It does. Read this one straight, because half the internet is lying about it. Google literally says structured data “isn't required for generative AI search, and there's no special schema.org markup you need to add.”
So no. Schema is not a magic switch that forces ChatGPT to love you. Anyone selling you “AEO schema hacks” is selling smoke.
Here's the line they skip. Same Google page, right after: “it's a good idea to continue using it as part of your overall SEO strategy, as it helps with being eligible for rich results on Google Search.” Schema is how you hand machines clean, labeled facts instead of making them work for it. Cleaner facts in, fewer wrong answers out. No guarantees. Better odds. Frank doesn't guess. He cites. Give the machines the same shot.
Which schema types do you actually need?
Skip the 800-plus types on Schema.org. For most operators it's a short list.
- Organization. Your name, logo, URL, social profiles. The identity block. Every site gets this.
- LocalBusiness. Address, phone, hours, geo, price range. Got a physical spot? This is non-negotiable. Google says local business structured data can make you eligible for a prominent knowledge panel or a business carousel in Search.
- Product. Name, price, availability, reviews. For anything you sell.
- Article. Every blog post and guide you publish.
- FAQPage. Your real questions and answers, labeled as questions and answers.
Pick the ones that match your pages. Put the markup on the page it describes. And keep it true. Google's rule is blunt: don't “mark up content that is not visible to readers of the page.” Invent reviews or hours that aren't on the page and you earn a manual action, not a rich result. That's a self-inflicted wound.
Here's the JSON-LD
JSON-LD is the format Google recommends: a single script block in your page's head. Here's a real LocalBusiness snippet. Swap your details in.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Redline Diesel Repair",
"url": "https://redlinediesel.example",
"telephone": "+1-702-555-0134",
"priceRange": "$$",
"image": "https://redlinediesel.example/shop.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "1180 Industrial Rd",
"addressLocality": "Las Vegas",
"addressRegion": "NV",
"postalCode": "89102",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 36.1512,
"longitude": -115.1739
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "07:00",
"closes": "18:00"
}],
"sameAs": [
"https://www.facebook.com/redlinediesel",
"https://www.instagram.com/redlinediesel"
]
}
</script>That's it. Labeled facts, machine readable, sitting on the page they describe. No mystery, no guessing.
How do you know it's not broken?
You test it. Guessing is what got you here.
Two free tools, both official. Google's Rich Results Test is, in Google's words, “an easy and useful tool for validating your structured data, and in some cases, previewing a feature in Google Search.” Fix every error before you ship. Per Google, “items that are missing required properties are not eligible for rich results.” A warning you can live with. An error, no.
The Schema Markup Validator checks your markup against Schema.org itself, with no Google filter on top. Run both. Green on both, ship it.
One honest caveat, because we don't sell smoke either. Valid schema makes you eligible. It does not force the result. Google is flat about it: “Google does not guarantee that your structured data will show up in search results, even if your page is marked up correctly according to the Rich Results Test.” You're loading the dice. You're not rigging the game.
The fix, start to finish
Add Organization and LocalBusiness to your key pages. Add Product, Article, and FAQPage where they fit. Keep the facts true and visible. Validate on both tools. Then re-check after deploy, because templates and plugins break markup all the time and nobody notices until an AI answer says you close at 6 when you close at 8.
Why bother? Because it moves real numbers. Google's own case study: Nestlé measured pages that show as rich results pulling an 82% higher click-through rate than pages that don't.
You're not doing this to game a robot. You're doing it so the machine that feeds every AI answer reads your business right the first time. Right facts in, fewer wrong answers out.
Your competitor's schema is probably broken too. First one to fix it gets read clean.
Off the leash. All teeth.
Want it built right and validated? Start a project.
Sources
- Google Search Central — Intro to How Structured Data Markup Works
- Google Search Central — General Structured Data Guidelines
- Google Search Central — Optimizing for Generative AI Features on Google Search
- Google Search Central — Local Business (LocalBusiness) Structured Data
- Schema.org — Schema Markup Validator
