Product availability: show stock status clearly

Last updated:

Every product page should say clearly whether the item can be bought now: in stock, low stock, out of stock, or available to pre-order. Show it as visible text near the price and repeat it in your Product structured data as offers.availability. Shoppers decide faster, search engines can show availability in results, and shopping tools stop guessing.

Why stock status matters more now

Search is turning into shopping. Google's Universal Cart, launched in the US in October 2026 in Search and the Gemini app, keeps products from several retailers in one cart and tracks their price and stock to send price-drop and back-in-stock alerts. Those signals come from product data: Merchant Center feeds, and the information on your pages. A store that hides stock status, or shows a stale one, gives these tools nothing reliable to work with.

The basic case is older and still true: a shopper who reaches a product page from a search result wants to know at once whether they can buy it, especially during peak sales when items sell out fast.

Show it on the page

  • Put the status next to the price and the add-to-cart button, in plain words: "In stock", "Only 3 left", "Out of stock – back in about two weeks".
  • For out-of-stock items, disable or replace the add-to-cart button, and offer a back-in-stock email alert or similar products.
  • For pre-order or backorder, say when the item will ship.
  • Make it text, not only a colour or an icon, so screen readers and crawlers can read it.

Add it to your structured data

Inside the Product offers, use a schema.org availability value:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Wool beanie, charcoal",
  "offers": {
    "@type": "Offer",
    "price": "29.00",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock"
  }
}
</script>

The common values are InStock, OutOfStock, PreOrder, BackOrder and LimitedAvailability. Use the full URL form. For products with variants, give each variant its own offer and availability, since one size can be sold out while another is not.

Keep page, markup and feed in sync

The most frequent problem is not missing data but contradicting data: the page says "Out of stock", the JSON-LD still says InStock because it is cached, and the feed was updated yesterday. Generate the page text, the markup and the feed from the same stock source, and make sure your page cache is cleared when stock changes. If you send a Merchant Center feed, its availability attribute (in_stock, out_of_stock, preorder, backorder) should match, with an availability_date for pre-orders and backorders.

Availability is one part of a complete Product structured data block. If you run promotions, also check your sale price markup.

How Averifly helps

Averifly's catalog rules flag product pages that show no stock or availability signal, either as visible text or as offers.availability, and pages with no Product structured data or no visible price. Run a free scan to find the products to fix, and see our rules for the full list of checks.

Frequently asked questions

How do I mark stock status in structured data?

Add offers.availability to your Product JSON-LD with a schema.org value such as https://schema.org/InStock, https://schema.org/OutOfStock, https://schema.org/PreOrder or https://schema.org/BackOrder. It must match what the page shows.

Should I remove out-of-stock product pages?

Usually not if the product will come back. Keep the page, mark it out of stock on the page and in the markup, and offer a back-in-stock alert or alternatives. Remove or redirect only products that are gone for good.

Why does stock status matter for AI shopping tools?

Shopping assistants and multi-retailer carts track price and stock to send alerts and choose where to buy. If your pages or feed show the wrong stock, they may skip your product or send shoppers to an item they cannot buy.

More Catalogue guides