Overview
A product URL has a lifecycle: it launches, goes in and out of stock, sprouts variants, and eventually gets discontinued. Each stage is a chance to lose the ranking the page has built, either by removing a URL that should have stayed or by splitting one product across many near-duplicate URLs. This page covers the two decisions that most often go wrong: what status code a product URL returns as availability changes, and how variants share one canonical URL. For product schema, reviews, facets, and category pages, see ecommerce-seo.
Keep the page on temporary out-of-stock; return 410 only for permanently gone
Out-of-stock handling is a frequent e-commerce SEO mistake. The right answer depends on whether the product comes back.
- Temporary out-of-stock: keep the URL, set
availability: "OutOfStock"in the Offer, and surface a “notify me” form on the page. The ranking and the indexed page persist; conversion resumes on restock. - Discontinued, no replacement: return 410 (Gone) or 404. Google treats both as removal signals and drops the URL as it recrawls; 410 states the intent more explicitly.
- Discontinued, has a replacement product: 301 to the replacement. Signal transfers; the old URL retires.
- Discontinued with no replacement but inbound links worth keeping: 301 to the parent category. Less ideal than a replacement but better than a 410 if the equity matters.
See redirects for the status-code reference.
Variants live on one canonical URL with options, not separate URLs
Color, size, and material variants are options on a single canonical product page. Splitting each variant onto its own URL forces a canonical war that the crawler resolves badly.
- One structured data block per canonical page. Google’s product variant markup uses a
ProductGroupwhosehasVariantlists each variantProduct; see schema-markup-deep. - The canonical URL is the parent product. Variant query strings (
?color=black) point at the canonical via<link rel="canonical">. - Indexable variants only when the variant is a distinct purchase decision with distinct demand (one-off colorways with their own marketing, for example).
- Schema’s
Offerarray lists each in-stock variant with its own price and SKU; the canonical absorbs the ranking signal.
This pattern keeps the ranking weight on one URL and lets the page rank for the broad query and the variant-specific query at once.