Content negotiation
Cut what an AI pays to read your page.
Read →Agent view — served from /schema-drift.md.
Guide · updated September 2026
Schema drift is when your structured data no longer matches what the page displays — a JSON-LD price of $49 on a page showing $79, or an availability flag that says in stock when it is not. It matters because contradictions undermine an engine’s confidence in everything else you publish, and almost no audit checks for it.
A 2026 Ahrefs study of 1,885 pages found that adding structured data alone barely moved citation rates. That result surprised people who had been told schema was the lever. The likely explanation is that engines validate structured claims against the rendered page, so schema is a trust signal rather than a ranking input — and a signal only helps while it is true.
Which reframes the work. Adding more schema types to a page whose existing markup already contradicts itself makes things worse, not better. Correctness first, coverage second.
| Cause | How it happens | Frequency |
|---|---|---|
| Hardcoded markup | Schema written once by hand, page updated by a CMS | Very common |
| Separate data sources | Schema built from a feed, page rendered from a database | Common |
| Caching mismatch | Structured data cached at a different TTL from the page | Common |
| Template inheritance | A parent template injects defaults a child page overrides visually | Common |
| Migration residue | Old schema left behind after a redesign | Occasional |
Ecommerce suffers most, because prices and stock levels change constantly and the markup is rarely wired to the same source. But the pattern that catches B2B sites is simpler: an Organization block written three years ago listing an address, phone number or founder that has since changed.
Automated dateModified deserves particular attention. Stamping every page with today’s date to look fresh is a claim that is trivially checkable against your actual content, and getting caught making it is worse than being honestly stale.
Validators will not find it. Google’s Rich Results Test and schema.org’s validator check whether your markup is well formed, not whether it is true — a perfectly valid price that is completely wrong passes both.
Detection requires comparing the structured value against the rendered value on the same page, field by field. That is straightforward to automate for exact matches such as price and availability, and needs semantic comparison for descriptive fields, which is why we score the exact half deterministically and report the descriptive half as an advisory flag.
$ curl -s https://yoursite.com/product | grep -o '"price":[^,]*' # then open the page and compare
We cannot prove drift reduces citations. The Ahrefs finding shows schema volume does not increase them, which is suggestive but not the same claim. Our reasoning is that engines validate what they can and weight sources they can verify — plausible, and not established.
What is not arguable is that publishing a wrong price is bad regardless of any AI consideration, and that most sites have no process that would ever catch it. That alone justifies the check.
Questions
When structured data stops matching the visible page: a JSON-LD price that differs from the displayed price, an availability flag that contradicts the page, or an address that changed years ago. Validators do not catch it because the markup is still well formed.
Not on its own. A 2026 Ahrefs study of 1,885 pages found schema volume barely moved citation rates. Accuracy appears to matter more than coverage, because engines validate structured claims against the rendered page.
No. It validates whether markup is well formed, not whether it is true. A syntactically perfect price that is completely wrong passes every standard validator.
Price, availability, dateModified, aggregateRating, and organisation address and telephone. Ecommerce sites drift most on price and stock; B2B sites most often carry outdated organisation details nobody has looked at in years.
Eight checks against your domain in about fifteen seconds. No email.