What the error means
A soft 404 is a URL that appears to Google to be an error or an empty page, although the server returns a successful response such as HTTP 200. Search Console may also use this label when a page has very little useful content. The status is Google’s assessment of the page, not an HTTP status code.
Why Google rejects it
Common causes include a custom “page not found” template returning 200, a product page whose product data failed to load, an empty category, or a page that only works after client-side JavaScript runs. A page can look normal to an administrator while visitors and Google receive a nearly empty response.
How to fix it
- Inspect the URL with Search Console’s live test and open the page as a logged-out visitor. Check whether the main content appears in the rendered page and whether the page is actually useful.
- If the page is genuinely missing, return 404 or 410. Do not leave a not-found message behind a 200 response.
- If the page should exist, restore its content and make the important text or product details available when Google renders the page. Check theme, app, API, and database errors.
- For a thin but valid page, add the information visitors came for. Do not add filler merely to change Google’s classification.
- If the content moved, redirect to the closest relevant replacement. Then test the live URL and request indexing for important fixed pages.
- For the underlying diagnosis and examples, see the soft 404 guide.
Common causes
The not-found template returns HTTP 200
A theme can display “page not found” while its server response still says 200 OK. Google sees both the response and the page content, so a successful status cannot turn a missing page into a valid result. Inspect the exact URL's response headers as well as the visible error design.
A product page renders without its product data
The URL may be valid but an app, API, or catalog lookup fails, leaving an empty title, no description, or a generic unavailable message. An administrator can miss this because their session or cached product data makes the page appear normal. Compare the public page with its source and test it without cookies.
A thin category has no useful inventory or content
An empty collection or category can return 200 but offer nothing a visitor came to browse. If it is a temporary stock condition, the page may need useful alternatives or a clear explanation; if it has no continuing purpose, returning a gone response may be more accurate.
A redirect sends many missing URLs to a generic page
Routing rules sometimes send deleted pages to the home page or a broad category instead of returning a not-found response. The destination loads successfully but does not answer the original request, which can make the old URL look like a soft 404 to Google.
Important content appears only after a failing script
A page shell may load with 200 while the JavaScript request for its main product or article content fails. If the crawler's rendered view remains empty or error-like, Google can classify the URL as a soft 404. Check browser console and network requests, plus Search Console's rendered page.
Fix it on your platform
On Shopify
- Open the exact product, collection, or page URL in a private window and compare it with the theme preview. Confirm the primary content appears without an admin session or app-dependent personalization.
- For a retired product, decide whether a relevant replacement exists. Use a direct redirect only to that equivalent item; otherwise let the removed URL return a real not-found response rather than redirecting every removed product to the home page.
- Review app blocks and theme sections that fetch product details asynchronously. If the product template can render an empty shell when data is absent, add a meaningful fallback or correct the app/data failure.
- Check that an empty collection is not included in prominent navigation or the sitemap unless it has a useful purpose for customers.
On WooCommerce
- Test the product or category as a logged-out visitor and inspect the HTTP status as well as the visible content. A custom 404 template must not return 200 for missing content.
- Check product publication, catalog visibility, stock state, and any plugin that changes the product page for guests. WooCommerce distinguishes public products from draft, private, or password-protected products.
- Review redirect, cache, search, and page-builder plugins if the page returns a generic home or category page instead of the intended item or a real 404.
- If a plugin loads the main product data with JavaScript, verify the live rendered page in Search Console and fix failed API requests or server-side output.
On other platforms
- Wix: confirm the page is published and its public version contains the main text or product, not an editor-only block or an empty dynamic dataset.
- Squarespace or BigCommerce: test retired products, empty categories, and custom not-found templates for both the content shown and the HTTP response behavior.
- For custom sites, make missing records return an accurate 404/410; make valid product routes return useful content rather than a generic successful shell.
- Across platforms, inspect what Google renders and check that a redirect destination is genuinely relevant to the old URL.
How to confirm it is fixed
- Open the URL as a logged-out visitor and inspect its HTTP response, visible text, and main content; a branded error page can still return 200.
- Use Search Console URL Inspection's live test and rendered page view to see whether Google receives the content you intended.
- Run Shipwork's soft 404 check as a public-page sample; it can flag successful responses whose content resembles a missing page, but Google makes its own classification.
- If the content is valid now, test the live URL and request indexing for an important corrected page. If it is gone, confirm the correct 404/410 or relevant redirect and remove stale internal links.
A worked example
Hypothetical case: a cycling shop retires an out-of-production helmet and keeps its URL so older product links do not break. The template has no product record, but it still returns 200 and shows the same blank product layout with a small “unavailable” label. Search Console classifies the URL as a soft 404 because the page no longer provides the product information it promises. The owner checks stock and confirms the item will not return, changes the route to a real 404, removes the URL from the sitemap, and links the old collection card to a genuinely comparable helmet instead. A live inspection then sees the missing-page response, not an empty successful page.
Questions
What is the difference between a soft 404 and a regular 404?
Should I return 404 or 410 for a deleted page?
Can a soft 404 still return HTTP 200?
Can a page be a soft 404 if it has useful text?
Does a 200 response mean my page is not a 404?
Shipwork checks sampled public pages for successful responses whose content resembles a missing page. Use URL Inspection to see Google’s rendered view and final classification. Free, no account, no signup. Paste your store address.
Check my store for Soft 404Go deeper: Soft 404s and missing pages
Other errors like this