Fixing Shopify's Merchant Center "availability mismatch" (in stock vs out of stock)
Google Merchant Center disapproved your products with a "mismatched availability" error: your feed says one thing (in stock or out of stock) and Google's page crawl reads the opposite on the product page. On Shopify this almost always traces back to the Product structured data on the page disagreeing with the feed, usually because the two update on different clocks or the theme hardcodes the availability value. Here's how to find which side is wrong and clear the disapproval.
Step by step
Read both values side by side. In Merchant Center, open Products > Needs attention (or the flagged item's diagnostics) and note exactly what Google saw: the feed's availability versus the "page crawl" value. Then open the live product page and check its Product structured data with Google's Rich Results Test or the Schema Markup Validator, looking at offers.availability (schema.org/InStock, OutOfStock, or BackOrder). Compare that to the real inventory in Shopify. Whichever of the three disagrees is your culprit.
Make the page schema tell the truth. On Shopify the page-crawl value comes from your theme's JSON-LD. If it hardcodes "InStock" or ignores variant stock, that's the break: edit the product schema so availability is driven by the actual variant (out of stock with no overselling = OutOfStock; sellable or "continue selling when out of stock" = InStock or BackOrder). Also delete any duplicate Product schema injected by an SEO or reviews app, since two conflicting blocks confuse the crawler.
Resync and request a fresh crawl. Once the page is correct, re-sync the product in the Google & YouTube channel and request review of the item in Merchant Center. Re-run the Rich Results Test to confirm Google now reads the new value, and clear any page or theme cache so the crawler doesn't hit a stale copy. Remember the feed and the page recrawl on different schedules, so a mismatch can briefly reappear during that lag window; don't panic if it clears on its own within a day or two.
Catch the next silent break before Google does. These mismatches usually come back because something quietly rewrites the schema or flips an inventory policy: a theme update, a newly installed SEO or structured-data app, or a bulk inventory edit nobody logged. Keep a daily snapshot of each product's structured data, inventory policy, and SEO fields so the moment a value changes you can see what changed, when, and which app did it, and restore the affected fields in one click instead of re-diffing your theme under a disapproval deadline.
Source: Google Merchant Center Help Center (support.google.com/merchants) — documentation on availability requirements and the "mismatched availability" structured-data crawl issue.
SEO Vault keeps a daily snapshot of every SEO field on your store — meta titles, descriptions, alt-text, tags, handles (products AND collections) — and emails you the moment something changes in bulk, with the likely app responsible. One click restores yesterday's state, just the SEO fields. Free to monitor and get alerted; $14/mo for 1-click restore.