Mismatched product price in Merchant Center: why it happens and how to fix it

Updated · by Sergey Sachenok, Founder of Polyntor

Merchant Center showsMismatched product price

In short

  • Google opens your product pages and compares the price it finds there, and in your structured data, with the price in your feed. When they differ, the product can be disapproved.
  • The usual causes are boring: a feed that updates later than the site, sale prices with wrong dates, tax or currency handled differently, the wrong variant on the page, or a price that only appears after JavaScript runs.
  • Fix the source of the difference, not just the one number. Otherwise the next crawl finds the same problem.
  • Google warns that price mismatches can lead to an account warning or suspension, so a handful of disapprovals is worth treating as an early signal.

Check your store for this now

A free scan of your store against Merchant Center policies. No card needed.

What Google compares

Googlebot visits the landing page in your link attribute and reads the price a shopper would see, plus the price in your product structured data if you have it. It then compares that with the price attribute in your feed — or with sale_price while a sale is running. If the two do not agree, Merchant Center flags the product as Mismatched product price and it can stop showing in Shopping ads and free listings. In forum threads and older reports you may also see it as "Mismatched value (page crawl) [price]".

The rule behind it is simple: the amount and currency you submit must be the amount and currency a buyer sees on the product page and at checkout, and any buyer in the target country must be able to pay that price. Details are on the price attribute page.

Google also runs automatic item updates, which are on by default. When they work, Google quietly corrects the feed price to the one on your page and you may see an "Automatic updates: Mismatched price" notice. They are a safety net, not a fix: Google says they do not replace regular feed updates, may not keep up with prices that change more than once a day, and a product can still be disapproved instead of updated — for example when Google cannot read a price from the page.

Why the prices disagree

  • The feed is stale. You changed prices on the site, but the feed is fetched once a day, or your app syncs later. For a few hours the two disagree, and that is exactly when Googlebot comes by.
  • Sale prices with the wrong dates. The sale ended on the site but sale_price is still in the feed, or sale_price_effective_date uses the wrong time zone, so the sale starts or ends at a different hour than on the page.
  • Tax is handled differently. In the US and Canada the feed price should exclude sales tax; in the UK, the EU, Australia and many other countries it should include VAT or GST. A feed built for one market and sent to another will not match the page.
  • Currency switching. The page shows a different currency, or a different price, depending on where the visitor is. Google asks you not to change the price on the landing page based on the user's location, and Googlebot may not see what your local customers see.
  • The wrong variant. The feed lists the large size at one price, but the link opens the page with the small size selected. Each variant needs a URL that opens with that variant already chosen.
  • Prices loaded by JavaScript. If the price is filled in by a script after the page loads, Google may read an empty or placeholder value. Its help page says prices injected this way trigger the error.
  • Structured data out of date. The visible price is right, but the JSON-LD block still carries the old one — common after a theme change or with a plugin that caches markup.
  • Caching. A CDN or page cache serves bots an older copy of the page than the one your customers get.
  • Minimum quantities or member prices. If you sell in packs, the feed price must be the total for the minimum quantity. Prices only for members or logged-in customers do not belong in price; they go in the loyalty_program attribute instead.

Crossed-out "was" prices have their own, softer check. If the strikethrough price on your page does not match price while sale_price is set, Google drops the strikethrough from your listing rather than disapproving it.

How to fix it and get the products back

  1. Find the affected productsIn Merchant Center, open Products, then the Needs attention tab, and filter by the issue. Note when Google found the problem — your page or feed may already have changed since that crawl.
  2. Open each page the way Google doesOpen the exact URL from the feed in a private window with no cookies, and check the price, currency and selected variant. Then view the page source or run the Rich Results Test to see the price in the structured data. If the price is not in the source, it is being added by script.
  3. Decide which side is rightUsually the site is right and the feed is behind. Correct the price in your source data rather than editing it only in Merchant Center, or the next feed fetch will bring the wrong value back.
  4. Remove the causeFetch the feed more often or right after price changes, fix sale dates and time zones, put the price and structured data in the server-rendered HTML, stop switching price by location, give each variant its own preselected URL, and clear the cache after price updates.
  5. Update in bulk if there are manyDownload the list of affected products as a file from the issue, correct the prices at the source, and re-upload or wait for the next scheduled fetch.
  6. Ask for a re-checkGoogle re-crawls disapproved products on its own within hours or days. To speed it up, request a website check from the issue; Google says this can take up to 12 hours and you cannot send another request meanwhile. If you believe the flag is wrong, use "I disagree with the issue" and request a review.

When it becomes an account problem

One product with a stale price is a product-level issue. But Google states that price mismatches between the feed and the site can lead to an account suspension, and it has a separate account-level issue for this: Inaccurate price status due to inconsistency between feed and landing page. With it, the account gets a warning with a deadline, or products are disapproved in advance, until you fix the data and request a review, which Google says takes around 7 business days.

A price the buyer cannot actually pay is also one of the things Google looks at under its misrepresentation policy. So if mismatches keep coming back, fix the sync itself rather than individual products. If the account is already restricted, see Requesting a review after a suspension.

What Polyntor checks for this

  • Opens product pages from your feed (items that already failed a feed check first, then a random sample) and compares the feed price — or the sale price, when you submit one — with the price in the page's structured data, to the cent
  • Whether the currency in the feed matches the currency declared on the page
  • Whether the product name on the page matches the feed title, to catch links that open a different product
  • Price format in the feed: a positive number followed by a valid ISO 4217 currency code
  • Whether the feed currency matches the currency you set for your store
  • On the website scan: whether product pages carry Product structured data, and whether its price actually appears among the prices shown on the page

Fixed it? Scan again before you request a review

A free scan of your store against Merchant Center policies. No card needed.

Questions

My site shows the right price. Why does Google say it does not match?

Google may have crawled the page before your feed updated, or it saw a different page than you do: a cached copy, a different currency for its location, a price filled in by JavaScript, or old structured data. Check the time of the crawl in the issue and view the page source, not just the rendered page.

Should I include tax in the feed price?

It depends on the country. For the US and Canada, leave sales tax out of price. For the UK, EU countries, Australia and many others, include VAT or GST. The feed price must match what your page shows buyers in that country.

Do automatic item updates mean I can ignore this?

No. They are on by default and fix many small differences, but Google says they are not a replacement for keeping your data current, may not handle prices that change more than once a day, and products can still be disapproved. Treat an automatic-update notice as a sign your feed is lagging.

I sell in several currencies. Is that allowed?

Yes, but the page a product links to must show the price in the currency you submitted, prominently. Do not switch price or currency automatically by the visitor's IP. When Google itself shows a converted price to shoppers abroad, that converted figure does not have to appear on your page.

How long until the products come back?

Google re-crawls disapproved products by itself within hours or days. A website check requested from the issue can take up to 12 hours. An account-level review for inaccurate prices takes longer — Google mentions around 7 business days.

Can a few price mismatches get my account suspended?

Google warns that price mismatches may lead to suspension. Its help pages give no threshold, so the safe reading is: fix the cause as soon as the first ones appear, before they spread across the catalogue.

Related errors

Google’s own pages on this