
What out-of-stock page handling is
Out-of-stock page handling is the decision, per product, about what to do with a URL when the item sells out: keep it live (HTTP 200), redirect it (301/302), remove it (404/410), or replace it. It sounds trivial until you have a few thousand SKUs churning through stock, and then the wrong default quietly deletes ranking pages and the links pointing at them.
The stakes: a product page that took months to rank can vanish from search in days if your platform 404s it the moment inventory hits zero. Do this wrong at scale and you bleed organic traffic that has nothing to do with the products being temporarily unavailable.
The core rule: temporary vs permanent
The whole decision hinges on one question: is this coming back?
- Temporarily out of stock (restocking): keep the URL live, return HTTP 200, tell shoppers it is out of stock, and offer alternatives or a back-in-stock signup. Do not 404 it. You are preserving the ranking for when stock returns.
- Permanently discontinued (never coming back): if a clear replacement exists, 301 to it; if not, let it 404 or 410 and remove it from the sitemap. Don't leave dead SKUs sitting on 200 forever with no path forward.
Here is the honest bit most platform defaults get wrong: they treat every stockout as permanent and hard-404 the page. That is how you nuke your own equity. A temporary stockout is a merchandising state, not a reason to delete a URL.
Status-code handling compared
| Scenario | Response | Schema availability | Sitemap | Why |
|---|---|---|---|---|
| Temporarily out of stock | 200 (keep page) | OutOfStock | Keep | Preserve ranking; item returns |
| Backorder / preorder | 200 (keep page) | BackOrder / PreOrder | Keep | Still buyable, still relevant |
| Discontinued, has replacement | 301 to replacement | n/a | Remove old | Pass equity to the live product |
| Discontinued, no replacement | 404 or 410 | n/a | Remove | Clean removal; 410 = "gone for good" |
| Seasonal (returns yearly) | 200 (keep page) | OutOfStock | Keep | Rebuilding rank each season is wasteful |
Get the schema right
On a page you keep live, reflect the real state in Product schema so rich results and Merchant Center stay honest:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Merino Wool Base Layer - Charcoal, L",
"sku": "SKU-4471",
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "89.00",
"availability": "https://schema.org/OutOfStock",
"url": "https://example.com/base-layer-charcoal-l"
}
}Swap in InStock, BackOrder, or PreOrder as the real state changes, and make sure that same value matches your product feed availability attribute. If your page schema says OutOfStock but the feed says in_stock, Merchant Center flags the mismatch and can disapprove the item.
How to check out-of-stock handling on your site
- Curl a known sold-out product. Run
curl -sI https://example.com/sold-out-product/and read the status line. A temporary stockout should be200, not404or a302bounce to the homepage. - Watch for soft 404s. In Google Search Console → Pages report, look for a rising "Soft 404" count. An out-of-stock page with almost no content often gets classified as one, which drops it.
- Crawl for status changes. Run Screaming Frog before and after a big sellout event and diff the status codes to catch pages that flipped to 404 without you deciding they should.
- Validate schema. Run the page through Google's Rich Results Test and confirm the
availabilityvalue reflects reality. - Reconcile with the feed. Compare a sample of on-page availability against the feed's
availabilityattribute in Merchant Center Diagnostics to catch mismatches.
Common mistakes and fixes
| Mistake | Why it hurts | Fix |
|---|---|---|
| Hard-404 on every stockout | Deletes ranking pages that will restock | Return 200 and keep the URL for temporary outages |
| Redirecting sold-out items to the homepage | Soft 404; equity lost, users annoyed | Keep the page, or 301 to a true replacement |
| Empty "out of stock" page with no content | Gets classed as soft 404 | Keep description, add alternatives + restock signup |
| Schema still says InStock | Misleading rich results; feed mismatch | Set availability to OutOfStock and sync the feed |
| Discontinued SKUs left on 200 forever | Dead pages clutter the index | 301 to replacement or 410 to remove cleanly |
FAQ
Should an out-of-stock product page return 404?
Only if the product is permanently gone and has no replacement. For a temporary stockout, keep the page live with a 200 so you do not throw away the ranking and backlinks; the item is coming back and the URL should still be there when it does.
Is it better to redirect out-of-stock pages or keep them?
Keep them if the product is restocking. Redirect (301) only when the product is permanently discontinued and a genuine replacement exists. Redirecting a temporary stockout to a category or homepage looks like a soft 404 and wastes the page's equity.
What schema availability value should I use?
Use https://schema.org/OutOfStock while an item is unavailable but retained, BackOrder or PreOrder when it is still buyable with a delay, and InStock when it returns. Whatever you choose must match the availability value in your product feed to avoid disapprovals.
How do I stop out-of-stock pages from becoming soft 404s?
Keep real content on the page: the product description, images, price, alternatives, and a back-in-stock notification. A page that just says "out of stock" with nothing else looks empty to Google and gets classed as a soft 404, which drops it from the index.
What about a whole category selling out at once?
Do not remove the category. Keep the URL live and repopulate it as stock returns, and surface related in-stock items so the page still serves intent. See category page SEO for keeping listing pages healthy through inventory swings.
Related reading
- Category Page SEO — handling stockouts at the listing level.
- Product Feed — keeping feed availability in sync with the page.
- Merchant Center — where availability mismatches surface as disapprovals.
- Out-of-Stock Page Handling — the deeper playbook.
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.







