How to fix lifecycle oos schema not updated on WooCommerce

Update the `offers.availability` value in your Product structured data from `InStock` to `OutOfStock` (or `PreOrder`) whenever a product sells out, so Google's records always match your actual inventory.

Steps for WooCommerce

  1. WooCommerce outputs Product schema via its built-in structured data class (`WC_Structured_Data`), which reads live stock status automatically — so the fix is usually ensuring no plugin or snippet is overriding it.
  2. In your WordPress admin, go to WooCommerce → Settings → Products → Inventory and confirm 'Manage stock' is enabled so WooCommerce knows the true stock status.
  3. Check for an SEO plugin (Yoast SEO, Rank Math, or Schema Pro) that may be outputting a second Product schema block with a hardcoded availability. Go to the plugin's settings and ensure it reads stock from WooCommerce rather than a static value.
  4. If you have a custom `woocommerce_structured_data_product` filter in your theme's `functions.php` or a child theme, review and correct it to use `$product->is_in_stock()` for the availability value.
  5. Use the Yoast SEO Schema tab (if installed) on an out-of-stock product's edit screen to preview the schema output and confirm it says `OutOfStock`.
  6. Validate with Google's Rich Results Test.
Official WooCommerce documentation ↗

What is lifecycle oos schema not updated?

Every product page on your store can include hidden structured data (called "Product schema" or "JSON-LD") that tells Google key facts about your item — its price, currency, and whether it is in stock. One field in that data, `offers.availability`, uses a standard vocabulary to signal stock status: `https://schema.org/InStock`, `https://schema.org/OutOfStock`, or `https://schema.org/PreOrder`. When a product sells out but this field is never updated, the schema keeps saying "InStock" even though the real page says "Sold Out." Google sees the contradiction and flags it as misleading data.

Google uses Product schema to power free Shopping listings and rich results. If Google detects that your structured data claims a product is "InStock" when it is actually sold out, it will disapprove those listings — meaning you lose free traffic from Google Shopping for every affected product. Repeated or widespread mismatches can also reduce Google's overall trust in your site's structured data, dragging down the rich-result eligibility of products that genuinely are in stock. Fixing stale availability data keeps your Shopping listings live, protects your click-through rates, and ensures customers who land on a product page aren't misled — reducing bounce rate and potential complaints.

See the complete Lifecycle oos schema not updated guide for every platform and the full background.

Not sure if your WooCommerce store has this?

Run a free SEOLZ scan — we’ll find lifecycle oos schema not updated and every other issue across your whole site.

Scan my site free

Fix lifecycle oos schema not updated on another platform