Seo product missing stock status

Moderate effort

Found on 33% of audited stores.

Add visible stock availability text to each product page and set the correct `availability` property (InStock, OutOfStock, or PreOrder) in your Product structured data (JSON-LD schema).

What it is

Stock availability tells shoppers — and search engines — whether a product can actually be purchased right now. There are two places it needs to appear: (1) a human-readable label on the page itself (e.g. "In Stock", "Out of Stock", "Only 3 left"), and (2) a machine-readable `availability` field inside your Product schema markup (the invisible JSON-LD code that Google reads). When either is missing, Google has no reliable way to understand your inventory status. The `availability` field accepts standardised values from schema.org: `InStock`, `OutOfStock`, `PreOrder`, `LimitedAvailability`, and a few others.

Why it matters

Google requires a valid `availability` value in Product schema to show your products in Shopping rich results and the free Google Shopping tab — omitting it disqualifies your listings from these high-visibility surfaces and directly costs you free traffic and clicks. Shoppers who can't see whether an item is in stock are more likely to leave without buying, increasing your bounce rate and hurting conversion rates. Accurate availability also prevents frustrating "out-of-stock" surprises at checkout, which destroy customer trust and generate negative reviews. Keeping availability current protects against Google manual actions for "misleading structured data" if an out-of-stock product is marked as in-stock in schema.

How to fix it

  1. Audit every product page to confirm a visible, human-readable availability label is displayed near the price or Add-to-Cart button (e.g. 'In Stock', 'Out of Stock', 'Ships in 3–5 days').
  2. Locate your Product JSON-LD structured data block — it typically lives in your theme's product template file or is injected by an app/plugin.
  3. Add or update the `availability` property inside the `offers` object, using the correct schema.org URL: `https://schema.org/InStock`, `https://schema.org/OutOfStock`, or `https://schema.org/PreOrder`. Make sure the value matches your actual inventory.
  4. Ensure the availability value is dynamic — it should update automatically when inventory changes (e.g. pulled from your platform's stock count) rather than being hard-coded to a single value.
  5. Also verify the required companion fields are present in the same `offers` object: `priceCurrency`, `price`, and `url` — Google requires these alongside `availability` for rich-result eligibility.
  6. After deploying the fix, paste a product URL into Google's Rich Results Test (search 'Rich Results Test') to confirm the `availability` field is detected without errors, then request indexing via Google Search Console.
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Example Product Name",
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/example-product",
    "priceCurrency": "USD",
    "price": "29.99",
    "availability": "https://schema.org/InStock"
  }
}

Fix it on your platform

Pick your platform for the exact steps.

How to fix seo product missing stock status on Shopify
  1. In your Shopify admin, go to Online Store → Themes → click 'Edit code' on your active theme.
  2. Open the file `sections/product-template.liquid` (or `templates/product.liquid` / `sections/main-product.liquid` depending on your theme).
  3. Search for `availability` or `schema.org` to find the existing JSON-LD block. If none exists, find the closing `</script>` tag of any Product schema block.
  4. Within the `offers` object, set the availability dynamically: `"availability": "https://schema.org/{% if product.available %}InStock{% else %}OutOfStock{% endif %}"`.
  5. For the visible label, locate the area near your Add-to-Cart button in the same template and add: `{% if product.available %}<p class='stock-status'>In Stock</p>{% else %}<p class='stock-status'>Out of Stock</p>{% endif %}`.
  6. Save changes, preview a product page, then test with Google's Rich Results Test.
How to fix seo product missing stock status on Shopify Plus
  1. Follow all the same steps as Shopify above; Shopify Plus uses the same theme architecture.
  2. If you use a custom storefront (Hydrogen/Headless), update the Product component to include JSON-LD with dynamic availability from the Storefront API's `availableForSale` field.
  3. For scripts applied store-wide, use Shopify Plus Scripts or Theme App Extensions rather than editing checkout.liquid directly.
How to fix seo product missing stock status on WooCommerce
  1. WooCommerce outputs Product schema automatically, but the `availability` field depends on your stock management settings.
  2. In WP Admin, go to WooCommerce → Settings → Products → Inventory and ensure 'Enable stock management' is checked.
  3. On each product edit screen (Products → All Products → Edit), scroll to the 'Inventory' tab in Product Data and set the Stock Status to 'In stock', 'Out of stock', or 'On backorder'.
  4. To enhance or override the schema output, install the free plugin 'Schema & Structured Data for WP & AMP' or 'Rank Math SEO', which let you map WooCommerce stock fields directly to schema `availability` without custom code.
  5. Alternatively, add a snippet to your child theme's `functions.php` using the `woocommerce_structured_data_product` filter to inject or override the `availability` value programmatically.
  6. Verify by viewing page source on a product page and searching for `availability`, or use the Rich Results Test.
How to fix seo product missing stock status on BigCommerce
  1. BigCommerce injects Product schema automatically for products with stock tracking enabled.
  2. Go to Products → View in your admin, open a product, scroll to the 'Inventory' section, and ensure 'Track inventory' is enabled so the platform knows current stock levels.
  3. To confirm schema output, go to Storefront → Themes → Edit Theme Files (Advanced mode), open `templates/pages/product.html`, and search for `availability` to see the existing schema block.
  4. If you need to customise the availability value, edit the Handlebars template expression in that block — e.g. `{{#if product.availability}}` — or use a BigCommerce partner app like 'Schema App' from the App Marketplace.
  5. For the visible stock label, add a Handlebars conditional near the Add-to-Cart button in `product.html`: `{{#if product.stock_level}}In Stock{{else}}Out of Stock{{/if}}`.
  6. Test with the Rich Results Test after saving.
How to fix seo product missing stock status on Wix
  1. In the Wix editor, stock status labels are controlled by the Wix Stores product settings. Go to your dashboard → Store Products → click a product → scroll to 'Inventory' and set stock tracking to 'Track inventory' or manually set it to 'In Stock' / 'Out of Stock'.
  2. Wix Stores automatically adds Product schema including `availability` based on these inventory settings — no manual schema editing is required.
  3. To verify, use the Wix SEO Settings panel (found under the Marketing & SEO → SEO Tools menu) and run the page through Google's Rich Results Test.
  4. If you need a custom visible availability label, use Wix's product page editor to add a text element or use Velo by Wix to conditionally display stock status via code.
  5. For Velo: in the product page code panel, use `$w('#productPage').onReady()` to read `product.inStock` and update a text element dynamically.
How to fix seo product missing stock status on Squarespace
  1. In Squarespace Commerce, go to your product editor (Commerce → Inventory → click a product) and ensure the product has stock quantity set — Squarespace uses this to determine `InStock` vs `OutOfStock` in its auto-generated schema.
  2. Squarespace generates Product schema automatically for Commerce plans; the `availability` value reflects whether inventory is tracked and whether stock > 0.
  3. To show a visible 'In Stock' / 'Out of Stock' label, use a Product Block or enable the 'Show stock countdown' option in the product editor under 'Inventory'.
  4. For custom schema, go to Pages → select the product page → click the gear icon → Advanced → and paste a JSON-LD block into the 'Page Header Code Injection' field (available on Business plan and above).
  5. Verify the final schema output with Google's Rich Results Test.
How to fix seo product missing stock status on Webflow
  1. Open your Webflow project in the Designer and navigate to your Product Template page (eCommerce → Products → Product Template).
  2. Webflow does not auto-generate Product JSON-LD schema, so you need to add it manually. Click the page settings gear for the Product Template page and scroll to 'Custom Code' → 'Inside <head> tag'.
  3. Paste a JSON-LD `<script>` block with a Product schema. Use Webflow CMS dynamic embed fields to pull in the product name, price, and availability dynamically (e.g. bind `availability` to a custom CMS field named 'Stock Status' that contains the full schema.org URL).
  4. Create a CMS field of type 'Option' on your Products collection called 'Schema Availability' with options: `https://schema.org/InStock` and `https://schema.org/OutOfStock`. Populate it for each product.
  5. For the visible label, add a Text element near the Add-to-Cart button on the Product Template, bind it to a CMS field (e.g. 'Availability Label' with plain-text values like 'In Stock'), and use conditional visibility to style it.
  6. Publish and verify with Google's Rich Results Test.
How to fix seo product missing stock status on Adobe Commerce (Magento)
  1. Adobe Commerce generates Product schema automatically. To confirm `availability` is included, go to Stores → Configuration → Catalog → Catalog → Search Engine Optimization and ensure structured data options are enabled.
  2. In the Admin, go to Catalog → Products → edit a product → Inventory tab and set 'Stock Availability' to 'In Stock' or 'Out of Stock'. This value feeds the auto-generated schema.
  3. If you need to customise the schema output, override the layout XML or the `Magento_Catalog` module's `product/view/schema.phtml` template in your custom theme under `app/design/frontend/<Vendor>/<Theme>/Magento_Catalog/templates/`.
  4. For the visible label, the default Luma/Blank theme already displays stock status near the Add-to-Cart button via the `stockStatus` template block — verify it is not hidden by your theme's CSS.
  5. For headless/PWA Studio storefronts, ensure the `availability` field is included in your Product GraphQL query and rendered in the product detail component.
  6. Use the Rich Results Test on a product URL to verify the `availability` field is correct after any changes.
How to fix seo product missing stock status on Magento Open Source
  1. Follow the same steps as Adobe Commerce above — the stock status configuration path and template override approach are identical in Magento Open Source.
  2. Go to Catalog → Products → edit a product → Inventory tab → set 'Stock Availability' to 'In Stock' or 'Out of Stock'.
  3. To customise schema output, override `app/design/frontend/<Vendor>/<Theme>/Magento_Catalog/templates/product/view/` template files in your custom theme.
  4. Verify the output with Google's Rich Results Test.
How to fix seo product missing stock status on PrestaShop
  1. In your PrestaShop back office, go to Catalog → Products → edit a product → Quantities tab and set stock quantity and availability labels.
  2. PrestaShop has basic schema support, but for robust Product JSON-LD with `availability`, install a module such as 'SEO Expert' or 'Structured Data / Schema.org' from the PrestaShop Addons Marketplace.
  3. Alternatively, edit your product page template (`/themes/<your-theme>/templates/catalog/product.tpl`) to inject a JSON-LD block that reads `{$product.availability}` from the Smarty template variable.
  4. Use `{if $product.availability_date}PreOrder{elseif $product.quantity > 0}InStock{else}OutOfStock{/if}` to build the dynamic schema.org URL.
  5. Verify with the Rich Results Test after clearing your theme cache.
How to fix seo product missing stock status on Elementor
  1. Open the product page template in Elementor: go to WordPress Admin → Templates → Theme Builder (or Single Product template), locate your WooCommerce Single Product template, and click Edit with Elementor.
  2. Add a visible stock status text widget: in the Elementor editor, drag a WooCommerce 'Product Stock' widget (found under WooCommerce Elements in the widget panel) into your product layout — place it near the price or Add-to-Cart button so it is prominently visible to shoppers. If no native Stock widget is available, use a Shortcode widget and enter [product_page id="{product_id}"] or a Dynamic Tag text widget with the WooCommerce stock field as its dynamic source.
  3. Style the stock widget: select the widget, go to Style tab, and set distinct colours for in-stock (e.g. green) vs out-of-stock (e.g. red) states using Elementor's Custom CSS or the widget's built-in typography/colour controls, ensuring the text is never hidden or zero-opacity.
  4. Fix the JSON-LD Product schema: Elementor does not auto-generate Product structured data, so add it via a Custom Code snippet. Go to Elementor → Custom Code (requires Elementor Pro), click '+ Add New', set Location to 'Before </body>' scoped to Single Product pages, and paste a JSON-LD block: <script type="application/ld+json">{"@context":"https://schema.org","@type":"Product","name":"{{product_title}}","offers":{"@type":"Offer","availability":"https://schema.org/InStock","price":"{{product_price}}","priceCurrency":"USD"}}</script> — replace static values with Elementor Dynamic Tags by switching to the code editor's dynamic-tag picker for product title, price, and availability.
  5. Map availability dynamically: for the `availability` value, use a Conditional logic snippet or a small PHP custom code block (Elementor Custom Code → PHP) that outputs `https://schema.org/InStock`, `https://schema.org/OutOfStock`, or `https://schema.org/PreOrder` based on WooCommerce's `$product->get_stock_status()` function (`instock`, `outofstock`, `onbackorder`), ensuring the schema value always matches live inventory.
  6. Save the template and validate: click Update in Elementor, then open a live product URL and test it in Google's Rich Results Test (https://search.google.com/test/rich-results) to confirm the `availability` property appears correctly in the parsed Product schema, and visually verify the stock text renders on the page.

Does your site have this issue?

Run a free SEOLZ audit to find seo product missing stock status — and every other issue — across your whole site in minutes.

Scan my site free

Frequently asked questions

What is Seo product missing stock status?

Stock availability tells shoppers — and search engines — whether a product can actually be purchased right now. There are two places it needs to appear: (1) a human-readable label on the page itself (e.g. "In Stock", "Out of Stock", "Only 3 left"), and (2) a machine-readable `availability` field inside your Product schema markup (the invisible JSON-LD code that Google reads). When either is missing, Google has no reliable way to understand your inventory status. The `availability` field accepts standardised values from schema.org: `InStock`, `OutOfStock`, `PreOrder`, `LimitedAvailability`, and a few others.

Why does seo product missing stock status matter?

Google requires a valid `availability` value in Product schema to show your products in Shopping rich results and the free Google Shopping tab — omitting it disqualifies your listings from these high-visibility surfaces and directly costs you free traffic and clicks. Shoppers who can't see whether an item is in stock are more likely to leave without buying, increasing your bounce rate and hurting conversion rates. Accurate availability also prevents frustrating "out-of-stock" surprises at checkout, which destroy customer trust and generate negative reviews. Keeping availability current protects against Google manual actions for "misleading structured data" if an out-of-stock product is marked as in-stock in schema.

How do I fix seo product missing stock status?

Add visible stock availability text to each product page and set the correct `availability` property (InStock, OutOfStock, or PreOrder) in your Product structured data (JSON-LD schema).

Authoritative references

Related SEO issues