How to fix lifecycle oos schema not updated on WooCommerce REST API

Update the `offers.availability` field in your Product schema to `OutOfStock` (or `PreOrder`/`Discontinued`) whenever a product sells out, so Google's data matches your real inventory.

Steps for WooCommerce REST API

  1. If you manage products programmatically via the WooCommerce REST API, update the 'stock_status' field to 'outofstock' using a PATCH request to /wp-json/wc/v3/products/{id} with the body {"stock_status": "outofstock"}.
  2. Ensure your SEO plugin (Yoast, Rank Math) reads this stock_status field for its schema output — both major plugins do this automatically when the status is correctly set via the API.
  3. Validate the schema on the product's front-end URL with Google's Rich Results Test after the update.
Official WooCommerce REST API documentation ↗
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Example Product Name",
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD",
    "price": "49.99",
    "availability": "https://schema.org/OutOfStock",
    "url": "https://example.com/products/example-product"
  }
}

What is lifecycle oos schema not updated?

Product schema (also called structured data or JSON-LD) is a block of machine-readable code embedded in your product pages that tells Google, Bing, and other search engines key details about your products — including price, condition, and availability. The `offers.availability` property specifically signals whether an item is in stock. When a product sells out but the schema still says `InStock`, there is a mismatch between what your code tells search engines and what shoppers actually see on the page.

Google uses your Product schema to power Shopping ads and rich results (the star ratings, prices, and availability labels in search). If Google detects that your schema claims a product is `InStock` when it clearly isn't, it can disapprove that product in Google Merchant Center, suppress your Shopping listings, or penalise your rich results — costing you paid and organic traffic. Beyond search engines, stale availability data erodes shopper trust: someone who clicks expecting an in-stock item and lands on a sold-out page is likely to bounce immediately and not return. Keeping schema in sync with real inventory protects your Shopping feed, your organic product rich results, and your conversion rate.

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

Not sure if your WooCommerce REST API store has this?

Run a free SEOLZ audit — 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