The two directions of mismatch
Feed says available, page says sold out. The shopper clicks a promising listing and lands on "sold out". Google detects this on its verification crawls and disapproves the item for misleading availability — the harshest enforcement, because it assumes the shopper was misled. Page says buyable, feed says out of stock. The store sells it fine, but Google will not show it, because the feed is the source of truth for eligibility. This direction is quieter: the product just disappears from results while the store looks healthy.
Why it happens on well-run stores
- Sync delay. Inventory changes in Shopify at 14:00; the feed re-fetches tonight. Every item sold in between is a mismatch window. Faster sync schedules shrink but never eliminate it.
- "Continue selling when out of stock" enabled. The page still takes orders, the inventory API says zero, and different tools read different truths. Decide which one is the source of truth per product.
- Multichannel inventory. POS and online share stock; a channel that does not decrement on sale leaves the feed wrong all day.
- Variants vs parents. One variant's stock state read at the product level when the feed sends the parent — or the reverse — produces per-variant mismatches that are invisible at the product level.
A one-day mismatch costs a few impressions. A product that sits unavailable for weeks gets dropped from listings and often forgotten — it is still "live" in your admin, so nobody ever re-checks it.
Fixes and the ongoing guard
- Decide the source of truth for availability per channel, and make the feed read from it — not from a cached export.
- Tighten the sync schedule to the fastest your feed app allows; daily at minimum for stores with fast-moving stock.
- Fix the "continue selling" flag where it disagrees with policy: if you do not actually backorder, the page must not take orders at zero stock.
- Watch instead of remembering. Availability drifts every day — which is exactly the failure class a daily re-scan exists for. The free check shows today's mismatches; the watch records the day each product's availability story changed.
Run the free availability check to see today's mismatches — it reads your public catalogue and product markup and reports every product whose stock state disagrees between the feed surface and the page. Related: price check · full feed check · feed vs page mismatch, explained
Shipwork reads your public catalogue and the availability markup on sampled product pages, and reports every product whose stock state disagrees across surfaces — the mismatch Merchant Center disapproves on. Free, no account, no signup — paste your store address.
Check my stockQuestions
- Why is a product disapproved for availability when it is in stock?
- The feed and the page must agree at the moment Google verifies. A sync delay can leave the feed saying available while the page has sold out — or the reverse — and either direction fails verification.
- Does "continue selling when out of stock" cause this?
- It can. The page still sells while inventory reads zero, so the feed and the page disagree. Decide per product whether backorder is real; if it is, the feed value must match the buyable state.
- How fast should my feed update?
- Daily is the minimum for stores with meaningful stock movement; faster syncs shrink the mismatch window. What matters is that the feed reads live inventory, not a stale export.
- Does the check need Merchant Center access?
- No. It compares what your public catalogue says with what your product pages say — both are visible without any account. It cannot see Merchant Center-only configuration.
Keep reading