Your WordPress Theme Update Removed All Your Structured Data
On this page
If your rich results vanished and the only recent change was a theme update, start with the theme. If it was emitting your structured data, an update that refactored its templates can drop that output without changing anything you can see. Schema is an invisible layer: a JSON-LD block the theme wrote into the page never shows up in visual QA, so the update passes every “the site looks fine” check while your recipe, product or article markup disappears. Google names this exact risk in its introduction to structured data: check markup with the Rich Results Test during development and the rich result status reports after deployment, because pages might break after deployment due to templating or serving issues. The durable fix is to stop letting the theme own your schema and move it into a plugin whose job is emitting it.
First, confirm the markup is gone rather than present and unused. The two cases look alike in the search results and need different fixes.
Diagnose with two tools that agree on “gone”
The property view. Open the rich result status reports in Search Console for the types you use. A theme update is an event, so look for a drop in valid items that starts around the update date, rather than a decline already underway before it.
The page view. Run Google’s Rich Results Test on a page that used to earn a rich result. The test reports a status for the URL, and its code explorer shows the rendered source code; “No items detected” for a type you expect means the markup isn’t in what Google renders. The test accesses the page as an anonymous user, so markup that only appears for logged-in users won’t count.
A drop in the report that starts at the update, plus “No items detected” on sample URLs, points to removal. If the test still finds valid items but rich results stopped appearing, the markup is there, and the question becomes eligibility rather than output.
Then read the theme changelog, but don’t treat its silence as evidence. A change to template output or to which component handles schema may not be listed as a user-facing change.
Find which layer was producing the schema
Before fixing anything, find out where the markup came from. On WordPress, the theme, an SEO plugin and a dedicated schema plugin can all emit JSON-LD, and when two of them do, you also have duplicates to resolve.
Test by toggling layers on a staging copy:
- Deactivate the SEO plugin and run the Rich Results Test on a sample URL. If the markup is still there, the theme or another plugin is the source; if it disappears, the SEO plugin was contributing.
- Switch the staging copy to a default theme and test again. If the markup disappears only when the theme changes, the theme was the source.
The answer to “which component injects the recipe block” tells you whether the update removed your only source or one of several. The obvious suspect may not be the right one: an update can also change how the theme and the SEO plugin coordinate and leave a gap between them.
Roll back, or decouple
Rolling back the theme restores the old output and buys time, but it leaves you on a version you will have to leave, and the next update brings the same risk. Use it as a stopgap when rich results carry revenue and you need them back now.
The durable choice is to decouple structured data from the theme. Move schema generation into a dedicated plugin, a recipe plugin for a food site or a general schema plugin for mixed content, so the markup belongs to a component whose job is emitting it. Once the plugin owns the schema, theme template changes no longer decide whether it appears, though a theme that breaks the page head can still interfere, and plugin updates still need the same check. Plugin capabilities change between versions, so confirm that the version you install outputs the types and properties you need before you commit.
Google’s guidance on format fits the move. It recommends JSON-LD where your setup allows, as the easiest to implement and maintain at scale, and it can read JSON-LD injected by JavaScript or by embedded widgets in your CMS.
Migrate without losing what you had
Replacing theme markup with plugin markup is a migration, and the work depends on how the old schema was populated.
- Structured fields. If the theme drew schema from fields such as a recipe card’s prep time, ingredients and yield, check whether the new plugin imports those fields or maps to them, so nobody re-enters data by hand across hundreds of posts.
- Post content. If the theme generated markup from general post content, mapping it to plugin fields is more involved; stage it and test before rolling it out.
Either way, validate a representative sample with the Rich Results Test before changing the whole site. Google’s structured data introduction also says it is more important to supply fewer but complete and accurate recommended properties than every possible property with less complete, badly formed or inaccurate data, which is a useful rule when deciding what to migrate.
Recovery runs on the recrawl
Once the source is fixed, Google has to recrawl and reprocess the pages before the reports recover. Google’s page on asking Google to recrawl says crawling can take anywhere from a few days to a few weeks, and that repeated requests for the same URL won’t speed it up. So resubmit the sitemap, request inspection for a handful of key pages if you want, and let the recrawl do the rest.
Make the next break visible
This failure is silent for as long as nobody looks at the schema layer. A broken stylesheet, a server error or a missing image produces complaints or visible breakage. Missing JSON-LD produces nothing a human will notice on the page, and any traffic effect shows up later, as rich results fade, by which point the cause may be several updates back.
Build the checks into the process:
- Run the Rich Results Test on a known-good URL after every theme or major plugin update, before calling the update done.
- Review the rich result status reports on a schedule, alongside uptime and Core Web Vitals.
- Check that the report you rely on still exists. Google’s Search updates log shows reporting changing: in November 2025 it announced that support for practice problem markup would be removed from Search Console rich result reporting and the Rich Results Test starting in January 2026.
Frequently asked questions
How do I tell schema removal apart from markup that is present but not shown?
Run the Rich Results Test on a page that used to earn the rich result. “No items detected” means the markup isn’t in what Google renders, as in the theme-update case. If the test still finds valid items, the markup is there: Google’s structured data guidelines say it doesn’t guarantee rich results even for correctly marked-up pages, and a structured data manual action removes rich result eligibility, so check the Manual Actions report in Search Console.
Will reinstalling the old theme bring rich results straight back?
It restores the markup, but rich results come back, if at all, only after Google recrawls the pages, and Google says crawling can take anywhere from a few days to a few weeks. Rollback is a stopgap; moving schema into a dedicated plugin is the durable fix.