Soft 404 Errors: How to Diagnose, Fix, and Prevent Them
Learn why Google flags soft 404 errors, how they drain crawl budget, and the exact server and content fixes to restore lost indexing in Google Search Console.
On this page
- Key takeaways
- What is a soft 404 error?
- The difference between hard 404s and soft 404s
- Why Google flags soft 404s on 200 OK responses
- Empty category and filtered search pages
- Out-of-stock and discontinued product pages
- Client-side rendering delays and blank shells
- Thin content and aggressive boilerplate
- Misconfigured custom 404 error templates
- How soft 404 errors harm organic search performance
- Wasted crawl budget on dead URLs
- Deindexing of legitimate, revenue-generating pages
- Dilution of internal link equity
- How to audit and identify soft 404s in Google Search Console
- Step 1: Inspect the Page Indexing report
- Step 2: Use the URL Inspection API and live test
- Step 3: Run server log analysis for repeated crawls
- Technical fixes for soft 404 errors by server environment
- Proper 404 and 410 headers
- Handling empty states in single-page applications
- Canonical and redirect strategies for deprecated URLs
- Frequently asked questions
- Does a soft 404 hurt my entire domain’s ranking?
- What is the difference between a 404 and a 410 status code?
- Should out-of-stock product pages return a 404?
- How long does Google take to clear soft 404 errors after fixing?
- Can internal search results cause soft 404 errors?
- The practical verdict for SEO in 2026
When a search crawler visits a deleted, empty, or expired page, it expects an HTTP 404 Not Found or 410 Gone status code. When your server serves an HTTP 200 OK success header for a missing product, blank search query, or generic error template, Google classifies that URL as a soft 404 error. The misconfiguration wastes crawl budget, drops legitimate pages from search results, and obscures genuine site architecture defects in Google Search Console.
Fixing soft 404 errors requires understanding how search engine heuristics evaluate page content against server response headers. A search bot does not evaluate status codes in isolation; it cross-references the server header with on-page text, DOM structure, and semantic weight. Resolving these defects restores crawl efficiency and ensures Google indexes your highest-value pages without interference.
Key takeaways
- A soft 404 is an algorithmic classification, not an HTTP status code. Your server sends an HTTP 200 OK header, but Google’s automated systems detect that the page is dead, empty, or displaying an error message.
- Search engines treat soft 404s like real 404s for indexation. Once classified as a soft 404, Google drops the URL from its organic search index, preventing it from appearing in standard search results and AI citations.
- Crawl budget is drained on low-value pages. Because your server indicates the page is alive with a 200 OK header, crawlers repeatedly revisit the dead URL, diverting resources from new and updated content.
- Client-side rendering is a frequent trigger. Delayed JavaScript hydration or blank DOM shells can cause search engines to parse empty templates, mistakenly flagging fully functional pages as soft 404s.
- The fix depends on page intent. Genuine dead pages must return an HTTP 404 or 410 status code; thin or out-of-stock pages require substantive content, related inventory, or clean 301 redirects.
What is a soft 404 error?
A soft 404 error is an indexation status where a web server returns an HTTP 200 OK success code for a page that search engines identify as missing, empty, broken, or thin.
Short answer: It is a 200 OK response for a dead or empty page.
From a web protocol standpoint, status code 200 signals to browsers and search crawlers that the requested document exists and loaded successfully. However, when Googlebot inspects the rendered content and finds phrases like “Sorry, page not found,” an empty product listing, or a near-blank template, its machine-learning classifiers override the server header. Google flags the page as a “Soft 404” in Search Console and excludes it from the search index.
The difference between hard 404s and soft 404s
The fundamental difference lies in server communication:
- Hard 404 (or 410): The web server explicitly tells the crawler that the resource does not exist by returning an HTTP 404 Not Found or HTTP 410 Gone header. Search engines log the missing status, reduce crawl frequency for that URL, and quietly drop it from the index.
- Soft 404: The web server falsely claims the resource exists (HTTP 200), forcing the search engine’s rendering and natural language processing pipelines to guess whether the URL has actual value.
- 301 Redirect: The server routes the visitor and crawler to a relevant, existing resource, passing consolidation signals to the destination URL.
When a server serves a soft 404, it forces search engines to spend compute budget parsing content that should have been rejected immediately at the HTTP header level. Understanding how server headers impact site discovery is covered in our HTTP status codes SEO guide.
Why Google flags soft 404s on 200 OK responses
Google does not trigger soft 404 classifications at random. The search engine relies on automated content classifiers trained to recognize common failure states across millions of websites.
Empty category and filtered search pages
E-commerce websites and publisher portals frequently suffer from soft 404s on faceted navigation URLs and taxonomy archives. When all items in a subcategory sell out or are moved, the category URL remains live and returns HTTP 200 OK. However, the main body displays “0 products found” or “No items match your criteria.”
To Googlebot, a category page with no products is functionally identical to a deleted page. If the page lacks unique textual substance, reviews, buying guides, or related category links, Google classifies the URL as a soft 404 and drops it from the index.
Out-of-stock and discontinued product pages
When an e-commerce platform automatically unpublishes out-of-stock items, many CMS configurations keep the URL alive while stripping the product description, price, and purchase buttons. The resulting page renders a header, footer, and a single sentence stating “This item is no longer available.”
Google’s rendering engine evaluates the ratio of boilerplate layout to unique content. When unique content drops below an acceptable threshold, the page triggers an algorithmic soft 404. For high-volume catalogs, this behavior can cause thousands of product URLs to bounce between indexed and deindexed states.
Client-side rendering delays and blank shells
Modern single-page applications and dynamic web frameworks often rely on asynchronous JavaScript API calls to populate page content. If Googlebot renders the initial HTML snapshot before the API responds, or if a critical script errors during crawler execution, the crawler sees an empty <div> container.
Because the server delivered an HTTP 200 OK response with an empty layout shell, Googlebot interprets the blank screen as an empty error state. This false soft 404 is one of the most frustrating indexation defects affecting SEO rankings, because human visitors see a complete page while search engines see nothing.
Thin content and aggressive boilerplate
Pages created with minimal unique text — such as automated tag pages, thin user profile pages, or duplicate location pages — frequently trigger soft 404 detection. When a page contains 1,200 words of navigation menus, footer links, and sidebar widgets, but only 25 words of unique body text, search classifiers determine that the page lacks independent search value.
Google treats pages that provide no unique information gain as non-viable search results. Rather than indexing low-quality copies, the crawler marks them as soft 404s.
Misconfigured custom 404 error templates
Many websites create helpful custom error pages featuring site search bars, popular links, and company branding. However, development teams sometimes forget to set the server response header on the custom template.
If your web server routes missing URLs to a custom 404.html template while sending an HTTP 200 OK header, search engines believe your error page is a legitimate piece of content. Google flags the URL as a soft 404, and every broken link on your site begins accumulating in your Search Console indexation logs.
How soft 404 errors harm organic search performance
Soft 404 errors represent a silent leak in your site’s organic search foundation. Unlike server outages that trigger immediate alerts, soft 404s degrade performance gradually across several vectors.
Wasted crawl budget on dead URLs
Search engines allocate a finite crawl budget to every domain based on server speed, domain authority, and site size. When Googlebot encounters an HTTP 404 or 410 header, it schedules that URL for rapid deindexing and reduces future crawl attempts.
When the server returns an HTTP 200 OK response for a dead URL, Googlebot treats the page as active. It continues to schedule regular crawl requests to check for content updates. On large websites with tens of thousands of expired products or faceted filters, soft 404s can consume 30% to 50% of daily Googlebot requests, depriving newly published articles and updated category pages of crawl bandwidth.
Deindexing of legitimate, revenue-generating pages
The most damaging consequence of soft 404 detection is false positives. When an algorithmic classifier misinterprets a legitimate page as a soft 404 due to slow API rendering, aggressive content trimming, or temporary database timeouts, Google immediately pulls that URL from search results.
A category page generating organic revenue can disappear from Google overnight without a single code deployment or deliberate noindex tag. Unless your team actively monitors Search Console, the resulting traffic drop can remain unexplained for weeks.
Dilution of internal link equity
Internal links distribute ranking signals across your site architecture. When your navigation, related product widgets, or blog articles link to URLs that Google classifies as soft 404s, link equity flows into a dead end.
Search engines do not pass ranking signals through pages they have classified as non-viable error states. Cleaning these broken links prevents PageRank dilution and strengthens your remaining indexable pages.
How to audit and identify soft 404s in Google Search Console
Diagnosing soft 404 issues requires cross-referencing Search Console reports with live page testing and server log analysis.
Step 1: Inspect the Page Indexing report
Log into Google Search Console and navigate to Indexing > Pages. Under the section labeled Why pages aren’t indexed, locate the row titled Soft 404.
Review the historical chart:
- A sudden spike: Indicates a recent site-wide deployment issue, such as a broken template, a faulty JavaScript script, or a misconfigured custom 404 page returning 200 status codes.
- A steady, gradual rise: Indicates procedural inventory churn, such as expired e-commerce products or empty category tags accumulating over time.
Click the Soft 404 row to view the list of affected URLs. Export the table for detailed analysis.
Step 2: Use the URL Inspection API and live test
Select sample URLs from the affected list and paste them into the Search Console URL Inspection tool at the top of the interface.
Examine the report details:
- Coverage status: Confirm whether Google has marked the URL as “Soft 404” in the last crawl.
- User-declared canonical vs Google-selected canonical: Check whether Google selected a different URL or marked it as none.
- Live Test: Click Test Live URL to trigger a real-time fetch. Inspect the rendered screenshot and HTML source. If the live test renders an empty white box or missing content, your issue is client-side rendering or an API bottleneck.
For systematic technical review of your page rendering and structure, consult our technical SEO audit guide. Once you have a list of suspect URLs, run the SEO Analyzer across the batch — it flags missing canonical tags, empty body content, and heading-hierarchy problems that are reliable correlates of soft 404 classification.
Step 3: Run server log analysis for repeated crawls
Filter your web server access logs for user-agent strings containing Googlebot that returned HTTP status code 200 on URLs flagged as soft 404 in Search Console.
Measure the crawl frequency. If Googlebot requests these empty URLs multiple times per week, the server’s 200 status code is actively draining your crawl resources. For a complete step-by-step diagnostic workflow, review our guide to fixing crawled currently not indexed pages.
Technical fixes for soft 404 errors by server environment
Once you have identified why pages are flagged, apply the appropriate architectural fix based on whether the page should exist or be removed.
Proper 404 and 410 headers
If the page is permanently gone and has no direct replacement, your server must deliver an explicit HTTP 404 or 410 status code rather than serving a page with a 200 status.
# Correct: return 404 status code directly
HTTP/1.1 404 Not Found
# Custom error page must retain the 404 status
# (do not serve a 200 OK from a /404 URL)
In an Apache configuration (.htaccess), specify the error document without an external redirect:
# Correct: Apache serves custom error page with HTTP 404 status
ErrorDocument 404 /errordocs/notfound.html
# For permanently removed content with no replacement, use 410 Gone
RedirectGone /discontinued-product-line/
Never use an external redirect like ErrorDocument 404 https://example.com/404/ in Apache. External redirects cause the server to issue a 302 redirect to a new URL that returns 200 OK, creating an instant soft 404 chain.
Handling empty states in single-page applications
For single-page applications and client-rendered apps, preventing soft 404s requires server-side coordination:
- Return HTTP 404 from the edge: Use edge middleware or server-side rendering (SSR) to validate data before serving the response. If the requested product ID or blog slug does not exist in the database, the server must emit a 404 status code in the initial HTTP response header.
- Inject meta robots noindex dynamically: If your platform cannot easily emit non-200 status codes from the server layer, inject a
<meta name="robots" content="noindex, follow">tag into the document<head>before rendering empty states. While an HTTP 404 is technically superior, a noindex tag prevents the page from lingering as a soft 404 in Search Console. - Ensure critical content renders in initial HTML: Do not hide the core article or product details behind client-side fetches. Deliver primary headings, descriptions, and metadata directly in the server response so crawlers do not see a blank canvas.
Canonical and redirect strategies for deprecated URLs
When dealing with discontinued products or restructured categories, follow a strict decision tree:
- Is there an equivalent replacement? If a product is replaced by a newer version (e.g., Model 2025 replaced by Model 2026), set an HTTP 301 permanent redirect from the old URL to the new URL.
- Is the category temporarily out of stock? Keep the page live with an HTTP 200 OK header, but add helpful content: related category links, popular alternatives, and an email notification signup. Maintain substantive copy on the page so Google recognizes it as a legitimate resource.
- Has the content been completely retired? Return an HTTP 410 Gone or HTTP 404 Not Found header. Remove the URL from all XML sitemaps and internal navigation menus.
To confirm that your sitemaps are free of dead or redirected URLs, validate your files with our Sitemap Validator.
Frequently asked questions
Does a soft 404 hurt my entire domain’s ranking?
Short answer: Not directly, but it hurts overall site quality. A few soft 404 errors will not trigger a site-wide algorithmic penalty. However, having thousands of soft 404s signals poor site hygiene, wastes crawl budget, and can depress domain-level crawl prioritization. And if legitimate high-converting pages are mistakenly caught in the soft 404 filter, your site loses organic traffic and search visibility.
What is the difference between a 404 and a 410 status code?
Short answer: 404 means not found; 410 means permanently gone. Both status codes remove URLs from search indexes. However, an HTTP 410 Gone informs search crawlers that the removal is intentional and permanent, prompting Googlebot to deindex the URL faster and crawl it less frequently than an HTTP 404 Not Found, which may be treated as a temporary glitch.
Should out-of-stock product pages return a 404?
Short answer: Only if the product is never returning. If an item is temporarily out of stock, keep the URL returning HTTP 200 OK, but ensure the page displays related products, specifications, and customer reviews to avoid triggering soft 404 heuristics. If the product is permanently discontinued with no modern equivalent, return an HTTP 410 or 404 status code.
How long does Google take to clear soft 404 errors after fixing?
Short answer: Typically between a few days and several weeks. Once you update your server headers or add substantive content, request indexing on sample URLs via the Search Console URL Inspection tool. For site-wide fixes, click “Validate Fix” in the Page Indexing report. Googlebot will recrawl the URLs according to its normal schedule and update the report as it confirms the new status codes.
Can internal search results cause soft 404 errors?
Short answer: Yes, especially zero-result search queries. Internal site search result pages that return “No results found” with an HTTP 200 OK header are classic triggers for soft 404 errors. Best practice is to block internal search URLs entirely via robots.txt (e.g., Disallow: /search/) or add a <meta name="robots" content="noindex"> directive to prevent Google from crawling internal queries.
The practical verdict for SEO in 2026
Soft 404 errors represent a breakdown in communication between your web server and search engine crawlers. When your server claims a dead page is alive, you waste crawl resources, obscure genuine technical errors, and risk losing rankings on valuable content.
Treat HTTP status codes as first-class architectural signals. Ensure deleted pages return genuine 404 or 410 headers, deliver server-rendered content for single-page applications, and keep category pages populated with relevant inventory.
Before pushing major template updates or inventory migrations, run your URLs through the SEO Analyzer to audit HTTP response codes, heading hierarchy, and on-page content weight. Clean technical signals ensure search engines index your content accurately, protecting both traditional organic rankings and generative AI visibility.
Run the 45-Point SEO Analyzer
Run 45-Point SEO Analyzer on your site — instant score. No signup, no server calls.
Stay updated on SEO changes
We send out a quarterly digest of search volatility and algorithm updates. No spam, ever.
Frequently asked questions
The questions readers ask before they put the playbook to work.
