Broken schema fails silently. You implement FAQPage JSON-LD, submit the URL for re-crawl, and wait for citation rate to improve. Four weeks later, nothing has changed. You check Google's Rich Results Test and it shows errors you never noticed. Every AI crawler has been ignoring your schema since day one.
This is more common than most AEO practitioners realise. Schema errors do not throw warnings in GA4. They do not show up in GSC traffic reports. The only way to find them is to check directly. And the only way to know whether schema is actually being parsed by AI crawlers — not just present in the HTML — is to confirm it exists in the server-rendered response, not just the rendered DOM.
These are the ten schema errors that appear most often in AEO audits. Each one has been found on live sites that had visible schema but were getting zero citation benefit from it.
Error 1: Schema Rendered by JavaScript, Not Present in Server HTML
This is the most common error and the one with the biggest impact. A CMS plugin or theme generates your schema via JavaScript. It appears correctly in your browser's developer tools. It does not appear in the raw server response that AI crawlers receive.
How to check: Run curl -A "Googlebot" https://yoursite.com/your-page/ | grep "application/ld+json" in a terminal. If nothing returns, your schema is JavaScript-rendered and invisible to AI crawlers.
How to fix: Move schema generation to the server layer. On WordPress, use a plugin that outputs schema in PHP rather than JavaScript (RankMath and Yoast SEO both do this by default). On Next.js or React, move schema output to server components or static generation. On Shopify, place schema in Liquid templates rather than JavaScript files.
Error 2: FAQPage Schema Without Matching Visible Content
Schema must match what users can actually read on the page. A FAQPage schema with question-answer pairs that do not appear in the visible HTML body creates a schema-content mismatch. AI engines cross-check schema against visible content. Mismatches reduce trust and can result in the schema being discarded.
How to check: Open each FAQ question in your schema and search for it on the page with Ctrl+F. If it is not visible on the page, the schema is invalid for AEO purposes even if it passes the Rich Results Test format check.
How to fix: Only include FAQ questions in schema that are visibly answered on the page. If you want a question in the schema, it must have a visible answer in the page body. Adding hidden FAQ content — in a collapsed accordion that never renders to crawlers, or in a div with display:none — does not count.
Error 3: dateModified Set to the Original Publish Date
This is a freshness signal failure. The dateModified field tells AI engines when content was last updated. If dateModified matches datePublished from two years ago, AI engines treat the content as two years old, regardless of whether the actual content has been refreshed.
How to check: Find your Article JSON-LD and compare the datePublished and dateModified values. If they are identical and the page is more than 60 days old, this is an active error reducing your freshness signal.
How to fix: Update dateModified every time you make a meaningful content change. Update it manually in your schema plugin on the day of the edit. Set a calendar reminder to refresh the dateModified on your highest-value pages quarterly, even if the change is minor — updating a statistic or adding a new FAQ question is sufficient to justify a current dateModified.
Error 4: Organisation Schema Missing From Pages Other Than the Homepage
Organisation schema placed only on the homepage is not connected to your blog posts or service pages. AI engines need to know the publisher entity for each piece of content they cite. Without a publisher link connecting blog posts to your Organisation entity, each post is attributed to an anonymous source.
How to fix: Add a publisher field in your Article schema on every content page, referencing your Organisation entity via @id:
"publisher": {
"@type": "Organization",
"@id": "https://notioncue.com/#organization",
"name": "NotionCue"
}
The @id link is the mechanism that connects the Article to the Organisation entity. Without it, the publisher field is just a name string — useful, but not an entity link.
Error 5: sameAs Links Pointing to Non-Existent or Renamed Profiles
A sameAs link to a LinkedIn company page that was renamed, a Crunchbase profile that was merged, or a Twitter/X handle that was changed creates a broken entity reference. AI engines follow sameAs links to verify entity claims. A broken link is the same as a missing link — the entity verification fails.
How to check: Open every URL in your Organisation schema's sameAs array in a browser. Confirm each one resolves to an active, accurate profile with your current brand name and description. Do this quarterly.
How to fix: Update every broken or stale sameAs URL immediately. Remove any links to platforms where you no longer have an active presence. A shorter sameAs array with all accurate links outperforms a longer one with two stale links that break entity verification.
Error 6: Person Schema Not Linked to Article Schema
Adding Person schema on your About page is useful. It is not enough. The link between the author entity and the Article they authored needs to be explicit in the Article schema. Without it, AI engines cannot connect the author's credentials to the content, and the E-E-A-T signal from the author profile does not transfer to the article.
How to fix: In your Article schema, reference the author with a full @id link back to the Person entity:
"author": {
"@type": "Person",
"@id": "https://notioncue.com/about/#person",
"name": "Sudhir Singh",
"url": "https://notioncue.com/about/"
}
The @id here must match the @id on your Person schema exactly. Copy and paste it — do not retype it. A single character difference breaks the entity link.
Error 7: HowTo or FAQPage Schema on Pages With No Matching Content
Some teams apply FAQPage schema to pages that have no FAQ section. They add it speculatively, hoping it will improve citation rates. It does the opposite. AI engines that retrieve a page with FAQPage schema expect to find question-and-answer content. When they do not find it, the schema credibility of the entire domain takes a hit.
How to check: Run your site through a schema crawl (Screaming Frog, Semrush, or Google Search Console's Enhancements report). List every page with FAQPage schema. Visit each one and confirm a visible Q&A section exists. Remove schema from pages where it does not.
Error 8: Multiple Conflicting Schema Blocks on One Page
Some CMS setups generate schema from multiple sources — the theme outputs one Article block, a plugin outputs another, and a manually added script block creates a third. Conflicting or duplicate schema blocks for the same entity on one page create parsing uncertainty. AI crawlers may use all of them, one of them, or none of them.
How to check: View your page source and search for application/ld+json. Count the script blocks. If you have more than two, investigate which sources are generating them and consolidate.
How to fix: Use the @graph array to combine all schema types for a page into a single script block, as shown in the HowTo schema implementation guide. Disable any plugin or theme feature that generates conflicting schema for the same page.
Error 9: FAQPage Answer Text That Is Too Long
FAQPage answer text over 200 words per answer is harder for AI engines to extract as a standalone citable passage. The ideal length is 40 to 60 words — long enough to be substantive, short enough to be extracted as a direct response. Long answers are treated as editorial content rather than extractable Q&A pairs.
How to fix: Edit every FAQPage answer longer than 80 words. Keep the most direct, answerable sentence or two. Move supporting explanation to the page body below the FAQ section. The FAQ schema is for extraction. The prose beneath it is for reading.
Error 10: BreadcrumbList Schema Not Matching Actual URL Structure
BreadcrumbList schema that shows a hierarchy different from your actual URL structure creates a content-schema mismatch for topical hierarchy signals. A page at /blog/aeo-audit/ with BreadcrumbList showing it under /resources/aeo/ confuses AI engines about where this content sits in your site structure.
How to fix: Generate BreadcrumbList schema from your actual URL path. The schema should reflect where the page actually lives, not where you wish it lived. If your URL structure needs reorganisation for topical clarity, fix the URLs first and update the schema to match.
The NotionCue AI Crawler Audit checks whether your schema is in the server-rendered HTML response (visible to AI crawlers) or only in the JavaScript DOM (invisible to most AI crawlers). It also flags pages where schema exists but is not being fetched at all — which is the first thing to confirm before spending time on schema content errors. Run it before any schema audit to confirm the schema is reachable.
Frequently Asked Questions
How do I validate schema without a developer?
Google's Rich Results Test at search.google.com/test/rich-results accepts a URL and checks all JSON-LD on the page for format errors. Schema.org's validator at validator.schema.org accepts pasted JSON-LD and checks it against schema.org specifications. Both are free, require no login, and return results in seconds. Neither confirms whether schema is being parsed by AI crawlers — for that, the curl server-response check described under Error 1 is the most reliable method.
Can schema errors cause existing citations to disappear?
Yes. If a page currently earns citations partly because of valid schema, and a site update introduces a schema error, citation rate can drop as AI crawlers start ignoring the malformed block. This is one reason to recheck schema after any CMS update, theme change, or plugin update that touches your page templates.
How long does it take for fixed schema to improve citation rates?
Perplexity responds fastest — often within days of a schema fix being confirmed in the server response. Google AI Overviews follow Google's normal index update cycle, typically one to two weeks after the page is re-crawled. ChatGPT takes longer, four to eight weeks for the retrieval layer and months for model memory. Track Perplexity citation rate first as your leading indicator.