Should an out-of-stock product page stay live for SEO?
Keep the URL live when the stockout is temporary, the product is still useful to shoppers, and the business expects to sell it again. Show the real availability, preserve a self-referencing canonical, and offer relevant alternatives or a restock option. If the product is permanently discontinued, redirect only to a genuine replacement; otherwise return 404 or 410, unless the page has a distinct continuing purpose such as support or reference information.
Key takeaways
- A temporary stockout is an inventory state, not a reason by itself to delete or redirect a useful product URL.
- Backorder means the customer can order now for later fulfilment; the landing page and Merchant Center feed need the same availability date, while structured data must reflect the backorder state.
- Use a permanent redirect only when one product genuinely replaces the old one, not for a merely similar item, category or home page.
- Use 404 when no current representation exists and permanence is unknown; use 410 when the server knows the removal is likely permanent.
- Treat organic URL handling and Merchant Center visibility as separate decisions, then reconcile them through one product-lifecycle source of truth.
Out-of-stock product SEO starts with a catalogue decision: is this item coming back, still orderable, replaced, or finished? The HTTP response and search signals follow that answer. They should not be chosen from traffic alone.
For a temporary stockout, keep a useful product URL live with a 200 response, truthful availability and a way forward. For a backorder, keep the page live and let customers order only if the promised fulfilment date is real. Merchant Center requires out_of_stock when a temporarily unavailable product cannot be ordered, and backorder plus availability_date when orders are accepted for later shipment (Merchant Center availability guidance). For a discontinued product with a genuine successor, use a permanent server-side redirect. If the product is permanently retired and has no replacement, return 404 or 410, unless the old page has a separate, continuing purpose as documentation or support (Google’s guidance for removed and replaced pages).
Google’s crawling guidance states the same boundary in plainer technical terms: return 301 when content has moved or has a clear replacement, and return 404 or 410 when content is gone without a similar replacement (Google Search Central). That still leaves a merchandising question: what counts as a replacement, and when is an unavailable page useful enough to keep?
The decision matrix
Use the table as a first pass, then test the assumptions in the following sections.
| Catalogue state | Customer can order now? | Organic URL | On-page treatment | Merchant Center product data |
|---|---|---|---|---|
| Temporary stockout | No | Keep 200 and self-canonical |
State OutOfStock; show useful alternatives and an honest restock option |
Keep item with out_of_stock while it is temporarily unavailable |
| Backorder | Yes, for later fulfilment | Keep 200 and self-canonical |
State BackOrder; show expected availability or ship date and order terms |
Use backorder plus availability_date |
| Discontinued with a true successor | Usually on the successor | Permanent 301 or 308 to that successor |
Explain the replacement on the destination | Remove the old item; submit the successor as its own product |
| Permanently retired, no replacement | No | 404 or 410 |
Serve a useful error page with navigation; no false product offer | Remove the discontinued item |
There is one legitimate exception to the last row. A page can remain on 200 when people still need its manuals, compatibility notes, safety notices, parts information or other durable reference material. In that case, the page is not being kept merely to preserve rankings. It has a new, explicit job. Remove purchase language that is no longer true, label the product as discontinued, and decide whether it belongs in a support or archive section.
Temporary stockout: keep the promise, not the buy button
A short stock gap does not erase the product, its specifications, reviews, compatibility information or the demand that brought a shopper to the page. Keeping the URL live is sensible when the team expects replenishment and the page still answers the product query.
The page needs to say what the checkout can honour now. Google Merchant Center defines out_of_stock as a state where the merchant is not accepting orders or the product is unavailable for purchase. It also says the feed value should always match the website, and warns that an item may be disapproved if the page or checkout is out of stock while the product data says in_stock (Merchant Center availability guidance). Disable the purchase action rather than accepting an order the business cannot fulfil.
Keep the parts of the page that remain useful:
- the product name, images and distinguishing specifications;
- variant-level availability, so one unavailable size does not make every variant look sold out;
- delivery or regional restrictions that still affect the decision;
- a restock notification when the business can operate it and explain how the address will be used;
- close alternatives, labelled by the difference that matters rather than presented as random popular items.
Do not publish a made-up return date. “Expected in September” is helpful only when purchasing or supply data supports it. When no date is reliable, say that no confirmed restock date is available and offer a notification or an alternative. That answer is less satisfying, but it does not create a promise the fulfilment team has to break.
The self-referencing canonical should normally remain unchanged. A stockout does not make the product a duplicate of its category or of a neighbouring product. Google’s canonical documentation describes rel="canonical" as a way to identify the representative URL among duplicate or very similar pages; it is not an instruction for temporary inventory states (Google’s canonical guidance). Canonicalising an unavailable product to a category mixes two different intents and may be ignored because the pages are not equivalents.
Keep the URL in the XML sitemap if the business still wants that product page eligible for organic search. Google says sitemaps should contain the canonical URLs a site wants to see in search results (Google’s sitemap guidance). Keep internal links where they help shoppers, but adjust the product-card label and ordering so unavailable products do not crowd out buyable options.
This is a recommendation, not a promise that the URL will keep its previous visibility. Search demand, competitors, product usefulness and Google’s systems still affect what appears. The aim is to preserve an accurate landing page while the commercial interruption is temporary.
Backorder is not another label for sold out
A product on backorder can be ordered now and fulfilled later. That operational fact separates it from an ordinary stockout. If the checkout does not accept the order, the product is out of stock, regardless of what the marketing label says.
Google’s Merchant Center specification requires availability_date when availability is backorder, and the date must also be visible on the landing page. It reserves preorder for a new product that has not yet been released; an existing product returning to stock while orders are accepted should use backorder (Merchant Center availability guidance).
The product page should answer four practical questions before the order action:
- Is payment taken now or at dispatch?
- What date is the item expected to ship or become available?
- Can the customer cancel if that date changes?
- Does a mixed basket wait for the backordered item or ship separately?
Those terms vary by store and jurisdiction, so the page should use the business’s real policy rather than a generic template. SEO should expose that operational state clearly and consistently.
At the data layer, publish the matching BackOrder value in the product’s Offer markup when an offer remains valid, and send backorder with the same availability_date in the feed. Merchant Center’s landing-page requirements say the product data, landing page and order state must agree; for preorder or backorder, the expected date also needs to be shown on the page (Merchant Center landing-page requirements). Check the selected variant, initial HTML and rendered state as well as the default product record.
Discontinued with a replacement: test equivalence before redirecting
A permanent redirect is appropriate when the successor satisfies substantially the same need and the old product will not return. Think of a new model that replaces the prior model in the manufacturer’s range, with compatible use, comparable product type and a clear migration path. A similar price or shared category is not enough.
Google recommends permanent server-side redirects when a page has moved, and says 301 and 308 indicate a permanent move. These redirects are signals that the target should become canonical (Google’s redirect documentation). The destination should therefore be the page the merchant actually wants people and search engines to use, not an interim selector or a chain through several old models.
Before approving the redirect, ask:
- Would a shopper seeking the old product recognise the destination as its successor?
- Does the successor preserve the central use case, compatibility and market?
- Can the destination explain the material differences without disguising them?
- Will customer service also send a buyer to this page?
If the answer depends on “they are both in the same category,” do not redirect yet. In Google’s August 2024 SEO office hours, John Mueller used product examples to draw this line: a genuine replacement product can be redirected, but a merely similar page should not be. He advised against blindly redirecting old product URLs to a similar item, category or home page (Google Search Central office hours).
Once the mapping passes that test, implement a direct permanent redirect. Replace internal links to the old URL, remove the old URL from the canonical sitemap, and confirm that the successor has a self-referencing canonical. Remove the discontinued offer from Merchant Center rather than turning its feed record into the new product. The successor needs its own identifiers, landing-page URL and accurate product data.
The redirect guide covers status-code implementation, chains and migration testing in more depth. Use it when the decision is settled: 301 and 302 redirects for SEO.
Permanently retired without a replacement: 404 or 410
When the product is gone and no destination answers the same need, an error response is honest. A customised page can still help the visitor reach a category, search the catalogue or contact support, but its HTTP status must remain an error. Returning 200 with “product unavailable” and little else can be interpreted as a soft 404; Google’s troubleshooting guide says error-like pages that return 200 may be excluded from Search (Google’s crawling-error guidance).
The choice between 404 and 410 is about server knowledge, not an SEO trick. RFC 9110 says 404 Not Found means the origin has no current representation or is unwilling to disclose one, without saying whether that condition is temporary or permanent. It says 410 Gone is preferred when the origin knows the condition is likely permanent (RFC 9110, sections 15.5.5 and 15.5.11).
Use 410 when the product lifecycle system has a reliable, deliberate “permanently retired” state and no forwarding address. Use 404 when the page is missing but the system cannot establish permanence, or when one error template handles all absent catalogue records. Google accepts either for removed content without a replacement. There is no need to add noindex to make the error more final; the non-success response already states that the page is unavailable.
Clean up every owned discovery surface:
- remove the retired URL from XML sitemaps;
- remove product cards and contextual internal links that promise the item is available;
- replace links with a successor only when that successor passes the equivalence test;
- remove the discontinued item from Merchant Center product data;
- keep the custom error page’s general navigation useful without making it look like the old product still exists.
External links may continue to request the URL, and Search Console may continue to report it as Google recrawls known addresses. That alone is not evidence that the error handling is wrong. Inspect valuable inbound links for a possible true replacement, but do not manufacture relevance to capture every old signal.
When an old product page still has a job
Some discontinued products remain important after sales end. Owners may need a manual, recall notice, compatibility table, firmware file, spare-part reference or proof of specifications. A permanent 200 page can serve that need if the content is substantive and the page is clearly no longer a live offer.
Separate the reference purpose from the sales template. Remove or disable purchase controls, state that the product is discontinued, date any support limitation, and route shoppers to a successor only as an explained alternative. If the page keeps Product markup, its availability must match the visible state. If there is no valid offer, do not invent an Offer or leave an obsolete price solely to retain a product search appearance.
This exception needs evidence. Historical organic visits are not enough because they do not show whether the page helps the visitor. Look at query intent, on-site search, support contacts, downloads and maintained documentation. If the remaining demand is simply “buy this product” and the answer is permanently no, the page may be better retired.
Keep visible alternatives useful
Alternatives help on temporary stockouts and retained reference pages, but they should not obscure the status. The person first needs a straight answer about the requested product. Then present a small set of options that explain the trade-off.
Useful alternative labels sound like this:
- “same connector and power rating, shorter cable”;
- “current successor, but not compatible with the first-generation dock”;
- “available in a larger pack”;
- “same size, different material and care requirements.”
The labels expose why the products are comparable and where they differ. A generic carousel headed “You may also like” cannot carry that decision. On a variant product, show whether another colour or size is available without automatically switching the selected variant and its URL. Merchant Center requires variant availability in product data to match the corresponding variant on the landing page (Merchant Center availability guidance).
Alternatives do not turn into redirect targets merely because they receive clicks. A link lets the visitor choose after seeing the difference. A redirect makes that choice on the visitor’s behalf and tells search systems the destination replaced the source. Keep those mechanisms separate.
Structured data should report the state, not repair it
Google’s Product documentation supports OutOfStock, BackOrder and Discontinued values for Offer.availability, alongside other Schema.org ItemAvailability values (Google’s Product structured-data documentation). Choose the single value that matches the visible offer and the selected variant.
For a temporary stockout, retain the existing Product and Offer structure if the page still represents that product and the offer data remains truthful. Change availability to OutOfStock. For a backorder, use BackOrder and keep price, currency and availability terms consistent with the order flow. For a retained discontinued reference, use Discontinued only when the marked-up offer and visible page support that meaning. Otherwise remove the stale Offer rather than fabricating current commerce data.
Structured data does not choose whether a URL should redirect or return an error. A 301, 404 or 410 response has no live product page on which to preserve obsolete JSON-LD. Validate the final rendered page after each template change, especially when JavaScript updates variant, price or availability data.
This article does not repeat the full Product schema implementation. For property requirements, variant modelling and validation, use product structured data for ecommerce.
Organic landing pages and Merchant Center are different controls
An organic page can remain useful while its offer is temporarily unavailable in Merchant Center destinations. Conversely, deleting a product from Merchant Center does not by itself retire the organic URL. Google says Merchant Center participation is required for some surfaces such as the Shopping tab, while product pages can also be discovered and understood through web crawling and structured data (Google’s product-data guidance).
That distinction produces two decisions:
- What should happen when someone or a crawler requests the URL? Choose
200, a permanent redirect,404or410based on the page’s continuing purpose and replacement status. - Should this offer participate in Merchant Center destinations? Set accurate availability for temporary states, or remove the discontinued product from the feed.
Google’s Merchant Center guidance explicitly says not to use out_of_stock for a product the merchant no longer sells; discontinued products should be removed from product data. It also advises against deleting a product merely because orders are paused temporarily, because re-adding it can delay its return to visibility (Merchant Center availability guidance).
Feeds can update on a controlled schedule, while crawling has no guaranteed processing time. Google recommends combining page structured data with Merchant Center data and notes that availability conflicts can occur when the website changes before the feed. Automatic item updates can reduce mismatches, but the feed still needs regular updates (Google’s product-data guidance). Treat automation as a guardrail, not the source of catalogue truth.
Build one lifecycle rule that every surface can use
The fragile approach is to let the CMS, feed exporter, sitemap generator and navigation each guess what “unavailable” means. A product may then say “sold out” on the page, remain in_stock in Merchant Center, disappear from internal links, stay in the sitemap and canonicalise to a category. Each output can look plausible in isolation while the system contradicts itself.
Use a product-lifecycle record with explicit inputs:
- sellable now;
- orders accepted for later fulfilment;
- confirmed availability date;
- expected to return;
- permanently discontinued;
- successor product ID, when one has been approved;
- continuing support or reference purpose.
Map those inputs to outputs in code or catalogue rules, not in a spreadsheet remembered by one team. The mapping should decide the HTTP response, canonical, visible availability, purchase controls, Product availability value, feed inclusion and attributes, sitemap inclusion, product-card treatment and internal-link updates.
Add exception queues instead of silent fallbacks. A discontinued product with a named successor that is unavailable in the relevant market should not redirect to a broken or regionally unavailable destination. A backorder without a confirmed date should not emit backorder. A product marked sellable whose selected variant cannot be purchased should fail the consistency check before the next feed export.
Monitor changes across every surface
Run monitoring by lifecycle cohort. A daily or release-based report can compare catalogue state with each published surface:
| Check | Temporary stockout | Backorder | Replaced | Retired |
|---|---|---|---|---|
| HTTP | 200 |
200 |
Direct 301/308 |
404/410 |
| Canonical | Self | Self | Destination self-canonical | None on the error response |
| Visible state | Out of stock | Backorder plus date | Successor explains change | Useful error or maintained archive |
| Structured availability | OutOfStock |
BackOrder |
Successor’s current state | None on error page |
| Merchant Center | out_of_stock |
backorder plus date |
Old removed, successor current | Removed |
| Sitemap | Keep if still intended for Search | Keep | Old removed | Removed |
| Internal links | Useful but labelled and reordered | Useful and labelled | Point to successor where relevant | Remove or replace contextually |
Sample URLs from every row after deployment. Fetch the final response without JavaScript, inspect the rendered page, parse JSON-LD, check the feed output for the same product and verify the sitemap entry. Then test the order action for the selected market and variant. A technically matching BackOrder value still fails the customer if checkout rejects the order.
In Search Console, watch Page indexing and URL Inspection for representative transitions. In Merchant Center, monitor availability mismatches, product-page availability and destination status. Keep organic clicks and Shopping or free-listing visibility in separate columns because they measure different surfaces. Annotate lifecycle releases so a visibility change can be compared with the actual catalogue event rather than attributed to the nearest SEO edit.
A practical next step
Export product URLs whose availability changed in the last 90 days and assign one of the four matrix states. Start with conflicts: 200 pages for retired products, redirects without an approved successor, error URLs in sitemaps and feed availability that differs from the landing page.
For each URL, record the evidence, intended customer outcome and owner who can confirm replenishment or retirement. Generate the technical outputs from that record so the same catalogue rule handles the next stock change without another manual clean-up.
Frequently asked questions
Should an out-of-stock product page stay indexed?
Usually yes when the product is expected back and the page still gives shoppers an accurate, useful answer. Keep the URL on a 200 response, state that it is out of stock, retain its self-referencing canonical, and provide realistic alternatives or a restock option. The decision changes when the product will not return or the page has become an empty shell.
Should a discontinued product redirect to its category?
Only if the category is genuinely the best replacement for the specific need, which is uncommon for an individual product. A direct successor with the same purpose is a stronger redirect target. Google warns against blindly redirecting removed pages to similar products, categories or the home page. When no clear replacement exists, return 404 or 410 and make the error page useful.
Is 404 or 410 better for a permanently discontinued product?
Both tell crawlers that the product page is unavailable. RFC 9110 says 404 does not state whether the condition is temporary or permanent, while 410 is preferred when the origin server knows the condition is likely permanent. Use the code your catalogue can support truthfully. Neither needs a redirect when there is no genuine replacement.
Should Product structured data remain on an out-of-stock page?
It can remain when the page is still a genuine product page and the markup matches what the visitor sees. Google supports OutOfStock, BackOrder and Discontinued availability values. Do not leave InStock in the markup after the buyable offer disappears, and do not invent an Offer, price or availability solely to preserve rich-result eligibility.
Should a discontinued product remain in Google Merchant Center?
No. Google’s availability guidance says not to use out_of_stock for products the merchant no longer sells and to remove discontinued products from product data. That feed action is separate from organic URL handling: the old web page may redirect, return 404 or 410, or remain as useful non-commercial documentation, depending on what now serves the visitor.
Sources and references
-
Troubleshoot Google Search crawling errors (developers.google.com)
-
Redirects and Google Search (developers.google.com)
-
August 2024 Google SEO office hours transcript (developers.google.com)
-
How to specify a canonical URL (developers.google.com)
-
Build and submit a sitemap (developers.google.com)
-
Product snippet structured data (developers.google.com)
-
Share your product data with Google (developers.google.com)
-
Availability attribute (support.google.com)
-
About landing page requirements (support.google.com)
-
HTTP Semantics, RFC 9110 (rfc-editor.org)
Share this article
If you found this content useful, share it with your colleagues.