AppWT Free Guide
10 Schema.org Markup Mistakes That Block AI Citation
Why your business doesn't appear in ChatGPT, Claude, or Perplexity answers — and the 10 fixes most agencies miss.
Why this matters in 2026
By the close of 2025, more than 1 billion people were running daily queries through AI assistants — ChatGPT, Claude, Perplexity, Gemini, and Copilot. Each of these engines decides which businesses to cite based on structured data, not just web content.
Most agencies are still optimizing for Google's 2015 ranking signals. The businesses winning AI citations in 2026 are the ones whose Schema.org markup is clean, complete, and AI-readable. Here are the 10 mistakes blocking yours.
Mistake #1 — Missing @id anchors
Schema.org entities without unique @id values get fragmented across pages. The AI sees "Joe's Plumbing" on /about, /services, /contact as three separate entities. Result: your brand authority is split three ways.
Fix: Every Organization, Service, LocalBusiness needs a consistent @id URL across the entire site (e.g., "@id": "https://yoursite.com/#organization").
Mistake #2 — Using Service without a provider reference
A Service schema with no Organization link tells AI: "Someone does this work, but we don't know who." AI engines need to tie services back to entities for citation.
Fix: Every Service block needs "provider": {"@id": "https://yoursite.com/#organization"}.
Mistake #3 — htmlspecialchars() inside JSON-LD
PHP developers often wrap schema strings in htmlspecialchars() to be safe. This produces double-encoded HTML entities like " inside the JSON, which breaks Schema.org parsers silently.
Fix: Use json_encode() with the JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT flags inside <script type="application/ld+json"> blocks. Never wrap with htmlspecialchars.
Mistake #4 — Missing sameAs array
AI engines disambiguate similar businesses through cross-platform identity. No sameAs = AI cannot tell your "Joe's Plumbing" from 12 other "Joe's Plumbing" businesses across the country.
Fix: Add sameAs with Facebook, LinkedIn, Yelp, BBB, Clutch, and Google Business Profile URLs. Each link is a vote for "this is who we are."
Mistake #5 — Generic priceRange: "$$$"
The Schema.org priceRange field with dollar signs gives AI nothing to quote. When a customer asks ChatGPT "what does this service cost?", AI can't answer with concrete pricing.
Fix: Use explicit Offer entities with price, priceCurrency, and availability properties on every service page.
Mistake #6 — Schema in <body> instead of <head>
Many JSON-LD parsers (especially older ones used in AI training pipelines) only read schema from the <head> section. Body-level schema gets ignored.
Fix: Place all primary application/ld+json blocks in <head>. Body-level is OK for repetitive items (product cards, review snippets) but never for the canonical Organization/LocalBusiness identity.
Mistake #7 — No Speakable schema
Voice search assistants (Google Assistant, Siri, Alexa) read aloud content marked with Speakable schema. Without it, your FAQ and About content sits silent during voice queries — invisible to the fastest-growing AI search modality.
Fix: Add SpeakableSpecification to FAQPage and AboutPage schemas with CSS selectors pointing to your answer text.
Mistake #8 — Inconsistent geo coordinates
Your About page says 42.3674, but your homepage schema says 42.3672. To AI engines, those are two businesses at slightly different addresses. Cuts local-search authority in half.
Fix: Pick one canonical lat/long, use it across every page. Audit with curl + jq across your sitemap.
Mistake #9 — LocalBusiness on service-area businesses without a physical address
If you serve customers at their location (plumber, electrician, photographer), tagging your business as LocalBusiness with no address confuses Google Business Profile. Switch to Service + Organization with areaServed instead.
Fix: Service-area businesses use Organization schema with areaServed: ["City, State", "City2, State"]. Reserve LocalBusiness for storefronts customers visit.
Mistake #10 — Reviews without aggregateRating
You have 47 five-star reviews on Google. Your website doesn't tell AI engines that. Result: AI engines undervalue your trustworthiness vs competitors with proper schema.
Fix: Add aggregateRating to your Organization or LocalBusiness schema. Update the reviewCount monthly via a cron job pulling from your Google Business Profile API.
Ready for a free 15-minute AI audit?
Tony or someone on the AppWT team will walk through your current Schema.org markup and flag the 3-5 highest-priority fixes. No sales pitch. No obligation.
Or call (888) 565-0171 or text (734) 203-0171
Published by AppWT Web & AI Solutions — Detroit, MI. BBB A+ accredited. Family-run since 1997. Call (888) 565-0171 or text (734) 203-0171 or email sales@appwt.com.