Fixing Rich Result Coverage Drops
A coverage drop is when fewer of your pages carry a rich result than before: the valid item count in a Search Console enhancement report falls, or clicks and impressions for listings with stars, prices or event dates slide away. Shop owners, publishers and agencies usually spot it weeks after it started.
The cause is nearly always one of a handful of things, and each leaves a distinct pattern in the data. This guide shows you how to read that pattern, match it to a date and a change, put the markup back where it was lost, and prove the recovery.
What counts as a coverage drop
Rich result coverage is simply how many of your pages Google treats as carrying a particular rich result, and how often those results turn up in searches. Two places in Google Search Console tell you about it, and they measure different things:
- Enhancement reports (listed under Shopping or Enhancements in the left-hand menu, one per result type such as Product snippets, Merchant listings, Review snippets, Event or Breadcrumbs) count items: structured data objects Google found on pages it crawled, split into valid and invalid.
- The Performance report, filtered by Search appearance, counts clicks and impressions for searches where your listing showed a particular enhancement.
A drop in the first means Google is finding less valid markup on your site. A drop in the second, with the first holding steady, means Google is showing the enhancement less often, which is usually not something a code fix can reverse. Deciding which of the two has happened is the most useful thing you can do in the first ten minutes, because it tells you whether to open your theme files or your notes on Google announcements.
The five patterns and what usually causes each
Almost every drop fits one of these shapes. Open the enhancement report for the affected type, set the chart to the longest range available, and compare it with the Search appearance filter in the Performance report.
| What you see | Most likely cause | Where to look |
|---|---|---|
| Valid items fall and invalid items rise by roughly the same amount | A new error in the markup: a field renamed, emptied or given the wrong format | The error name in the report, then the template that produces it |
| Valid items fall and nothing rises to replace them | The markup has gone from the pages, or Google can no longer see it | Page source, rendered HTML, theme or plugin updates, indexing |
| A report disappears entirely | Google stopped detecting that type anywhere on the site, or stopped supporting it | Google Search Central announcements, then your templates |
| Items steady, impressions with the enhancement fall | Google showing the feature less, or your pages ranking for fewer queries | Performance report without the filter, Google announcements, ranking changes |
| Everything falls at once across several types | A site-wide problem: manual action, indexing loss, robots rules, migration | Manual actions report, Pages report, robots.txt, redirects |
A slow, steady decline is different from a cliff. Cliffs come from single events such as a deploy. Gentle slopes tend to come from content drift: products going out of stock and being unpublished, events passing their dates, or job adverts expiring, each removing a valid item one at a time.
Changes on your side that remove markup
When the markup itself has gone, the change is almost always one of these. They are listed roughly in the order they turn up in real investigations.
Theme, plugin and app updates
A theme update can replace a template file that someone had edited to add markup, wiping the edit. An SEO plugin update can change which schema it outputs by default. On shop platforms, removing or replacing a review app often takes the rating data with it, which drops review snippets and can turn product snippets invalid if the rating was the only thing satisfying the requirement for an offer, review or rating.
Redesigns and migrations
A new site, a new theme or a move to another platform is the single most common cause of a total loss. The old build had markup written into its templates; the new build was designed from visual mock-ups and nobody listed structured data as a requirement. URL changes add a second problem: Google must discover and recrawl every new address before the new pages can count as valid items, so even a perfect migration shows a dip.
Markup moved into JavaScript
If markup that used to be in the server HTML is now injected by a tag manager or a front-end framework after load, Google can usually still read it, but only after rendering, which can be delayed and can fail when scripts error or are blocked. Pages that depend on client-side rendering for structured data are more fragile.
Caching and performance tools
Optimisation plugins that combine or delay scripts sometimes treat application/ld+json
blocks as JavaScript and defer, strip or minify them incorrectly. A CDN rule that serves a cached copy
made before the markup was added can hide a fix for days.
Content changes
Editors deleting visible reviews, hiding prices behind a login, or turning a recipe into a gallery all remove the content the markup must match. Some tools then stop printing the markup; others keep printing it, which is a policy risk rather than a coverage win.
Changes on Google's side
Some drops have nothing to do with your site. Google has narrowed or ended several rich result types in recent years. The two best known are FAQ results, limited in 2023 to well-known authoritative government and health sites, and HowTo results, which Google stopped showing in 2023. Google has also retired other less-used types since then and announces such changes on its Search Central blog and in the documentation updates log.
Signs that a drop is Google's doing:
- The date matches a published announcement, not a deploy.
- Valid items are unchanged, but impressions for that search appearance fall to near zero.
- Other sites in your sector lose the same feature at the same time.
- The Rich Results Test stops listing the type at all, even for a page it used to pass.
There is no fix for a retired feature. Keep the markup only if it still describes the page accurately, and move the effort to types Google still shows for your kind of site.
Getting a before-and-after copy of the markup
The fastest way to find what changed is to put the old markup and the new markup side by side. Sources for the old version, best first:
- Version control. If your templates are in Git, look at commits around the drop date that touch template, layout or schema files.
- Staging or backups. A backup taken before the change, restored to a test environment, gives you the exact old HTML.
- A public web archive. Archived copies of your product or event pages often keep the JSON-LD in the page source.
- Your own earlier exports. If you ran the Suite or a crawler before the drop, its saved results show which types each page had.
Compare the two versions for four things: whether the block exists at all, whether the @type
is the same, whether required properties are still present and filled, and whether values changed format,
for example a date losing its time zone or a price gaining a currency symbol.
Before: "price": "24.00", "priceCurrency": "GBP"
After: "price": "ยฃ24.00"
That single change, typical of a theme that switched to a formatted money filter, is enough to move every product from valid to invalid in the Merchant listings report.
The fix, step by step
Step 1
Pin down the date and the metric that fell
Open the enhancement report for the affected type in Search Console and widen the chart to its full range. Note the first day valid items started falling and by how much. Then open the Performance report, add a Search appearance filter for the same feature and note when clicks and impressions changed. Write both dates down, because every later step compares them against your changes and against Google announcements.
Step 2
Classify the drop by its pattern
Decide which shape you are looking at: valid items swapping into invalid, valid items vanishing with nothing replacing them, a whole report disappearing, impressions falling with items steady, or every type falling together. Each shape points to a different family of causes. Write the shape next to your dates. If several rich result types fell on the same day, treat it as one site-wide problem rather than several separate markup faults.
Step 3
Line the date up with changes on both sides
List everything that changed on your site in the week before the drop: deploys, theme or plugin updates, app installs and removals, CDN or caching changes, migrations and bulk content edits. Then check Google Search Central for announcements around the same date and look at the Manual actions report. A clear match on your side narrows the search to one change; a match only on Google's side usually ends the investigation.
Step 4
Compare the markup before and after
Take
one URL that used to be valid and is not now. Get its old markup from version control, a backup or a
web archive, and its current markup from the live page source. Compare the @type, every
required property and the format of each value, especially prices, dates and URLs. Most drops come down
to one missing or reformatted property repeated across every page that shares the same template.
Step 5
Check what Googlebot renders and indexes
Run the same URL through URL Inspection in Search Console, test the live URL and open
the rendered HTML to confirm the markup is there after rendering. Check that the page is indexed, not
blocked by robots.txt, not redirected and not marked noindex. If the markup appears in your
browser but not in the rendered HTML, a script, consent tool or optimisation plugin is stopping it reaching
Googlebot.
Step 6
Restore the markup at the source
Fix the template, plugin setting or app configuration that produces the markup, not individual pages, so every affected URL is repaired at once. Where an update overwrote an edit, move the markup into a child theme, a snippet or a setting that survives updates. Purge any page cache and CDN cache afterwards, then run the Rich Snippets Suite on one URL from each affected template to confirm the markup is back and eligible.
Step 7
Validate the fix and watch the recovery
Open the relevant issue in the enhancement report and press Validate fix, then request indexing for a handful of important URLs. Google rechecks affected pages as it recrawls them, which can take days for busy pages and weeks for the long tail. Record the fix date, then watch valid items and search appearance impressions weekly until they level off. Expect items to recover before impressions do.
What a normal recovery looks like
Recovery is rarely a straight line back up. Knowing the usual shape stops you from reverting a good fix too early.
- Items first. Valid items climb as Googlebot recrawls pages. Frequently crawled pages such as the home page and top products return within days; deep pages can take several weeks.
- Impressions later. Google needs to process the refreshed pages before the enhancement appears in results again, so search appearance data usually lags the item count.
- Not always to the old level. If you lost items because products were deleted, events passed or jobs closed, those will not come back, and they should not. Compare against the number of pages that still exist and are eligible, not against the old peak.
- Validation can fail partway. If Search Console reports a validation as failed, open the examples. Usually a second template or a subset of pages, such as products with variants, still has the old fault.
Stopping the next drop
- Treat structured data as a requirement in every redesign, migration and theme change, with the expected types for each template written into the brief.
- Test one URL per template before and after every release. A short list of representative pages, run through the Suite or the Rich Results Test, catches most regressions before Google does.
- Keep markup where updates cannot overwrite it: a child theme, a dedicated snippet, a plugin setting or your own code under version control.
- Watch the reports on a schedule. Search Console emails about new issues, but a quiet fall in valid items does not always trigger one. A monthly look at each enhancement report and the Suite's coverage history is enough for most sites.
- Follow Google Search Central announcements so a retired feature is recognised as such on day one, rather than after a week of debugging.
For building markup that holds up through changes, see the Schema Builder Guide; for keeping an eye on unexpected markup changes between releases, the Schema Drift Guide covers the monitoring side.
1. Why did my rich results disappear from Search Console overnight?
A sudden fall usually has a single cause on a single date. On your side that is most often a deploy, a theme or plugin update, a migration or a removed review app that took the markup with it. On Google's side it can be a retired or restricted rich result type, or a manual action. Match the first day of the fall against your change log and Google's announcements, then compare the old and new markup on one affected page.
2. My valid items are steady but rich result impressions fell. What does that mean?
It means Google still finds valid markup on your pages but is showing the enhancement less often. That can happen because your pages now rank for fewer queries, because Google changed when it shows that feature, or because competitors now take the space. Check the Performance report without the Search appearance filter to see whether overall impressions fell too. A markup fix will not help here; the answer lies in rankings, content or Google's own changes.
3. How long does it take for rich results to come back after a fix?
There is no fixed period, because recovery depends on how quickly Google recrawls each page. Pages crawled often, such as your home page and best-selling products, can return within days. Pages deep in the site may take several weeks. Pressing Validate fix and requesting indexing for key URLs helps with the first few, but the long tail recovers at Google's pace. Valid items usually recover before search appearance impressions do.
4. Can a website redesign remove rich results even if the content is the same?
Yes, and it is one of the most common causes. Structured data lives in templates, and a new design built from visual mock-ups often leaves it out because nobody listed it as a requirement. Changed URLs make it worse, because Google must discover and recrawl every new address before its markup counts. Before launch, compare the old and new templates for each page type and confirm the same rich result types are detected on both.
5. Why does the Rich Results Test pass while Search Console still shows the drop?
The Rich Results Test looks at the live page right now, while Search Console reports what Google found the last time it crawled each page. After a fix, the test passes immediately but the report only improves as pages are recrawled. If the test passes and Search Console has not moved after several weeks, check that the pages are indexed, not blocked, and that a CDN or cache is not still serving an older copy to Googlebot.
6. Could a Google update be the reason my rich results dropped?
It could. Google has restricted or retired several rich result types in recent years, including FAQ results, now limited to authoritative government and health sites, and HowTo results, which stopped in 2023. If your drop matches the date of a published change, valid items stay steady and other sites lose the same feature, it is almost certainly Google's doing. Keep markup that still describes the page accurately, and move effort to features that are still shown.
7. Should I roll back a theme update if it caused the drop?
Rolling back can be a sensible short-term fix if the old theme is still safe and supported, because it restores the markup quickly. But it only postpones the problem, since the next update will remove it again. The lasting fix is to move your markup somewhere updates do not overwrite, such as a child theme, a separate snippet, an app setting or a plugin configuration, and then apply the theme update on top of it.
The Rich Snippets Suite identifies which rich result types each page is eligible for, validates the markup, previews how the result could look and tracks the rich result coverage your pages get in Google over time.
Open Rich Snippet Fixes โ