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 readBoostora Team

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 → Diagnostics

  • Check actual stock status on your website for each product

  • Update your feed to match (or use Content 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 feed hosted on Google Cloud Storage (GCS) that refreshes every 30 minutes.

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

  • Create a GCS bucket — In Google Cloud Console, create a new bucket (e.g., your-store-gmc-feed). Set the bucket to public read access so GMC can fetch it.

  • 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 and upload the file to GCS every 30 minutes.

  • Register the supplemental feed in GMC — Go to Merchant Center → Products → Feeds → Add supplemental feed. Choose Scheduled fetch as the fetch type, enter the public HTTPS URL of your file (https://storage.googleapis.com/your-bucket/availability.csv), and set the fetch frequency to every 30 minutes. The bucket object must be publicly accessible — apply an allUsers: objectViewer IAM binding on the file (not just the bucket).

  • 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: Content API for real-time updates

If you need sub-minute updates or have engineering resources available, Google’s Content 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, the GCS supplemental feed at 30-minute intervals 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

  • GCS supplemental feed at 30-minute intervals — 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