Mismatched value (page crawl) [price] on a Shopify store
Google compares the price in your product data with the price on your product page and in the page's structured data. This guide sets out what Google says causes a mismatch, quoting its help pages, and where each cause can come from on a Shopify store.
What Google compares
Google's help page on this error says its crawler compares the price you submit "with the prices on your landing page or in your structured data markup (if implemented)", and that "Prices reflected in the HTML need to match exactly the prices uploaded in Merchant Center." It also says that if price data "is passed dynamically with JavaScript after the page is loaded, this will trigger an error", because the crawler reads the HTML your server returns. Google warns that the issue "may lead to an account suspension." (Google: Mismatched product price)
The causes Google lists
The same page lists these among its causes: a delay between a price change on your site and the update reaching Merchant Center; incorrect structured data; a price or currency shown to Google's crawler that differs from the one shown to shoppers; a wrong sale window or time zone in the sale price's effective date; minimum order quantities or bulk pricing; and a mismatch found at an earlier time that may already have been corrected, since Google's notice gives the time it was found. (Google: Mismatched product price)
Where to look on a Shopify store
These are places on a Shopify store where some of Google's causes can arise. They are starting points for a check, not a diagnosis of any one store.
Structured data from the theme or an app. The price in the page's structured data comes from the theme's template code, or from an app that adds its own structured data. A template that writes the compare-at (was) price where the current price belongs, or one price for every variant, gives Google a different price from the one the store charges.
Prices changed after the page loads. If a discount, bundle or currency app rewrites the displayed price with JavaScript in the visitor's browser, Google's crawler reads the HTML before that happens.
Currency or price by location. With Shopify Markets or a currency app, a visitor's location can decide which currency or price a page shows. Google lists "Price shown to users is different to the price crawled by bots" among its causes (Google: Mismatched product price), and its troubleshooting page says: "Don't change the price of your product on your landing page based on a user's location." (Google: price mismatch troubleshooting)
Feed timing. The app that sends your products to Merchant Center may not have sent a recent price change yet. For Shopify, Google suggests "toggling the sync off and back on within your app to force a re-sync." (Google: price mismatch troubleshooting)
Check one product page
The free Crawlmatch check reads a product page as delivered, without running its scripts, and compares the price and availability in its structured data with what Shopify reports for each variant, for up to 250 variants. Check a product page. It does not see your Merchant Center data, and a clean result does not mean Google will approve your products.
Google's automatic item updates
Google can update the price and availability it holds from your product pages' structured data. Google says "Automations are enabled by default", and that "Automations may not work for products with frequent price or availability value changes (for example more than once per day). The product may be disapproved instead of updated if we detect a mismatch." (Google: automatic item updates)
After you fix it
For a product disapproval, Merchant Center offers a "Request website check" once the issue is fixed; Google's review page gives up to 7 business days for a product review, and elsewhere says a review may take up to 2 weeks. Google also says that "In some cases, there's a limit on how many reviews you can request." (Google: request a review, Google: Mismatched product price)