WooCommerce has no native way to mark a product as permanently discontinued while keeping its URL accessible. This is a universal e-commerce need — every store that sells physical goods eventually discontinues products.
The current workarounds all have critical flaws:
“Hidden” catalog visibility — Hides the product from shop/search, but:
No distinct stock status (still shows as “Out of stock” or “In stock”)
No schema.org Discontinued markup (Google supports https://schema.org/Discontinued as a valid ItemAvailability)
No customer-facing messaging (“This product has been discontinued” vs “Out of stock”)
Conflates “temporarily hidden” with “permanently discontinued” — no way to bulk-filter or report on them separately
Related products, upsells, and cross-sells still reference it unless manually cleaned up
“Out of Stock” + “Hide out of stock from catalog” — Hides ALL out-of-stock products, not just discontinued ones. Stores that want to show “temporarily out of stock” products (with backorder messaging) are forced to also show discontinued products, or hide everything.
Draft/Private/Trash — Breaks the URL (404), destroying SEO value, old forum/social media links, and order history product references.
Scale of the problem:
A mid-size e-commerce store (10K+ products) can easily have 40-60% of its catalog as discontinued. These products:
Still receive organic search traffic (product reviews, forum links, comparison articles)
Are needed for order history, returns, warranty claims
Should NOT be queried on shop pages, search, category pages, related products, widgets, or REST API catalog endpoints
Should report https://schema.org/Discontinued to Google (not OutOfStock)
more details can be found here:: https://github.com/woocommerce/woocommerce/issues/63817
Open
Last updated: April 1, 2026
0 comments
Log in to comment on this feature request.