Rich results aren't designed to once you add schema. Google treats structured data as a signal, not a command. If that signal is incomplete, contradicts the page content, or sits on a URL that isn't properly crawlable, the feature simply won't appear — and Search Console often takes days to reflect the change.
The gap between valid markup and eligible markup is where most rich result losses happen. A page can pass the Rich Results Test with zero errors and still fail to earn a feature because a required property is absent, the entity type is deprecated, or the page was recently moved and hasn't been recrawled yet.
Understanding this distinction matters before you start debugging. Valid means the syntax is correct. Eligible means the content, markup, and page context all meet Google's specific requirements for that feature type. Both conditions have to be true at the same time.
The Two Failure Modes
- Hard failures: Syntax errors, missing closing brackets, invalid property values — caught by validators.
- Silent failures: Correct syntax but wrong content relationship, deprecated types, low-quality page signals — only caught by cross-referencing Google's feature documentation and Search Console data.
Most of the mistakes covered in this article fall into the silent failure category. That's what makes them expensive — they don't trigger an obvious error, so teams assume the markup is working when it isn't.