Skip to content

Soft 404

A page that returns HTTP status 200 OK but actually shows error content. "currently unavailable," "out of stock," or similar. Looks healthy to status-code checkers; doesn't convert for buyers.

A "hard" 404 returns HTTP status 404, the standard signal that a page does not exist. Easy to detect, easy to fix. A "soft" 404 returns status 200 OK, meaning the page technically exists and rendered, while the rendered content tells the user the product is unavailable, the listing has been removed, or the inventory has zeroed out. The status code says success; the page tells the human "sorry."

Why retailers return 200 instead of 404. It is usually intentional. Returning a 404 would lose the historical URL's search ranking. Retailers want the page to stay indexable so the listing can come back. They also use the page as an opportunity to recommend alternatives, request a notify-me email, or upsell related products. From a retailer's point of view, returning 404 every time a product runs out of stock would burn months of SEO investment.

Common patterns in the wild. Amazon shows "Currently unavailable. We don't know when or if this item will be back in stock" with a 200. Bol.com shows "Niet meer leverbaar." Coolblue shows "Tijdelijk niet leverbaar." Best Buy uses "Sold out." Walmart often redirects to a category page (a different problem). Each pattern is rendered fully styled, on the original URL, with no status-code signal that anything is wrong.

Variants of the soft 404. Out of stock at product level. Variant-level out of stock, where the parent product is fine but the specific colour or size you linked to is gone. Region-locked, where the product is visible but shipping is restricted to a country the visitor is not in. Price withheld ("See price in cart" or "Sign in to see price"), which kills conversion intent. Account-required, where the listing only resolves for logged-in customers. All four return 200 OK and all four are silent revenue leaks for the affiliate.

Why uptime checkers miss them. A standard checker (UptimeRobot, Pingdom, the cron job most developers write first) issues a HEAD or GET request and looks at the response code. 200? Healthy. The body content is irrelevant to a status-code checker. Affiliate-link monitoring requires reading the rendered HTML and matching against unavailability patterns ("currently unavailable", "out of stock", "uitverkocht", "tijdelijk niet leverbaar") or, more reliably, asking an AI model to read the page like a human would and judge whether a buyer could actually purchase.

SEO implications. Google's own Search Central docs warn that soft 404s waste crawl budget. Googlebot keeps crawling them because they return 200, while a real 404 would be a strong signal to deprioritise the URL. The retailer's soft 404 is bad for the retailer's own SEO too, but most retailers accept the trade-off because losing the URL entirely would be worse.

The affiliate angle. Soft 404s are the single most common silent failure mode for affiliate links. The link returns 200, your uptime tool is green, your audience clicks, finds nothing to buy, and bounces. No alert is fired by the retailer, no alert is fired by your uptime tool, and the only signal in your own data is a quiet drop in conversions you might not notice for weeks. This is the link-rot pattern at its purest.

Frequently asked

What is a soft 404?

A page that returns HTTP status 200 OK but renders content telling the user it does not really exist. "Currently unavailable", "out of stock", "this listing has been removed". The status code says everything is fine; the page tells the human otherwise.

Why do retailers return 200 instead of 404 for out-of-stock pages?

Mostly to preserve the URL's search ranking and let the listing come back. A 404 burns months of SEO and drops the page out of the index; a 200 with "currently unavailable" keeps it indexed and lets the retailer recommend alternatives or capture a "notify me" email.

Why don't uptime checkers detect soft 404s?

Standard uptime tools only look at the HTTP status code. 200 is treated as healthy regardless of the page body. Detecting a soft 404 requires reading the rendered HTML and matching against unavailability patterns, or using an AI model to judge whether the page actually offers something to buy.

Do soft 404s hurt SEO?

Yes, but in subtle ways. Google's own documentation warns that soft 404s waste crawl budget because Googlebot keeps crawling pages that should signal "do not index". Real 404s tell Googlebot to deprioritise the URL; soft 404s do not.

How can I detect soft 404s on my own affiliate links?

Manually: open the link in an incognito window and check whether you can actually add the product to cart. At scale: use a monitoring tool that reads the destination page rather than only checking the HTTP status. Generic uptime checkers will mark soft 404s as healthy.

Have 10 affiliate links? Start monitoring them free.