Problem
Merchant Center price mismatch: how to fix it
A Merchant Center price mismatch means Google crawled the landing page and found a price that differs from the one in your feed. Individual products are disapproved with a page-crawl mismatch issue, and if the gap is wide enough across the catalogue the account itself can be warned. The disagreement almost always comes from one of three places: sale prices the feed does not carry, pages that show different prices to different visitors, or structured data that has fallen out of step with the visible price.
By CartKernel · Last reviewed 2026-09-07
Does this look familiar?
- Products disapproved with a mismatched value issue on the price attribute, found by a page crawl
- The issue clusters around items on promotion, in one currency market, or with many variants
- The price Merchant Center shows for a product is not the one you see when you open the page
- Disapprovals rise after a sale starts or ends and fall again a day or two later
- An account-level warning about price accuracy alongside the product-level disapprovals
Causes, ranked
Why it happens, most common first
Check them in this order. The first two account for most cases we open.
- most common
The feed sends the regular price while the page shows a sale
The feed maps price only, so a promotion applied in the store never reaches the sale_price attribute. Google crawls the page, sees the discounted figure, and disapproves the item. The reverse happens when a sale ends on the site and the feed keeps sending the old sale price.
- most common
The crawler sees a different price from your target-country shopper
Google's crawler generally arrives from a United States address. Stores that price by location or currency, show wholesale prices behind a login, or apply automatic discounts to certain visitors serve the crawler one figure and the feed another. Shopify Markets and currency apps are frequent sources.
- common
Structured data disagrees with the visible price
Google reads the Product schema on the page as well as the text. A theme that prints the first variant's price in the offers block, or a review app that injects a second Product schema with a stale price, gives the crawler two answers and the feed a third.
- common
The feed is fetched hours after prices change
A scheduled fetch runs once a day at a fixed time. Prices changed after that fetch sit wrong in Merchant Center until the next one, and any crawl during that window records a mismatch. Automatic item updates can only paper over this when the page's structured data is right.
- occasional
Currency, tax or variant differences
A feed in the wrong currency for the target country, a page that shows a tax-inclusive figure where Google expects the price before tax, or a landing page URL that opens a different variant from the one in the feed will each show up as a price mismatch on a subset of products.
The fix
In this order
Each step is something you can do today. Do them in sequence; skipping ahead is how a review fails twice.
Prevent it next time
- Test one product in the feed, on the page and in the schema after every theme, pricing or currency change
- Schedule promotions with sale_price_effective_date instead of overwriting price by hand
- Keep one feed per target country and currency, each pointing at that market's URLs
- Leave automatic item updates on for price so short gaps do not become disapprovals
Compare the three prices on one affected product
Open a disapproved item in Merchant Center and note the feed price. Open the landing page and note the visible price. Then check the Product schema with the Rich Results Test or the page source. Whichever pair disagrees points at the cause.
Map sale_price and its effective dates
Send the regular price in price and the current promotional price in sale_price. For scheduled promotions, add sale_price_effective_date so Merchant Center applies the sale on the same dates as the site. Confirm the channel app or feed tool actually populates both attributes.
Show the crawler the target-country price
Stop redirecting or repricing visitors by IP address for the pages in the feed, or build one feed per market that points at that market's URLs and currency. Remove login-only or automatic discounts from the crawlable page price, and keep the feed currency matched to the target country.
Repair the structured data
Leave one Product schema on the page, with an offers block that carries the selected variant's price and currency. Remove duplicate schema injected by apps, and make sure the offers price updates when a shopper switches variant or, better, that each variant URL renders its own price.
Close the timing gap
Turn on automatic item updates for price in Merchant Center as a safety net. Then reduce the delay at the source: schedule fetches to run after your nightly price job, or move to the platform channel app or the Content API so price changes push through within minutes rather than a day.
Wait for the recrawl and watch the count
After the fixes are live, Merchant Center recrawls affected pages on its own schedule. Watch the issue count fall over the following days. If an account-level warning was raised, respond to it with the list of fixes once the product-level count has cleared.
When to get help
Get help when the mismatches span several markets or currencies, when a feed app or theme controls the schema and you cannot see what it outputs, or when an account-level price warning has arrived and the catalogue is too large to check by hand. A price warning that turns into a suspension takes the whole channel down.
Free. We reply within one business day.
Do automatic item updates fix a price mismatch for good?
They cover short gaps by updating the Merchant Center price from the page's structured data, and only when that markup is correct. They do not fix a page that prices by location, a broken schema block or a feed that never carries sale prices. Treat them as a safety net.
Should feed prices for Canada and the United States include sales tax?
No. For both countries Google expects the price before tax, with tax shown to shoppers separately and derived at checkout. The page, the schema and the feed should all carry the same pre-tax figure.
Why are only a fraction of my products flagged for price mismatch?
Because the crawler samples the catalogue and because the mismatch usually lives in one condition: items on sale, items in one currency market, or items whose landing page opens a different variant. Group the flagged products by what they share and the cause shows itself.
Can price mismatches lead to an account suspension?
Yes, when they are widespread or persistent. Google treats a repeated gap between the advertised price and the checkout price as misrepresentation, which is judged at account level. Fixing the source quickly keeps the problem at product level.
Services that fix it for good
Related problems, answers and terms
Stop the leak.
A free Growth Analysis finds what is broken and ranks it by the revenue it costs you.