Fix GMC Issues

How to Fix "Availability Mismatch" in Google Merchant Center

Products disapproved for availability mismatch? Here's why Google flags incorrect stock status and a step-by-step fix guide.

Updated 5 min read

What is an availability mismatch?

An availability mismatch happens when your feed says a product is “in_stock” but your landing page shows it as out of stock (or vice versa). Google checks this regularly, and mismatches lead to immediate product disapproval.

This is one of the top 5 most common Merchant Center errors — and one of the most expensive, because you’re paying for clicks on products that can’t convert.

Accepted availability values

Google accepts exactly these values for the availability attribute:

  • in_stock — Product is available for immediate purchase and shipping

  • out_of_stock — Product is not currently available

  • preorder — Product can be ordered but hasn’t been released yet (requires availability_date)

  • backorder — Product is temporarily out of stock but can still be ordered. Country support is limited (notably US); in markets where it’s not supported, use out_of_stock with a restock note on the landing page instead.

Why does this happen?

  • Delayed feed updates — Product sold out on your website, but feed still shows in_stock. This is the #1 cause. Primary feeds typically update once per day — stock can change dozens of times in those 24 hours.

  • Regional availability — Product available in some regions but not others. Feed shows in_stock globally.

  • Size/variant stock — Parent product shows in_stock, but the specific variant (size, color) is sold out.

  • Landing page ambiguity — Your page says “Contact us for availability” — Google reads this as “not clearly in stock”.

  • Warehouse sync issues — Multiple warehouses with different stock levels, feed reflects one but not the other.

How to fix it

Immediate fix

  • Identify affected products in Merchant Center → Products → Needs attention

  • Check actual stock status on your website for each product

  • Update your feed to match (or use the Merchant API for instant update)

  • For products genuinely out of stock: set availability to out_of_stock — they won’t show in Shopping but won’t get disapproved either

The root cause of most availability mismatches is the gap between your primary feed’s once-daily update cycle and real-time stock changes on your website. The best way to eliminate this gap is a supplemental file that you upload to Merchant Center every 30 minutes (by SFTP or Google Cloud Storage).

A supplemental feed doesn’t replace your primary feed — it overlays specific attributes on top of it. For availability, you only need 4 fields: id, price, availability, and sale_price. This keeps the file tiny and fast to generate.

How to set it up

  • Choose an upload channel — Merchant Center accepts supplemental files by SFTP or Google Cloud Storage upload and gives you the credentials in the data source settings. A public URL that Merchant Center fetches will not work here: a scheduled fetch runs at most once a day.

  • Generate the lightweight feed file — Write a script that pulls current availability, price, and sale price from your inventory system and outputs a minimal CSV or XML. Example CSV format: id,availability,price,sale_price SKU-123,in_stock,29.99 EUR, SKU-456,out_of_stock,49.99 EUR, SKU-789,in_stock,99.99 EUR,79.99 EUR

  • Schedule it every 30 minutes — Use a cron job, GitHub Actions, Cloud Scheduler, or any task runner to regenerate the file and upload it to Merchant Center every 30 minutes (supplemental sources accept up to 500 uploads per day).

  • Register the supplemental source in GMC — Go to Merchant Center → Settings → Data sources → Supplemental sources → Add supplemental product data. Choose file upload (SFTP or Google Cloud Storage) rather than Scheduled fetch, and enter the exact file name you will upload. The Supplemental sources tab appears only after you enable the “Advanced data source management” add-on.

  • Link it to your primary feed — In the supplemental feed setup, select the primary feed it should apply to. GMC will merge the two, with the supplemental data taking precedence for the 4 fields it contains.

Once active, your availability data in GMC will be at most 30 minutes old — versus 24 hours with a primary-only setup. For high-velocity catalogs (fashion, electronics, consumables), this alone can cut availability disapprovals by 80-90%.

Alternative: Merchant API for real-time updates

If you need sub-minute updates or have engineering resources available, Google’s Merchant API lets you push availability changes programmatically the moment stock changes. This is the most precise option but requires development work to integrate with your inventory events. For most merchants, a supplemental file uploaded every 30 minutes is the better cost/effort trade-off.

Variant-level tracking

Don’t set a parent product as in_stock if specific variants are sold out. Each variant needs its own row in your feed (primary or supplemental) with its own availability status. Your supplemental feed should include one row per variant SKU, not one per parent product.

Clear landing page messaging

Use an obvious “Add to Cart” button for in-stock items. Google’s crawlers check for purchaseability signals on the page — a vague “Contact us” message reads as unavailable.

Prevention strategies

  • Supplemental file uploaded every 30 minutes — the most effective structural fix (see above)

  • Inventory threshold rules — set out_of_stock proactively when stock drops below a threshold (e.g., last 2 units). They’ll likely sell before Google re-crawls, and disapprovals cost more than brief Shopping gaps.

  • Monitor stock coverage — track what % of your active feed products are genuinely in stock. A drop signals a potential mismatch wave coming.

  • Enable Automatic Item Updates — in GMC Settings → Automatic improvements, turn on Automatic Item Updates. This lets Google self-correct availability based on structured data on your pages, providing a last-resort safety net.

Related guides