Why does Google Merchant Center show the same sale price on every variant of my product?

If Google Shopping shows the same price for every size or color, or drops the sale price entirely, the cause is almost always variant URLs or compare-at prices that never made it into the feed correctly.

Google ShoppingMerchant Centerpricingproduct feedsvariants

What's going on

You've set different sale prices on different variants, say $10 off the small and $15 off the large, but when you check Google Merchant Center or your live Shopping ads, every variant shows the same price, or the discount disappears on some sizes and colors. This is a common complaint from merchants running variant-level promotions, because the mismatch never shows up in Shopify admin itself; it only appears once Google has crawled your feed and started serving ads.

The root of the problem is almost always in how the feed identifies each variant, not in how the discount or price was set up in Shopify. Google Merchant Center treats every product variant as its own item with its own ID, link, price, and sale price. If those fields aren't accurate and unique per variant, Google either merges variants together and shows one price for all of them, or reads the wrong variant when it crawls your storefront to double-check the feed.

Because the symptom looks identical whether the cause is a feed configuration issue, a missing compare-at price, or a mismatch with the storefront's product data, merchants often spend time re-adjusting prices in Shopify admin, which changes nothing, before realizing the issue is upstream in how the data reaches Google.

Why it happens

Google's feed spec expects each variant to have its own unique ID (Shopify's variant ID), a link that resolves to that specific variant, and its own price and sale price values. When a feed or theme submits the plain product URL instead of a variant-specific one, Google's crawler lands on whichever variant the page shows by default and pulls that single price for verification, which can then get applied across the board or trigger a mismatch flag on the rest.

A second common cause is that the sale price was never actually written to Shopify's compare-at price field for every variant. It's easy to show a strikethrough price on the storefront through a theme or promotion app without setting an actual compare-at price on each variant record. Google's sale price data only comes from that underlying field, so any variant missing it simply won't show a discount, no matter what the storefront displays.

Less commonly, the structured product data on the live page doesn't update per variant, so Google's automatic check against the page content conflicts with the feed, and Merchant Center reports a mismatch even though the feed itself is correct.

5 ways to fix it

1

Check whether your feed is linking to the whole product instead of each variant

Open the Google & YouTube sales channel in Shopify admin and look at the product-level warnings it surfaces for this item. The most common cause of this exact bug is the feed sending Google the plain product URL instead of a link to the specific variant. When Google's crawler lands on a URL that doesn't point to one variant, it reads whatever variant the theme shows by default, usually the first or cheapest option, and that single price and sale price get reused for every row tied to that product. Confirming that each variant in the feed links to its own distinct URL and variant ID resolves most cases without adding anything new.

2

Make sure compare-at price is set on every variant, not just the product

Google only lists a sale price for a variant when Shopify's data shows a compare-at price higher than the current price on that specific variant. If a sale price was applied to one variant, or only shown visually on the storefront through the theme or a discount app without an actual compare-at price saved on each variant, Google has nothing to read for the others and either drops the discount or repeats the one variant it does have data for. Check Price and Compare at price on each variant individually in Shopify admin rather than assuming they inherit from the product.

3

Use Merchant Center's built-in diagnostics before assuming the fix worked

After correcting the data, check the diagnostics or issues section in Merchant Center to see which item IDs are still flagged, and give it time to re-crawl rather than assuming a fix applies immediately, feed updates aren't instant. Comparing the flagged item IDs against your Shopify variant IDs will tell you whether the problem is limited to a few variants, which points to a data issue, or affects the whole product, which points to a feed setup issue.

4

Compare your feed against the structured data on the live product page

Google checks your feed against the page it crawls, and if the two disagree it's treated as an error even when the feed itself is correct. Load the affected variant's URL in a structured data testing tool and compare the price and offer details against what your feed says. A theme that doesn't update its embedded product data when a shopper switches variants is a common and easy-to-miss cause of this mismatch.

5

Consider a dedicated feed app if variant pricing keeps breaking

If your catalog depends heavily on variant-specific promotions and the native Google & YouTube channel keeps flattening or mismatching them, a third-party product feed app from the Shopify App Store can give you more direct control over how variants, IDs, and sale prices map into the feed. That comes with an extra subscription and setup time, so treat it as a fallback once you've ruled out the data and URL issues above, not the first thing to try.

Bottom line

This is almost always a data problem, not a Shopify or Google bug: variant URLs that don't point to a specific variant, and compare-at prices that were never actually saved at the variant level, are what make Google flatten or duplicate sale prices across variants. Work through the feed and variant settings first, and only consider a paid feed-management app if you have complex per-variant promotions the native channel genuinely can't express.

Still Stuck?

Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.