Discuss project

Out-of-stock products: how to keep a page's rankings

A product ran out: delete the page, redirect it or keep it? Four stock situations and what to send Google for each one: a 200, a 301 or a 410.

Vladislav KrivorutškoNovember 2, 20269 min read
Contents

TL;DR - key points

  • A product page for an item that will come back stays at its URL with a 200: deleting it, adding noindex or redirecting it wipes out the history and forces you to rebuild rankings
  • For a permanently discontinued product the replacement decides: a like-for-like alternative gets a 301, otherwise a 404 or 410. Google treats both codes the same and drops the URL from the index (developers.google.com, checked 02.11.2026)
  • A page where only the words "out of stock" remain can look like a soft 404: keep the description, specifications and alternatives on it
  • In Offer markup you set one availability value: OutOfStock, BackOrder, PreOrder or Discontinued, and it has to match what the shopper sees
  • The decision follows product status, not the calendar: write the rule and the review deadline for each status in advance

Short answer

If the product will return or can be ordered, the page stays at the same URL with a 200, and stock changes only in the page content and markup. If the product is discontinued for good, the replacement decides: a like-for-like alternative gets a 301, otherwise a 404 or 410. According to Google's documentation both codes are processed the same way and the URL leaves the index (developers.google.com, checked 02.11.2026).

Deleting a page, adding noindex or redirecting to a category while the product is back on sale tomorrow means paying to rebuild rankings: Googlebot has to crawl the URL again, and links gathered over months land on a 404 or someone else's redirect. A page that already sits in the index is worth more than it seems at the moment the warehouse shows zero.

Four situations, four responses

"What do I do with an out-of-stock product?" has no answer in that form. I split such products into four groups by what is known about the return, and each group gets its own code: 200, 301, 404 or 410.

SituationResponseOn the pageIn the markup
Sold out, delivery expected200Status, delivery time, notification signupOutOfStock; with a date, PreOrder or BackOrder
Can be ordered200Lead time and termsBackOrder or PreOrder
Discontinued, direct replacement exists301 to the replacementThe page is goneMarkup on the replacement
Discontinued, no replacement404 or 410A 404 page with category and search linksNone

The third and fourth rows differ by one question: "What would a shopper arriving from search for this product name want to see?" If the answer fits one URL, that is the replacement. If you have to choose between three similar products, there is no replacement, and a redirect would mislead the visitor.

For cases between the rows one question works: when will you know the product is not coming back? Until the supplier confirms it in writing, the product belongs in the first row of the table: a 200 and waiting.

Out of stock: which response to return at the product URLWill the product returnor can it be ordered?yesKeep the page: respond 200stock status + alternatives + back-in-stock alertnoIs there a replacementwith the same purpose?yes301 to the replacement pagenot the home page, not a "random" categoryno404 or 410, remove from the sitemap and internal links

What to keep on the page so it does not look empty

A page with a title, a grey button and the label "out of stock" is the most common template, and it is risky for two reasons. For the shopper it is a dead end. For Google it is a page with no content, and by the definition in the documentation a page with a 2xx code that looks empty or like an error can be treated as a soft 404 (developers.google.com, checked 02.11.2026).

The working minimum for an out-of-stock product page:

  1. The description and specifications stay in full. They are what keeps the page in search.
  2. The status is written in words and visible without scrolling: "out of stock", "expected in December", "made to order, 14 days". The last two are examples: you fill in your own supply time.
  3. Under the status sits a block of alternatives: cards with price and availability. It brings the shopper back into the catalogue and gives the page outgoing links.
  4. A "notify me when back" form. It turns a search visitor into a contact instead of an exit.
  5. Breadcrumbs and the link to the category stay, so the page does not become an orphan page.

What not to do: keep a "buy" button that leads to a cart error, or hide the price and show "0 €" in its place.

Availability markup: what to put in Offer

Google's merchant listing documentation lists these availability values: InStock, OutOfStock, BackOrder, PreOrder, PreSale, Discontinued, SoldOut, LimitedAvailability, OnlineOnly and InStoreOnly. It also says not to specify more than one value (developers.google.com, checked 02.11.2026).

The status mapping I use in templates:

Status on the pageavailability value
In stockInStock
Out, delivery not confirmedOutOfStock
Out, but we take orders with later shippingBackOrder
Not released yet, can be reservedPreOrder
Discontinued, page kept for some reasonDiscontinued

There is one rule: the value must match what the person sees on the page. If the template always outputs InStock while stock updates only in the text, the markup says one thing and the page another. I found no direct ban on such a mismatch on the documentation page I checked, but markup that contradicts the page stops being a source of data about the product, and that is my own assessment, not Google's words.

The check takes a minute: open an out-of-stock product page in Google's Rich Results Test and compare availability with the visible status.

While the page returns a 200, it stays in sitemap.xml. There is no need to pull temporarily missing products from the sitemap: you would be telling Google the page need not be crawled, though it should stay in the index. I described the rules for building the sitemap in the article on sitemap.xml and robots.txt.

After a product moves to "discontinued" the picture changes. A URL with a 301 or 404 leaves the sitemap the same day, and internal links to it are updated: "similar products" blocks, menus and old articles. If you skip this, the robot keeps visiting the URL and link weight drains into nothing. For chains and broken links see the articles on 404, 410 and redirects and redirect chains.

My order of work for a catalogue

I build the system on product statuses, because "by feel" decisions turn into chaos across thousands of pages. The 5 steps below are how I go through a catalogue.

  1. Export products with no stock and tag each one: awaiting delivery, made to order, discontinued, status unknown.
  2. For "status unknown" I ask purchasing for an answer. Until there is one, the product counts as awaiting delivery: erring in that direction is safer than deleting a page with history.
  3. Check discontinued products against Search Console and the logs. URLs that brought clicks or have external links I review by hand. The rest are closed by rule.
  4. Look for a replacement for discontinued products. If there is one, a 301 to a specific page. If not, a 404 or 410 and a 404 page with category links.
  5. Set a review deadline. If a product stays in "awaiting delivery" longer than a realistic supplier lead time, it moves to "discontinued". I do not impose a number of days: it depends on the shop's logistics.

An honest limit: I have not measured on my projects how many weeks a page's rankings survive after the move to "out of stock", and I will not name a number. How fast Google re-evaluates a page depends on how often the robot visits it. On a site where crawling follows mostly new products, re-evaluation can take much longer than on a large shop crawled daily.

If the catalogue is big and products change status fast, a large share of the rules lives in the shop template: status, Offer markup and the alternatives block must come from one database field. You settle that with the developer, and here it is worth checking beforehand whether you have duplicate pages: pages for different colours or bundles often run out one after another, and the question "which one to keep" is solved with canonical, not deletion.

Which reactions to "out of stock" do harm

  • Noindex on an out-of-stock product. The page drops out of the index and getting it back means waiting for a new crawl.
  • A 302 to a category. A temporary redirect says the original URL stays the main one, so it does not fit a discontinued product, and for a product awaiting delivery it cuts the shopper's path.
  • Redirecting all discontinued products to the home page. The shopper does not get what they were looking for, and Google may treat such redirects as soft 404s.
  • Hiding the price and description. The page loses the content it was shown for.
  • Removing from the catalogue without fixing links. "Similar" blocks and the menu keep pointing at an empty URL.

Frequently asked questions

What should I do with a product page when the item is out of stock?
If the item will return or can be ordered, keep the page at the same URL with a 200. Show the stock status, keep the description and specifications, add alternatives and a "notify me" form. If the item is gone for good, look at the replacement: a like-for-like alternative gets a 301, no alternative gets a 404 or 410.
Should I add noindex to an out-of-stock product page?
As a rule, no. Noindex takes the page out of the index, and when the product returns you wait for a new crawl and rebuild rankings. It is defensible for pages that will never come back, but even there a 404, 410 or a 301 to a replacement is cleaner, because noindex leaves a dead URL on the site and in the crawl.
Can I delete out-of-stock product pages right away?
Only discontinued products, and only with the replacement in mind. A temporarily missing product must not be deleted: you lose the page's history and incoming links. For a mass catalogue clean-up the order is: first the status "discontinued", then a check of the page's traffic and links, and only then a 301, 404 or 410.
Which response code should a discontinued product return?
If the product has a replacement with the same purpose, return a 301 to it. If there is no replacement, return a 404 or 410. According to Google's documentation both codes are handled the same way: the crawler tells the system the content does not exist and the URL is removed from the index (developers.google.com, checked 02.11.2026). A redirect to the home page does not fit, because Google may treat it as a soft 404.
Which availability value should I use in Product markup?
One value from Google's list: InStock, OutOfStock, BackOrder, PreOrder, Discontinued and others. Google asks you not to specify more than one value. The value must match the status the shopper sees on the page: if the page says "expected in December" and the markup says InStock, fix that mismatch.
How long should I keep the page of an out-of-stock product?
Google's documentation gives no universal period. I set the review deadline by product status: while the supplier confirms the return, the page stays; if there is no confirmation and analytics show no traffic and no clicks through links, the product is marked "discontinued" and the page gets a 301 or 410. Each shop picks the limit in days by its own supply time.

Conclusion

Stock level is a field in a database, not a reason to touch a URL. While a product can return or has a replacement, the page works as an asset: links point to it, it has crawl history and impressions. With thousands of products, set the status rules in the template once instead of deciding each page by hand. I build such rules into [SEO](/en/seo) work for online shops, and if the product page template needs changes, that is a [web development](/en/web-development) task.

About the author

Vladislav Krivorutško — founder of ADLAB
Vladislav Krivorutško

Founder of ADLAB OÜ · SEO and Google Ads

Over 20 years in search traffic and monetization, and on the Estonian market since 2017. I work solo: I run the audit, build the strategy and deliver the project myself — no subcontractors, no templates. I only write about what I have tested on my own and client sites.

  • 20+ years in search traffic
  • 50+ end-to-end projects
  • Own sites in competitive niches
  • SEO for ru/et/en in one market
More about me

Read next