Skip to content

Problem

Merchant Center availability mismatch: how to fix it

A Merchant Center availability mismatch is raised when Google's crawl of your product page finds a stock status that disagrees with the feed. Fast sellers trip it by selling out between fetches; slow sellers trip it through settings, usually a product that keeps accepting orders at zero stock, a preorder listed as in stock, or a schema block that says available no matter what. The fix is to make the variant the unit of truth and shorten the time between a stock change and Merchant Center hearing about it.

By CartKernel · Last reviewed 2026-09-07

Does this look familiar?

  • Products disapproved with a mismatched value issue on the availability attribute after a page crawl
  • The same items flip between approved and disapproved every few days
  • A product page shows an add-to-cart button while Merchant Center lists the item as out of stock
  • Preorder or back-order items are disapproved even though shoppers can buy them on the site
  • Disapprovals concentrate on products with many sizes or on your fastest-selling lines

Causes, ranked

Why it happens, most common first

Check them in this order. The first two account for most cases we open.

  • most common

    Stock ran out between the fetch and the crawl

    A daily fetch tells Merchant Center the item is in stock in the morning; the last unit sells at noon; the crawler visits at three and reads sold out. Popular sizes, limited drops and low-quantity items hit this constantly when the feed only updates once a day.

  • most common

    Product-level status applied to variant-level stock

    The feed reports the parent product as available because some variant is, but the landing page opens on a variant that has sold out, or the reverse. Google evaluates the exact item and URL it was sent, so a summary status at product level is wrong for half the variants.

  • common

    Selling continues at zero inventory

    Shopify's option to keep selling when out of stock, and equivalent back-order settings elsewhere, leave the buy button active while the inventory count reads zero. The channel app reads the count and sends out_of_stock; the crawler reads the button and schema and sees in stock.

  • common

    Preorders and back-orders submitted as in stock

    A preorder app changes the button text and the schema, but the feed still says in_stock. Google expects preorder or backorder as the availability value, together with an availability_date, and flags the item when the page signals a future ship date the feed does not.

  • occasional

    Structured data hard-coded to available

    Some themes print InStock in the Product schema regardless of inventory, and some apps inject a second schema with its own status. When the crawler reads a stock claim in the markup that the page text contradicts, the feed value is caught in the middle.

The fix

In this order

Each step is something you can do today. Do them in sequence; skipping ahead is how a review fails twice.

Prevent it next time

  • Report availability per variant and never summarise a product family into one status
  • Push inventory changes through the channel app or API rather than a once-daily fetch
  • Review the preorder and continue-selling settings whenever a new app touches inventory
  • Keep the Product schema's availability tied to live inventory after every theme update
  1. Find the pattern in the disapproved items

    Export the products carrying the availability issue and sort by what they share: quantity on hand, variant count, preorder status, a particular app. One group usually dominates, and that group tells you which cause below to start with.

  2. Make the variant the unit of truth

    Send one feed item per sellable variant with its own availability, its own landing URL that opens that variant, and item_group_id linking the family. Where the feed tool summarises at product level, change the setting or move to the platform channel app, which reports per variant.

  3. Decide what zero stock means and set it everywhere

    If you want to keep selling at zero inventory, treat the item as backorder in the feed with an availability_date, and make the page say so. If you do not, turn off the continue-selling option so the button, the schema and the feed all agree the item is out of stock.

  4. Submit preorders correctly

    Set availability to preorder for items not yet released and backorder for items awaiting restock, and populate availability_date with the expected ship date. Make sure the product page states the same date, since the crawler compares both.

  5. Correct the schema

    Ensure the Product schema's availability reflects the selected variant's real inventory state and remove any duplicate schema an app has added. A schema that says InStock on a sold-out page will keep producing mismatches whatever the feed says.

  6. Shorten the update path and let Google confirm

    Turn on automatic item updates for availability, then move stock updates off the daily fetch: the platform channel app or the Content API pushes changes within minutes. Watch the issue count over the next few days as pages are recrawled.

When to get help

Get help when the mismatches keep returning after the obvious settings are fixed, when inventory lives in a warehouse system or ERP that feeds the store on its own schedule, or when preorder apps, bundles and multi-location stock are all in play at once. The right fix is usually in the data pipeline rather than in Merchant Center itself.

Get a Growth Analysis

Free. We reply within one business day.

Questions

Asked alongside this problem

By CartKernel · Last reviewed

Is it better to remove sold-out products from the feed or mark them out of stock?

Mark them out of stock. Google stops serving the item but keeps its history, so it returns to auction with its performance intact once stock is back. Removing and re-adding items resets that history and can trigger a new review of the product.

What availability value should a preorder product carry?

Use preorder for products that have not yet been released and backorder for products that have sold out and will be restocked, and add availability_date in both cases. The product page must show the same expected date.

Why does Google say a product is out of stock when the page shows add to cart?

Because the inventory count is zero and the store is set to keep selling anyway. The feed reads the count, the crawler reads the button. Either stop selling at zero or submit the item as backorder with a date.

How quickly does Merchant Center pick up an availability change?

It depends on the route. A scheduled fetch is at most once a day. The channel app and the Content API usually land changes within minutes to a few hours. Automatic item updates only apply when Google recrawls the page, which is not on demand.

Related problems, answers and terms

All problems
ProblemMerchant Center price mismatch: how to fix itA Merchant Center price mismatch means the crawler saw a different price on your page than the feed sent. The ranked causes and the fix, step by step.OpenProblemMerchant Center feed fetch failed: how to fix itA Merchant Center feed fetch failed means Google could not download or read your file. Where the fetch breaks, and how to get the schedule running again.OpenProblemProducts disapproved for missing GTIN: how to fix itProducts disapproved for missing GTIN usually trace to empty barcode fields, invalid codes or one code shared across variants. Ranked causes and the fix.OpenProblemShopping ads not showing: how to fix itShopping ads not showing usually traces to eligibility, not bidding. Work through account, product, campaign and targeting checks in that order.OpenAnswerHow often should a product feed update?Match feed refresh frequency to how fast price and stock change. Daily fetch as a floor, real-time updates for volatile catalogues, and how to spot staleness.OpenAnswerHow do Shopping ads handle product variants?Shopping ads treat every variant as its own item joined by item_group_id. How Google picks which one to show and what that changes for bidding.OpenGlossaryItem group idItem group ID is the feed attribute that ties variants of one product together for Merchant Center. Feed rows, why it matters, and the usual mistakes.OpenGlossaryProduct structured dataProduct structured data describes a product page to search engines in machine readable form. Worked field list, what it enables, and where it goes wrong.Open

Stop the leak.

A free Growth Analysis finds what is broken and ranks it by the revenue it costs you.