Out-of-stock products are an inventory problem that quietly becomes an SEO problem. The short answer: keep the page live if the product is coming back, 301 redirect it if it's gone for good with a relevant replacement, and only 404/410 it when there's no sensible target and nothing worth saving. The expensive mistake is letting your platform decide for you — silently 404ing or bouncing shoppers to the homepage — because that's where rankings and hard-earned backlinks leak away.
Why out-of-stock handling affects rankings and link equity
Google has said repeatedly that an out-of-stock product is not penalised for being unavailable. A page that ranks for "running shoes size 11" doesn't lose that ranking the moment the size sells out. What actually damages you is the response to going out of stock.
Three things are at stake:
- Rankings. A product page often accumulates months of relevance signals, dwell time, and query history. Deleting or redirecting it away throws that away.
- Link equity. Popular products attract backlinks from blogs, forums, and buying guides. A 404 sends that equity into a void; a bad redirect dilutes it.
- Internal link value. Your category and related-product links point at these URLs. Break them and you weaken the whole crawl graph — see our guide on ecommerce site structure for why that matters.
An out-of-stock page that stays live, stays useful, and stays honest about availability holds its position and recovers fast when stock returns. That's the whole game.
Decision framework: temporary vs permanent vs discontinued
Before you touch a single URL, sort each product into one of three buckets. The right SEO action follows from the bucket, not from a blanket policy.
| Scenario | Coming back? | Recommended action | HTTP status |
|---|---|---|---|
| Temporarily sold out (restocking) | Yes | Keep page live, update availability schema | 200 |
| Seasonal (returns next season) | Yes | Keep live, add restock/notify signal | 200 |
| Discontinued, has a clear replacement | No | 301 to replacement product | 301 |
| Discontinued, only category is relevant | No | 301 to parent category | 301 |
| Discontinued, no relevant target, no links | No | Return 410 Gone, remove from sitemap | 410 |
| Never existed / spam / duplicate | N/A | 410 or canonical to the real page | 410 / 200 |
The single most useful question is: "Will a shopper searching for this product still be happy landing here in three months?" If yes, keep it. If no, send them somewhere they will be.
Keep the page live: UX, availability schema, and alternatives
For temporarily out of stock items, keeping the page live at a 200 status is almost always correct. Don't noindex it — you want Google to keep it in the index so it's ready to rank the day inventory returns.
Make the live page earn its keep:
- Update the availability schema. Set the
offers.availabilityvalue tohttps://schema.org/OutOfStock, orhttps://schema.org/BackOrderif customers can pre-order. Keep the rest of your product schema markup intact so Google renders accurate labels in listings. - Show honest status above the fold. "Currently out of stock" beats a greyed-out buy button with no explanation. Ambiguity increases bounce.
- Offer a path forward. A restock-notification email capture, a clear estimated return date, or a "customers also bought" block keeps the visit productive.
- Surface alternatives. Link to 3–6 in-stock, genuinely comparable products. This rescues the session and reinforces internal linking to pages that can convert.
That last point matters for revenue as much as SEO. A well-built out-of-stock page recovers a chunk of otherwise-lost sessions. If you're refining these templates, our product page SEO guide covers the on-page elements that carry over.
One caveat: if a large share of your catalogue is permanently out of stock and thin, that's a quality signal problem. Prune aggressively there. But a handful of temporarily sold-out SKUs is normal and harmless.
301 redirects and 404/410 for discontinued products
When a product is genuinely discontinued, the page has no future. Now the question is where its accumulated value should flow.
Prefer a 301 to the closest relevant match
A 301 redirect passes the large majority of link equity to the destination. Order of preference:
- The direct successor — the new model, updated version, or nearest equivalent SKU. Best possible target.
- A closely comparable product — same category, similar price and use case.
- The parent category page — acceptable when no single product fits. Better than a 404 because the intent ("I want this kind of thing") is preserved.
What you must not do is 301 everything to the homepage. Google explicitly treats a redirect to an irrelevant page — the homepage being the classic example — as a soft 404, meaning it's ignored and the destination gets no benefit. You lose the equity anyway and confuse the shopper.
When 410 (or 404) is the right call
Return 410 Gone when a product is permanently gone, has no relevant redirect target, and carries negligible traffic or backlinks. 410 tells Google the removal is intentional and permanent, so the URL drops from the index faster than a 404 (which implies "maybe it'll come back"). Practically the ranking outcome is similar, but 410 is cleaner for deliberate deletions.
| 301 Redirect | 404 Not Found | 410 Gone | |
|---|---|---|---|
| Passes link equity | Yes (to relevant target) | No | No |
| Best for | Discontinued + replacement exists | Accidental / temporary gaps | Intentional permanent removal |
| Removal speed from index | N/A (URL redirects) | Slower | Faster |
| Keeps shopper on-site | Yes | No | No |
Whichever removal path you choose, pull the URL from your XML sitemap. Leaving dead URLs in the sitemap wastes crawl budget and sends mixed signals — a point we hammer in ecommerce technical SEO.
Avoiding accidental auto-404s from your platform
This is where most stores bleed rankings without realising it. Ecommerce platforms have opinionated defaults for zero-inventory products:
- Shopify can hide products from the sales channel when they hit zero stock, which returns a 404 for the product URL.
- Magento / Adobe Commerce has a "Display Out of Stock Products" setting that, when off, removes them from storefront and search.
- WooCommerce can hide out-of-stock items from the catalogue depending on your inventory settings.
Any of these can silently convert a ranking, backlinked page into a 404 the instant a warehouse count hits zero. You won't get an alert. You'll just watch traffic slide weeks later.
Defensive setup:
- Configure the platform to keep zero-inventory pages live and indexable unless the product is truly discontinued.
- Crawl your site monthly (Screaming Frog, Sitebulb, or your platform's tools) and flag any product URL now returning 404, 301-to-collection, or
noindex. - Reconcile against your sitemap so live-but-orphaned pages get caught.
- Watch rankings for your money SKUs with a tool like DeployFlare's rank tracker so a sudden drop flags a stock-status accident before it compounds.
A thirty-minute monthly audit here pays for itself the first time it catches a bestseller that quietly 404'd.
Handling seasonal and back-in-stock products
Seasonal products — winter jackets, festival hampers, exam-season stationery — are the clearest case for keeping pages live year-round. The URL builds ranking authority across cycles. Delete it every off-season and you restart from zero each year.
For seasonal and restocking items:
- Keep the page at 200, always. Set availability to
OutOfStockoff-season, back toInStockwhen it returns. - Add a notify-me capture so demand doesn't evaporate. Emails collected off-season convert hard on restock day.
- Refresh content, don't recreate URLs. Update copy, imagery, and pricing on the same URL rather than spinning up a new one each season — a new URL means starting the ranking climb over.
- Feed demand data back into planning. Notify-me signups and search demand are cheap forecasting inputs; cross-reference with ecommerce keyword research to spot rising seasonal interest early.
When stock returns, flip availability, remove the out-of-stock messaging, and confirm the page is back in the sitemap. Because you never let it die, recovery is immediate rather than a multi-week reindex.
The one-line policy to hand your team
If you distil everything: temporary out of stock stays live; permanent discontinuation 301s to the closest relevant page; only 410 what has no target and no value. Wire that logic into your platform, schema, and monthly crawl, and out-of-stock stops being an SEO leak and becomes a non-event.