Skip to main content

Theme switch leftovers and Google Shopping: what to remove

Google’s Merchant Center help says structured data must match the values shown to the customer, and a theme migration is the easiest way to break that. After a switch, hunt down duplicate product markup, old verification tags and orphaned app code, and keep one source for each product fact.

Major4 min read

Why this matters

Google's “About structured data markup for Merchant Center” page sets the rule: “Structured data must match the values that are shown to the customer. Providing incorrect data on your product landing pages is a violation of our structured data guidelines.” Two Product blocks on one page, one from the old theme still carrying last season's price, means one of them is incorrect data by definition. The same page explains the payoff of getting it right: automatic item updates read this markup to correct price and availability mismatches in your product data.

The landing page rules ask the same of the page itself. The “About landing page requirements” page says “If your website uses structured data, the requirements about price, availability, currency and condition apply to your site as well.” It also says “Do not change displayed product information after initial loading.” An old script that rewrites a price or stock message after the page appears breaks that rule quietly, long after everyone has forgotten it is there.

Verification tags are a smaller mess with a sharper edge. Google's URL verification help says “A single URL can only be claimed by one account.” A google-site-verification tag left by an old agency or a previous account is clutter at best. Before you delete any of them, check in Search Console which owner relies on each one, so you do not remove the tag your current account uses.

Migrations leave things behind because nobody owns the old theme once the new one is live. Apps pasted code into the old theme, the new theme brings its own markup, and a tag manager adds a third copy. Each one works; together they disagree, and nobody sees it until two prices do.

The free scan reads the structured data on your pages. It flags a price, stock status or currency in the markup that contradicts what the page shows. A leftover block that is malformed is yours to find: run one page per template through the Rich Results Test. The misrepresentation checker lists every structured data check, and JSON-LD Product schema covers building one clean block.

Typical evidence

The old site never quite leaves

A migration leaves archaeological layers — a second schema block, a stray verification tag, a dead pixel — all in the source, all emitting signals. Two Product schemas on one page means the page declares its price twice, and after any change the two declarations diverge.

view-source: /products/oak-stool
<!-- old Liquid theme -->
<script type="application/ld+json"> "price":"24.99"
 
<!-- new headless build -->
<script type="application/ld+json"> "price":"29.99"
Duplicate signals found
2×JSON-LD Product schema — prices disagree
2×Merchant Center verification tag — two accounts
2×og:price meta — old Pixel vs new GTM
Delete legacy code — don't just disable it. Disabled code that still renders is still a signal. Re-validate until the Rich Results Test detects exactly one Product schema.

The public signals this check looks for:

  1. View source on a product page shows two Product blocks, one from the old theme and one fro…

    View source on a product page shows two Product blocks, one from the old theme and one from the new, with different prices or stock values.

  2. A review app and the theme both output product markup, each with its own rating and price

    A review app and the theme both output product markup, each with its own rating and price.

  3. Two or more google-site-verification tags sit in the page head, one of them from an agency…

    Two or more google-site-verification tags sit in the page head, one of them from an agency or an account nobody remembers.

  4. An old tracking pixel or tag manager container still fires alongside its replacement, so e…

    An old tracking pixel or tag manager container still fires alongside its replacement, so every event is counted twice.

  5. Code from uninstalled apps is still pasted into the theme files and loads scripts that no …

    Code from uninstalled apps is still pasted into the theme files and loads scripts that no longer do anything useful.

  6. Old social sharing tags carry a price or description from before the migration

    Old social sharing tags carry a price or description from before the migration.

What it looks like once it is right

The page carries one Product block at £24.00, in stock, matching what the shopper sees. The Rich Results Test finds a single Product item, one verification tag remains, and the old theme’s code is deleted, not just switched off.

Common mistakes

Common mistake

After a move to a new theme, a product page carries two Product blocks: the new one says £24.00 and in stock, the old one still says £19.99 and out of stock. Two verification tags sit in the head, one from an agency the store stopped using last year.

Fix checklist

View source, search for the leftovers, delete them

The duplication lives in the head and in script tags nobody scrolls to, so it's a 'read the source on purpose' job — best done right after the migration, while you still remember what changed.

Post-migration source audit · /products/oak-stool3 leftovers
found2nd application/ld+json Product block (old theme)deleted
foundgoogle-site-verification tag — second GMC accountremoved
foundlegacy Facebook Pixel defining og:priceremoved
Delete, don't disable — disabled code that still renders is still a signal. Re-validate until the Rich Results Test detects exactly one Product schema.

Questions merchants ask

Is it a problem to have two Product schema blocks on one page?

It is when they disagree, and two blocks from two themes rarely stay in step. Google's structured data page for Merchant Center says the markup must match the values shown to the customer. Keep one block from one source, and check it in the Rich Results Test.

Should I delete old google-site-verification tags?

Only the ones you can match to an account you no longer use. Google's verification help says a single URL can only be claimed by one account, so check in Search Console and Merchant Center which tag your current account relies on before you remove anything.

Does uninstalling an app remove its code from my theme?

Not always. Some apps paste code into theme files that stays after you uninstall them. After removing an app, search the theme for its name and view the source of a product page to check its scripts and markup are gone.

Remediation

Risk signal

A migration always leaves something behind, and the leftovers are the kind nobody sees until two prices disagree. Check the source on launch day, remove duplicates at the source, and run a scan once the new theme is live.
PriorityAddress and document this finding as part of the store’s remediation work.
EvidenceRecord the current state before each change, apply the fix, then capture the corrected state so every change is evidenced.

Similar cases

Sources

  1. About structured data markup for Merchant CenterGoogle Merchant Center Help — support.google.com
  2. About landing page requirementsGoogle Merchant Center Help — support.google.com
  3. About online store URL verification & claimingGoogle Merchant Center Help — support.google.com

Last reviewed 29 Sep 2026.

That is one issue. The library documents 134.

The free scan lists what it finds on your store. The paid report adds the affected pages, captured evidence and step-by-step fixes. Start free, with no account needed.