When your structured data drifts from the page, which version do AI assistants quote?
· Visora
When your structured data drifts from the page, which version do AI assistants quote?
Most teams treat structured data as a one-time build. You ship the JSON-LD, the rich result appears in classic search, and nobody touches it again until a template changes. Meanwhile the visible page keeps moving: prices get updated, a promotion ends, a shipping cutoff changes, a size chart is rewritten. Nothing breaks loudly. The markup still validates. But the two versions of your product have quietly separated, and when an AI assistant quotes you, it has to choose between them.
This gap is worth naming. Call it schema drift: the distance between what your structured data asserts and what a human reading the page would conclude.
## What schema drift actually looks like
Drift rarely means the markup is missing. It usually means the markup is stale but valid. A few patterns show up constantly in late-2026 samples of cited and non-cited product pages.
- Price drift. The price field still carries the pre-discount number while the visible page shows the sale price. A validator passes. An assistant reading both values now holds a contradiction.
- Availability drift. The availability field says in-stock because that was the template default, while the page visibly says pre-order or backordered.
- Rating drift. The aggregate rating carries a review count from an import that ran eighteen months ago; the visible page shows a different, usually lower, number.
- Policy drift. The return policy or shipping fields describe a 30-day window that the visible returns page no longer offers.
- Identity drift. The page H1, the product name field, and the title tag describe the product three slightly different ways, so an assistant has no single confident label to attach to the entity.
None of these are markup bugs in the narrow sense. Each one is a content-operations bug that happens to live in markup.
## Why assistants resolve it the way they do
When an assistant encounters a page where the markup and the visible text disagree, it does not necessarily fail. It resolves. The resolution rules are not published, but the behavior observed across 2026 samples is consistent enough to plan around.
In our read of a late-2026 sample of AI shopping citations, the visible page won the overwhelming majority of the time when the two disagreed on price, availability, or rating. That is not because markup carries no weight — it is because markup is a claim and visible text is evidence. A page that says one thing in its price field and another in the buy box gives the model no reason to prefer the hidden value.
The practical consequence is uncomfortable for teams that invested in rich markup and assumed it was doing the heavy lifting: drift does not merely fail to help, it actively introduces a reason for the assistant to hedge. A hedged answer rarely becomes a citation.
## A drift audit you can run this week
You do not need a crawler to start. You need twenty product pages and an hour.
1. Pick the sample. Choose the twenty pages that carry the most revenue, plus five you suspect are neglected. 2. Extract the visible facts. For each page, write down by hand the price shown, the availability wording, the review count shown, and the return window stated. 3. Extract the asserted facts. Pull the raw JSON-LD from the page source and list the same fields. 4. Diff the two lists. Anything that disagrees is drift. Note which side is correct — sometimes the markup is right and the page is wrong, which is a different fix. 5. Rank by blast radius. Price and availability drift affect every query about that product. Rating and policy drift affect fewer. Fix in that order. 6. Find the generator. If drift is systemic, the fix is not the page, it is whatever writes the markup. A template that hardcodes in-stock will regenerate the same problem on every new product. 7. Schedule a re-check. Drift accumulates with every catalog change. A quarterly pass on your high-traffic pages catches most of it.
Step six is the one teams skip, and it is the only step that stops the bleeding.
## The fix is not to add more schema
There is a reflex to respond to any markup problem by adding markup: more types, more fields, more nested entities. That reflex makes drift worse, because every additional asserted field is another place where the visible page and the markup can disagree.
The better discipline is smaller: assert only what the visible page supports, and make each asserted fact something a person could point at on the page. If a field cannot be traced to visible text, either put it on the page or drop it from the markup. Both are valid. What is not valid is asserting facts no human can verify.
This is also why we push teams toward treating markup and page copy as a single artifact with one owner, rather than two artifacts owned by two teams. Marketing owns the page. A developer owns the JSON-LD. Neither sees the other's diff, and the customer-facing contradiction is nobody's job.
## FAQ
Is schema drift the same as invalid markup?
No. Invalid markup fails validation and is easy to catch. Drift passes validation and is invisible to every linting tool, because each version is internally consistent. Only the comparison between markup and visible page reveals it.
Should I remove structured data if I cannot keep it current?
Removing well-maintained markup is a loss. Removing markup you cannot maintain is a reasonable trade, because a stale price assertion is worse than no asserted price — the visible page can still speak for itself. Prefer shrinking the markup to what you can keep true.
How often does drift actually cause problems?
It matters most on pages with fast-moving facts: price, stock, promotions, delivery cutoffs. A page whose facts are stable for a year rarely drifts enough to notice. Audit frequency should follow fact velocity, not page count.
Does drift affect classic search too?
Yes, though often more slowly, and the symptom is usually a rich result that quietly disagrees with the page. AI citation behavior is simply less forgiving, because the model has to produce a single fluent sentence rather than display two values side by side.
You can see how a page scores when its markup and visible facts disagree by running it through the free check at [geovisora.com/audit](/audit). If you want the reasoning behind how contradictions are weighted, the [FAQ page](/faq) lays it out. The short version: a page cannot be confidently quoted until it stops arguing with itself.
Put this into practice
Audit your PDP or category page with Visora, then fix schema and FAQ gaps that block AI citations.
Run a free GEO audit →https://geovisora.com/en/blog/schema-drift-when-structured-data-outlives-the-page-2026