← All Merchant Center errors

Fix “Mismatched strikethrough price (page crawl)” in Google Merchant Center

Updated 27 September 2026 · 5 min read

Short answer. Merchant Center reports “Mismatched strikethrough price (page crawl)” when the crossed-out price on your product page differs from the price attribute you send with sale_price. Google then discards the original price and shows the sale without a strikethrough. Make the page’s crossed-out price, its structured data and your feed’s price the same number, with the sale price in sale_price.

Shown in Merchant Center asMismatched strikethrough price (page crawl)
Attributeprice
EffectWarning — Not a disapproval: Google drops the original price, so the sale shows without a strikethrough
Where to find itProducts → Needs attention, then filter by this issue
Free checkNot something a feed file shows; see below for what the check can tell you instead

What Merchant Center means by “Mismatched strikethrough price (page crawl)”

When a product is on sale, Google can show the sale price as the current price with the original one crossed out beside it — a sale price annotation. To do that it compares your product page with your data. Its help page for this issue says the issue appears when the pricing on your website differs from the price or sale_price you submitted, and that the original price is then discarded and not shown as a strikethrough price.

It is not listed as a disapproval: the product keeps showing, without the crossed-out price. With automatic item updates on, Google may instead correct the pricing itself and tell you so under “Automatic item updates active for strikethrough price”.

Why it happens

How to fix it

In Shopify

In Shopify the crossed-out price is the compare-at price. FeedRobin sends the compare-at price as price and the current price as sale_price whenever the compare-at price is the higher of the two, so the feed and a standard theme cross out the same number, and product changes reach your feeds within minutes. If the issue still shows, look for an app or theme section that prints its own “was” price, from somewhere other than the compare-at price.

In WooCommerce

During a sale, WooCommerce shows the regular price crossed out next to the sale price. Our free plugin sends the regular price in price and the sale price in sale_price, only while the sale is inside its scheduled dates, so the two agree. A plugin or script that adds its own “was” price after the page loads is the usual exception: remove it, or make it print the regular price.

In a CSV or XML feed

Whenever the page crosses out a price, send that price in price and the current one in sale_price, and regenerate the file when prices change. In the page’s structured data, the original price goes in a priceSpecification with priceType set to https://schema.org/StrikethroughPrice, per Google’s merchant listing documentation — make it the same number as price.

How long until Merchant Center clears it

The strikethrough can return once Google next crawls the page and finds it agreeing with your data. Google suggests turning on automatic item updates for prices and raising your crawl budget in Search Console, so it reaches more products sooner. The annotation also has to meet Google’s sale price annotation rules — a discount of more than 5% and less than 90%, and a base price that has been charged for long enough.

What FeedRobin does about it

The free check opens a sample of your product pages and compares the price in their structured data with the one in your feed; it does not read the crossed-out price yet. For connected stores, price and sale_price come from the store’s own regular and sale prices on every sync, and rules can never rewrite a price, so a rule cannot cause this mismatch.

Questions merchants ask

Why does Google show my sale without the old price, even when the prices match?

Sale price annotations have rules of their own. Google’s help page says the discount must be more than 5% and less than 90%, and in most countries the base price must have been valid for 30 days within the past 200; for Shopping ads in the US, 5 days within the past 30 or 15 within the past 200.

Which price has to be crossed out on the page?

The one you send in price. Google asks that any strikethrough price on your website matches the price attribute whenever sale_price is also provided; the sale price should be the most prominent price on the page.

How do I mark the old price in structured data?

Google’s merchant listing documentation uses a priceSpecification of type UnitPriceSpecification with priceType set to https://schema.org/StrikethroughPrice for the original price; ListPrice is also allowed for a transition period.

What is “Automatic item updates active for strikethrough price”?

A notice that Google found the same mismatch and, with automatic item updates on, corrected the pricing from your page itself. Your data still disagrees with the page, so fix it at the source.

Sources

Related errors

Invalid sale priceFix “Invalid sale price” in Google Merchant Center
Warning
Mismatched value (page crawl) [availability]Fix “Mismatched value (page crawl) [availability]” in Merchant Center
Product disapproved
Missing value [price]Fix “Missing value [price]” and zero prices in Google Merchant Center
Product disapproved

Read next

Price mismatch in Google Merchant Center: why it happens and how to fix it for goodGoogle suspends products when the feed price and the page price disagree. The usual causes — currency, sale prices, stale feeds — and the fixes.
7 min
Prices off by two decimal places in Merchant CenterA price 100 times too high or too low in Merchant Center is a number written two ways. Where to look — the feed and the page's structured data.
5 min
Not sure what's wrong with your feed?Paste your feed URL and FeedRobin checks every product for missing barcodes, images, descriptions and more — free, no account needed.
Check my feed — it's free What it checks →