What the error means
The feed value for availability disagrees with the landing page at the moment Google verifies it. On Shopify the classic structural case: products at zero inventory with backorders enabled are emitted as InStock by the product structured data, so the page says buyable while the inventory says zero — and every verification fails.
Why Google rejects it
Availability is compared twice: feed against page, and page against what a shopper can actually order. The Shopify case is structural, not a mistake you made: the Google & YouTube app and the theme markup both report InStock for zero-inventory backorder products, and Shopify’s systems do not emit the BackOrder status. Fixing it needs a decision about the source of truth, not a manual edit that the next sync overwrites.
How to fix it
- Decide per product whether backorder is real. If it is not, turn off "continue selling when out of stock" — the page must not take orders at zero stock.
- For genuine pre-orders, set availability to preorder with an availability_date, so the feed and the page agree on a state Google accepts.
- Check what the page markup says for zero-stock products: if the structured data says InStock while checkout blocks the sale, that mismatch is the finding.
- Tighten the sync schedule and let automatic item updates handle the small residual drift — but fix the structural cases first, because a scheduler cannot fix a lie.
- Watch the catalogue daily: this failure recurs with every stock change, and the watch records the day each product’s availability story changed.
Common causes
Backorders on at zero stock
"Continue selling when out of stock" is enabled, inventory hits zero, and the page keeps an active add-to-cart button. The structured data says InStock, the feed may say out of stock, and whichever one Google checks disagrees with the other.
Pre-orders sold as in stock
A product that ships in six weeks is listed as in_stock because the platform has no pre-order state by default. Google expects preorder with an availability date for items that cannot ship now.
Variants with different stock
The default variant is sold out but others are available, or the reverse. The page loads the first variant, the feed item refers to another, and the availability each one reports does not match.
Stale cache or slow feed sync
The page is served from a CDN cache that still shows the old stock state, or the feed updates once a day while stock moves hourly. The mismatch window is the time between a stock change and the next fetch.
Apps that override the buy button
Pre-order, back-in-stock and wholesale apps change what the button says with JavaScript. Google may read the server-rendered markup while shoppers see the app's version.
Fix it on your platform
On Shopify
- Open each affected product, go to the variant's inventory settings and decide whether "Continue selling when out of stock" is real. Turn it off where you cannot actually fulfil backorders.
- For genuine pre-orders, use a pre-order app or feed rule that sends availability preorder plus availability_date to Merchant Center, and make sure the product page states the ship date in text.
- View the page source of a zero-stock product and search for "availability" in the JSON-LD. If it says InStock while the product cannot ship, that template or app is the source to fix.
- In the Google & YouTube app, confirm products sync and that the last sync time is recent.
On WooCommerce
- In the product's Inventory tab, check stock status and "Allow backorders". Set backorders to "Do not allow" unless you truly accept them.
- Check which availability your feed plugin sends for onbackorder products and map it to backorder or preorder rather than in_stock.
- Confirm your SEO plugin's Product schema reads the same stock status the product page shows.
- Purge the page cache after bulk stock updates so crawlers see the new state.
On other platforms
- Make the feed read stock from the same source that controls the product page, not from a nightly export.
- Map every internal stock state (backorder, pre-order, discontinued) to one of Google's values: in_stock, out_of_stock, preorder or backorder.
- Make sure the structured data availability, the visible page text and the feed agree for every variant.
How to confirm it is fixed
- Pick three affected products and compare, side by side, the feed availability in Merchant Center, the visible page text, and the availability value in the page's JSON-LD.
- Run the availability check to find other products with the same disagreement.
- Use Search Console URL Inspection's live test on one product to confirm Google receives the updated markup.
- Wait for the next feed fetch and product recrawl before judging; Merchant Center keeps the old status until Google checks again.
Questions
What does "inaccurate availability status" mean in Merchant Center?
Should I use backorder or preorder for items I am waiting on?
Does Shopify send backorder status to Google?
Will automatic item updates fix availability mismatches?
How fast does Google recheck availability after I fix it?
Shipwork reads your public catalogue and the availability markup on your product pages, and reports every product whose stock state disagrees across surfaces — including the zero-inventory-but-buyable Shopify case. Free, no account, no signup. Paste your store address.
Check my store for Inaccurate availability statusGo deeper: Availability mismatch, explained
Other errors like this