Every retail catalog sheds products. Suppliers drop lines, seasons end, a color sells through and never comes back, a whole brand gets delisted after a contract dispute. What happens to the URL when that product goes away is one of the least glamorous decisions in retail SEO, and one of the most expensive to get wrong.
A product page that has ranked for two years carries inbound links, ranking history, indexed images and a place in Google’s understanding of what the site sells. Delete it without a plan and all of that evaporates, usually without anyone noticing until the quarterly traffic review.
The problem is that “out of stock” is not one situation. A temporary stockout that resolves in three weeks calls for a completely different treatment than a permanent discontinuation, and a seasonal item that returns every November needs a third approach. Teams that apply a single rule (usually “unpublish it” or “redirect it to the homepage”) end up with soft 404s, broken links from partner sites and a redirect map nobody understands. This guide lays out the decision tree: which pages to keep, which to redirect, which to serve a 410, and how to run the whole thing at scale on a catalog with real churn.
In short
- Temporary stockouts should keep the URL live with a 200 status, an honest availability message, a restock date or notification option, and OutOfStock availability markup so search engines and shopping feeds stay in sync.
- Permanent discontinuations have three sane outcomes: a 301 to a genuine replacement product, a 301 to the parent category when there is no replacement, or a 410 (or 404) when the page has no traffic, no links and nothing worth preserving.
- Seasonal products should never be deleted. Keep a year-agnostic URL live all year, switch availability to out of stock or pre-order between seasons, and let ranking history compound instead of rebuilding it every autumn.
- Structured data is the signal that separates a well-handled stockout from an abandoned page: schema.org Offer availability values, consistent Merchant Center feed status and correct HTTP codes are what Google actually reads.
- At scale this is a rules problem, not a judgment problem. Tier products by traffic and inbound links, encode the rule per tier, keep a governed redirect map, and measure recovered clicks in Search Console over 6–8 weeks after each batch.
Why deleted product pages cost more than people expect
A product URL is not just a page. It is an address that has been crawled, indexed, linked and clicked over months or years, and the accumulated value of that history is invisible in the CMS. Merchandising teams see a product with zero inventory and a “sold out” badge; search engines see a document with a ranking profile.
When that document disappears, the ranking profile is not transferred anywhere by default. It simply stops existing.
This matters more for retailers than for most publishers because retail product pages attract links from places editors rarely check: comparison sites, forum threads, “best of” roundups, affiliate posts, Reddit recommendations and the retailer’s own past email campaigns. The broader retail marketing picture is that discovery now happens across search, social and AI assistants at once, and every one of those channels resolves to a URL. A dead URL is a dead end in all of them simultaneously.
What a product URL accumulates over time
Four assets attach to a product URL that has been live for a while. First, inbound links from external sites, which pass authority to the page and, through internal links, to the category and the domain. Second, ranking history: Google has seen the page satisfy queries and has assigned it a position for a set of terms.
Third, indexed image and shopping results, which for retail can be a larger traffic source than blue links. Fourth, internal link equity flowing through breadcrumbs, related-product modules and category listings.
Delete the page and the first asset is lost outright unless you redirect, the second decays to zero over a few weeks, the third disappears at the next image crawl, and the fourth is rerouted only if your templates stop linking to a 404. None of this is catastrophic for a single low-traffic SKU. It becomes a real problem when a retailer discontinues 400 products in a range refresh and every one of them goes dark on the same day.
The three ways teams usually get it wrong
The first failure mode is the blanket unpublish: the product is marked inactive in the platform, the platform returns a 404, and no redirect is set. Links break, traffic drops and the crawl budget spent on those URLs is wasted until Google gives up. The second is the blanket homepage redirect, where every discontinued URL 301s to the root. Google treats this as a soft 404, because the destination does not match the intent of the original page, so the redirect passes little or nothing and users land on a page that has nothing to do with what they clicked.
The third failure mode is subtler and more common: keeping the page live but stripping it of everything useful. The product is out of stock, the “add to cart” button is gone, the images are removed, the description is replaced with “this item is no longer available,” and the page returns a 200. Google’s guidance on soft 404s covers exactly this case. A page that says nothing and links nowhere is indistinguishable from an error page, and it will eventually be dropped from the index despite the 200 status.
Temporary stockout: keep the page and say so
If the product is coming back, the URL should stay exactly as it is. No redirect, no noindex, no status code change. The page returns 200, keeps its title, description, images, reviews and internal links, and adds an honest availability state. This is the single most important rule in the whole decision tree, because temporary stockouts are by far the most frequent event on a live catalog and they are the ones where the wrong move does the most cumulative damage.
The reasoning is simple. Ranking is a lagging indicator: it takes weeks to earn a position and days to lose it. A product that sells out for ten days and is deindexed during that window will typically return to the index at a worse position than it left, and it can take a month or more to recover. Multiply that by every SKU that goes in and out of stock across a year and the cost dwarfs anything you lose by showing a “back soon” message to a visitor who cannot buy today.
What the page should show
The page needs to do three jobs at once: tell the visitor plainly that the item is unavailable, give them a reason to stay, and keep every SEO asset intact. That means a visible “out of stock” label near the price, a restock estimate if you have one, a “notify me when available” form, and a related-products module that surfaces in-stock alternatives from the same category. The product content itself (specifications, description, reviews, Q&A) stays exactly as it was.
Do not remove the price. Do not hide the images. Do not replace the description with a one-line apology. The product page elements that drive organic conversions are the same ones that keep the page indexable while it is out of stock, and a stripped page loses both.
Availability signals that keep the listing honest
The visible label is for people. The machine-readable label is for Google, Bing and every shopping feed you push. Set the schema.org Offer availability property to OutOfStock (or BackOrder if you take orders against a future delivery), and make sure the value in your Merchant Center or shopping feed matches. Mismatches between on-page markup and feed data are a common cause of product listing disapprovals, and Google’s Merchant Center documentation is explicit that availability must be accurate at the time of crawl.
If you have a restock date, add it. The availabilityStarts property exists for exactly this purpose, and a “back in stock on date” line on the page reinforces it. This is also the point at which many retailers discover their platform hardcodes availability to InStock or drops the Offer block entirely when inventory hits zero. Both are worth fixing once, centrally, in the template.
When “temporary” stops being temporary
The honest answer is that many “temporary” stockouts quietly become permanent. A supplier misses a delivery, then another, and six months later the product is still listed as “back soon.” At that point the page is lying to users and to search engines, and Google’s systems will start to treat a chronically out-of-stock page as a lower-quality result for its queries. Set a threshold, typically 60–90 days without inventory, at which the SKU is automatically reviewed and reclassified as discontinued, seasonal or genuinely delayed.
Permanent discontinuation: redirect, replace or 410
When a product is not coming back, the URL still has to go somewhere. The choice depends on two questions: is there a genuine replacement, and does the page have anything worth preserving? Answer both honestly and the right action falls out. The table below is the decision matrix most retail SEO teams end up with in some form.
| Situation | Recommended action | HTTP status | What the visitor sees | Main risk if done wrong |
|---|---|---|---|---|
| Temporary stockout, restock expected | Keep the page live, mark OutOfStock | 200 | Full product page with availability notice and alternatives | Stripping content turns it into a soft 404 |
| Discontinued, direct successor exists | 301 redirect to the successor product | 301 | The new model or version of the same product | Redirecting to a loosely related item breaks intent |
| Discontinued, no successor, page has traffic or links | 301 redirect to the closest category or subcategory | 301 | A listing of comparable in-stock products | Redirecting to the homepage is treated as a soft 404 |
| Discontinued, no traffic, no links, no value | Remove and serve 410 (or 404) | 410 / 404 | A helpful “not found” page with search and category links | Leaving it in the sitemap wastes crawl budget |
| Discontinued, but the content itself ranks (guides, reviews) | Keep live as an archive page, clearly labeled, with alternatives | 200 | The original page with a “no longer sold” banner | Forgetting the availability markup and feed status |
| Seasonal, returns annually | Keep live year-round, switch availability between seasons | 200 | Product page with off-season notice and notify-me option | Deleting and recreating the URL each year |
Redirect to a direct replacement
This is the best outcome, and the only one that preserves close to the full value of the old URL. If the 2025 model of a blender has been replaced by the 2026 model, the old URL should 301 to the new one. The intent of a searcher landing on the old page is satisfied by the new page, the inbound links now point at a product you sell, and Google consolidates the ranking signals into the destination.
“Direct replacement” is a stricter test than merchandising teams tend to apply. A different brand at a similar price point is not a replacement. A larger size of the same product is arguable.
A successor model with the same core function and a materially similar name is the clear case. When in doubt, ask whether a visitor who searched for the old product name would feel they landed in the right place. If the answer is “sort of,” redirect to the category instead.
Redirect to the parent category
When there is no successor but the page has meaningful traffic or inbound links, a 301 to the most specific relevant category is the standard fallback. The category page is already the hub for that product family, it lists in-stock alternatives, and it is the page most likely to rank for the generic version of the queries the product page used to catch. Choose the deepest category that still contains comparable products, not the top-level department.
Two cautions. First, Google does not always pass full credit through a product-to-category redirect, because the destination is a different type of page. Expect partial recovery, not one-to-one.
Second, if you redirect thousands of dead products to a single category, that category’s redirect profile starts to look artificial. Spread redirects across the specific subcategories they belong to, and 410 the pages that have nothing worth passing.
410 versus 404
Both status codes tell search engines the page is gone. The practical difference is speed and intent. A 404 means “not found” and Google will typically recrawl the URL several times over weeks before dropping it, on the assumption that it might come back.
A 410 means “gone, permanently” and Google’s documentation on HTTP status codes and their effect on search notes that 410 pages are processed for removal somewhat faster. For a deliberate discontinuation with no redirect target, 410 is the more honest signal.
The bigger point is that a 404 or 410 is not a failure. For the long tail of discontinued SKUs with no traffic and no links, removing the page cleanly is better for the site than redirecting it somewhere marginal. A catalog that redirects every dead URL accumulates redirect chains, bloated maps and category pages that inherit hundreds of irrelevant inbound signals. Removing pages that have no value is housekeeping, not loss.
Keeping the page as an archive
Some discontinued product pages rank for reasons that have nothing to do with buying the product. A cult item that people search by name, a page with 200 reviews that ranks for “is product any good,” a specification sheet that forums link to as a reference. Those pages can stay live with a clear “no longer available” banner, the availability marked as Discontinued, and a prominent module pointing to what you sell now. The page keeps its traffic and the retailer keeps a chance to convert it.
Seasonal products that return every year
Seasonal items are where retailers throw away the most ranking value with the least awareness. Halloween costumes, artificial Christmas trees, garden furniture, ski gloves, back-to-school backpacks: these categories are relaunched annually, often with new URLs, and every year the site starts the ranking climb from zero at exactly the moment demand peaks. By the time the new page ranks, the season is half over.
The fix is structural. Every seasonal product and category gets a permanent URL with no year in it. The page stays live and indexable all twelve months.
Between seasons, availability switches to OutOfStock or PreOrder, the page shows a “returns in month” notice and a notify-me form, and the content is left intact. When the season starts, inventory is switched on and the page is already ranking because it never left. This is one of the reliable wins in retail SEO fundamentals that still matter, and it costs almost nothing beyond discipline.
Year-agnostic URLs and evergreen content
If the platform insists on creating a new product record each season (common when the supplier assigns a new SKU annually), the SEO team needs a rule: the new record inherits the old URL, or the old URL 301s to the new one before the old page is removed. Both work. Neither happens by default. A URL like /christmas-trees/7ft-pre-lit-spruce should serve the current year’s version of that product indefinitely, with the year appearing only in on-page copy if at all.
Off-season page content
An out-of-season page does not have to be dead weight. It can carry buying guides, sizing information, last season’s reviews, care instructions and an early-access signup. Search demand for seasonal terms starts building 6–8 weeks before the peak, and a page that is live, indexed and informative during that ramp captures the research phase rather than only the purchase phase.
Structured data and availability signals
Everything above depends on search engines being able to read the product’s status without guessing from the visible text. That is what structured data is for. The schema.org Product and Offer types carry an availability property with a fixed vocabulary, and Google uses it to decide whether a product qualifies for rich results, how to label it in Shopping, and, increasingly, whether an out-of-stock page is still a useful result. Retailers that already have a working markup implementation, of the kind covered in structured data for retail: what to mark up and what to skip, usually need only to make sure the availability value is dynamic.
| Availability value | Meaning | When to use it | Page status | Feed equivalent |
|---|---|---|---|---|
InStock |
Available to buy now | Normal trading | 200 | in_stock |
OutOfStock |
Temporarily unavailable, expected to return | Short-term stockouts, off-season seasonal items | 200 | out_of_stock |
BackOrder |
Orders accepted, shipped when stock arrives | Known lead time, willing to take payment now | 200 | backorder |
PreOrder |
Not yet released or not yet in season, orders accepted | Launches, seasonal returns with a firm date | 200 | preorder |
LimitedAvailability |
Low stock | Last units, clearance | 200 | in_stock (with quantity) |
SoldOut |
Sold through, not expected to return in this form | Limited editions, drops | 200 | out_of_stock |
Discontinued |
Permanently withdrawn | Archive pages kept for content value | 200 | Remove from feed |
Keeping markup, feed and page in agreement
The three sources Google compares are the on-page structured data, the Merchant Center feed and the rendered page. When they disagree, the listing is at risk. A common pattern is a feed that updates hourly from inventory while the page template caches availability for a day, so the feed says out of stock and the page says in stock.
Google’s automatic item updates will try to reconcile this, but repeated mismatches count against the account. Drive all three from the same inventory source and cache them on the same schedule.
What Google does with out-of-stock pages
Google has been clearer in recent years that an out-of-stock product page is not automatically a bad result. Its product structured data documentation, and the schema.org definition of ItemAvailability it relies on, both treat OutOfStock as a normal state. What Google penalizes in practice is a page that claims to be a product page and then delivers nothing: no price, no description, no path to an alternative. Markup keeps the page’s identity clear even when it cannot sell.
Handling it at scale on a catalog with churn
Everything so far is straightforward for one product. A fashion retailer with 40,000 SKUs and 30 percent annual churn is making this decision 12,000 times a year, and no one is going to review each URL by hand. The answer is to make the decision tree a set of rules, tier products so that the rules apply proportionately, and give one team ownership of the redirect map so it does not become a graveyard.
Tiering products by what they are worth
Pull three numbers per product URL: organic sessions over the past 12 months, referring domains, and internal link count. Bucket the catalog into tiers. Tier one, typically the top 5–10 percent by traffic or with any external links, gets human review and a hand-picked redirect target when discontinued.
Tier two, products with some traffic but no external links, gets an automatic redirect to the assigned subcategory. Tier three, the long tail with negligible traffic and no links, gets a 410 and removal from the sitemap. The thresholds vary by catalog, but the shape of the rule is the same everywhere.
Encoding the rules in the platform
Most retail platforms will not do this out of the box. Shopify, for example, returns a 404 for unpublished products unless a redirect is created, and its native redirect tool is manual. Magento, Salesforce Commerce Cloud and headless setups vary.
The pattern that works is a nightly job that reads inventory status, product status (active, discontinued, seasonal) and the tier assignment, and writes the correct outcome: keep the page and set availability, create a 301 to the mapped target, or remove the page and register a 410. The same logic that governs how variant URLs are canonicalized or blocked should sit alongside it, because variants of a discontinued parent need the same treatment.
Redirect map hygiene
Redirect maps rot. Product A redirects to product B, then B is discontinued and redirects to category C, and two years later a link from a partner site hops through three redirects before landing. Chains dilute signals and slow the crawl. The map needs a periodic pass that flattens chains (A should point directly at C), removes redirects whose source URL has not been requested in 12 months, and flags any redirect pointing to a page that now returns a non-200 status.
Sitemaps, crawl budget and log files
Discontinued URLs must leave the XML sitemap the same day they are redirected or removed. Leaving them in tells Google the URL is important, and Google will keep spending crawl budget confirming it is not. Server logs are the fastest way to check the whole system is working: a spike in Googlebot requests returning 404 means a batch was removed without redirects, and a long tail of 301 responses to URLs nobody links to means the map needs pruning. The wider retail marketing stack depends on this kind of technical hygiene more than most teams appreciate, because paid, social and email campaigns all reuse product URLs long after the product is gone.
Measuring what you recovered afterwards
The point of all this is to keep traffic and conversions that would otherwise have been lost, so the measurement has to compare against the counterfactual. The cleanest method is a cohort approach: take the batch of URLs that were discontinued in a given week, record their organic clicks for the prior 12 weeks, then track clicks to their redirect destinations (or to the retained pages) for the following 6–8 weeks. What you are measuring is retained clicks as a share of pre-discontinuation clicks.
What to pull from Search Console
Search Console’s page-level report gives clicks and impressions per URL, and the URL Inspection tool confirms the status Google last saw. For a redirected batch, export the source URLs’ performance before the change and the destination URLs’ performance after, then compare the delta on the destination against its own baseline. For retained out-of-stock pages, watch impressions rather than clicks: a page that keeps its impressions while out of stock has kept its ranking, and clicks will return with inventory.
What “recovered” realistically looks like
Redirects to a direct successor product commonly retain the large majority of the source page’s organic clicks within a month, because intent and content match closely. Redirects to a category retain a smaller share, often a minority, because the category ranks for different queries. Pages that were 410ed retain nothing by design, which is fine if the tiering put them in that bucket correctly. If a category redirect batch shows near-zero recovery, that usually means the destination was too generic and the redirect was treated as a soft 404.
Watching for the soft 404 signal
Search Console’s page indexing report has a “soft 404” category. After any large discontinuation batch, check it. URLs listed there are ones Google fetched, received a 200 or a redirect for, and judged to have no real content or an unrelated destination.
Each is a decision that needs revisiting: either the retained page has been stripped too far, or the redirect points somewhere that does not satisfy the original intent. Fixing the ones with the most historical traffic first is the highest-return task on the list.
FAQ on out-of-stock product page SEO
Should I noindex an out-of-stock product page?
No, not if the product is expected to return. A noindex removes the page from the index and forfeits its ranking history, and removing the tag later does not restore that history quickly. Keep the page indexable with a 200 status, honest OutOfStock availability markup and in-stock alternatives. Reserve noindex for pages that should never rank at all, which is a different problem from a temporary stockout.
Is a 404 bad for SEO?
A 404 on a page that has no traffic, no inbound links and no replacement is not harmful. Google expects sites to remove content and does not penalize a domain for having 404s. What hurts is 404ing pages that had value without redirecting them, and having internal links or sitemap entries that still point to the dead URL. The status code is fine; the lost equity and the wasted crawl are the problems.
Should I redirect a discontinued product to the homepage?
Almost never. A homepage redirect does not satisfy the intent of someone who clicked a specific product link, and Google’s systems commonly classify it as a soft 404, so little or no ranking value is passed. Redirect to a direct replacement if one exists, to the closest relevant subcategory if not, and remove the page with a 410 if there is nothing worth preserving.
How long should a temporary stockout page stay live before I treat it as discontinued?
Set an explicit threshold and automate the review. Many retailers use 60–90 days without inventory as the trigger to reclassify a product as discontinued, seasonal or genuinely delayed with a known date. Leaving a page in “back soon” limbo for six months misleads visitors and gives search engines a chronically unavailable result, which tends to erode its rankings anyway.
What is the difference between OutOfStock and Discontinued in schema.org markup?
OutOfStock tells search engines the product is temporarily unavailable and expected to return, so the page remains a live product listing. Discontinued means the product has been permanently withdrawn. Use Discontinued only on archive pages you deliberately keep for their content value, and remove those products from shopping feeds, since feeds do not have a discontinued state and will simply treat the item as unavailable.
Should seasonal product URLs include the year?
No. A URL with a year in it has to be replaced every season, which resets ranking history annually. Use a permanent, year-agnostic URL, keep it live all year, switch availability between OutOfStock or PreOrder and InStock as the season changes, and put the year in the on-page copy only if it is genuinely useful to shoppers.
Does a 410 remove a page from Google faster than a 404?
Google’s own documentation indicates that 410 responses are processed for removal somewhat faster than 404s, because 410 explicitly states the removal is permanent while a 404 leaves open the possibility the page will return. In practice the difference is days rather than months. Use 410 when the removal is deliberate and final; it is the more accurate signal and costs nothing to implement.
How do I measure whether my redirects actually preserved traffic?
Treat each discontinuation batch as a cohort. Record the organic clicks of the source URLs for the 12 weeks before the change, then track the redirect destinations for 6–8 weeks afterward against their own baseline. Retained clicks as a percentage of the pre-change total is the number to report. Also check Search Console’s soft 404 report after each batch, because any URL listed there is a redirect or retained page that Google judged to have missed the intent.