By Feedlinter
Mismatched Value (Page Crawl) [Availability]: Fix Dynamic JS and Out-of-Stock Variant Issues
Fix Mismatched Value (Page Crawl) [Availability] in Google Merchant Center. Check JavaScript stock updates, selected variants, structured data, caching, and product URLs.
Why Google reports an availability mismatch
Google compares the `availability` value in your product data with the availability it can read on the landing page. If the feed says `in_stock` but the selected product cannot be purchased, the item may be flagged or disapproved.
Dynamic JavaScript can create a timing problem. The page may show an old stock state before a script finishes, expose different values in structured data, or default to an unavailable variant. A crawl can also receive cached HTML that no longer matches the live storefront.
Check the exact variant and URL
Start with the product's final attributes in Merchant Center. Identify the exact size, color, or other variant that Google evaluated, then open the exact link from the feed in a clean browser session. The selected variant should match the feed and its stock state should be visible without requiring a customer to make an unexpected choice.
Check the page on mobile and with a fresh session. Confirm the item can be added to cart, the buy button is enabled, and the stock message agrees with the feed. If availability depends on location, make sure the product is available throughout the targeted region or use supported regional availability settings.
Fix JavaScript and structured data conflicts
Render the correct availability as early and consistently as possible. Do not expose `InStock` in Product or Offer structured data while the visible page says sold out. Update the visible message, purchase controls, structured data, and feed from the same inventory source.
If JavaScript replaces stock information after page load, inspect what a crawler sees before and after scripts run. Avoid hiding the availability behind a postcode form or an interaction that is required before a shopper can tell whether the item is purchasable. Ensure Google can access the product page and its essential resources.
Map stock states to Google values
Use `in_stock` only when the selected item can be purchased and fulfilled under the offer's terms. Use `out_of_stock` when it is temporarily unavailable. Use `preorder` or `backorder` only when that accurately describes the order and the landing page communicates the expected availability.
For a product with mixed variant stock, do not assume the parent product's status applies to every child. Generate availability at the same variant level as price, link, and identifier. A URL that opens an unavailable size while the feed describes an available size is a common mismatch.
Validate the fix
Purge page and CDN caches, regenerate the feed, and check the exact URL again. Then resubmit the product data and allow Merchant Center to recrawl the page. After the update, compare the sampled crawl value with the selected variant, not just the generic product page.
If the error remains, inspect server-rendered HTML and structured data for stale values, then confirm that the crawler is not being served a region-specific or consent-specific version. Consistency across feed, page, and structured data is the durable fix.