404s, Soft 404s, and the Founder's 30-Minute Cleanup
Fix 404s and soft 404s in 30 minutes without a dev. Step-by-step triage playbook for founders to clean up crawl errors and recover organic visibility.
Why Your 404s Are Tanking Your SEO (And You Don't Know It)
Your site ships. Traffic trickles. You check Google Search Console and see "Crawl errors." Maybe 50. Maybe 500. Your stomach sinks. You think: I need a dev. I need an agency. I need a $5K audit.
You don't.
Most founders don't realize that 404 errors—and their sneakier cousin, soft 404s—are one of the fastest SEO wins you can get. Not because they're hard to fix, but because they're easy to misunderstand. A broken link wastes Google's crawl budget. A soft 404 confuses Google into thinking your page doesn't exist when it does. Both tank your organic visibility. Both are fixable in under 30 minutes without touching code.
This guide walks you through the exact triage process. You'll identify what's broken, why it matters, and how to fix it—no dev required.
Prerequisites: What You Need Before You Start
Before you dive in, grab these three things. You don't need to be technical. You just need access.
Google Search Console access. If you don't have it set up, go here and verify your domain. This is where Google tells you what's broken. It takes 10 minutes.
Access to your domain's DNS or hosting control panel. You might need to set up redirects or check status codes. Your hosting provider (Vercel, Netlify, AWS, GoDaddy, whatever) has a control panel. You need to know how to get there.
A spreadsheet. Google Sheets, Excel, Notion—doesn't matter. You're going to log every broken link you find and track your fixes. This prevents you from fixing the same thing twice.
That's it. No tools. No budget. If you want to upgrade to a crawler like Screaming Frog or SEMrush later, fine. But for a 30-minute cleanup, this is overkill.
The Brutal Truth: Hard 404s vs. Soft 404s
Before you fix anything, you need to understand what you're looking at.
A hard 404 is clean. Someone requests a page. Your server says "404 Not Found" and returns the correct HTTP status code. Google sees this, stops crawling that URL, and moves on. It's honest. It's efficient. It doesn't hurt your SEO much because Google knows the page is gone.
A soft 404 is the problem child. Someone (or Google) requests a page. Your server says "200 OK" (like the page exists) but returns a generic error message, an empty page, or a redirect to your homepage. Google gets confused. It thinks the page exists. It tries to index it. It wastes crawl budget. It ranks poorly. And because the server returned 200, Google doesn't know to stop trying.
Soft 404 errors are often caused by CMS misconfigurations, missing content, or poorly implemented redirects. The fix depends on which one you have.
The key difference: status code. A hard 404 returns HTTP 404. A soft 404 returns HTTP 200 (or sometimes 301 to a page that itself returns 200). You need to know which one you're dealing with before you fix it.
Step 1: Find Your Broken Links in Google Search Console (5 Minutes)
Open Google Search Console. Go to Indexing > Pages (or Coverage in older versions). Look for the red section labeled "Errors" or "Not indexed."
Click it. You'll see a list of URLs that Google tried to crawl and failed. These are your hard 404s. Screenshot or export this list. Paste it into your spreadsheet.
Next, go to Experience > Core Web Vitals or Crawl Stats. Look for patterns. If you see a spike in crawl errors on a specific date, something broke on that date. Check your deployment logs or CMS changes from that day.
Now the harder part: finding soft 404s. Google doesn't always flag these clearly. You're looking for pages that return 200 but have no content, or pages that redirect to your homepage with a 200 status code.
In Search Console, go to URL Inspection. Pick a few URLs from your sitemap. Check the "Coverage" tab. If it says "Indexed, though blocked by robots.txt" or "Excluded" with a reason, dig deeper. If the page is indexed but has no content, it might be a soft 404.
Google Search Console is your primary detection tool for both hard and soft 404s. Trust it. It's free and accurate.
Step 2: Check HTTP Status Codes (5 Minutes)
Now you need to know what your server is actually returning. This is where most founders get stuck. But it's simple.
Open your browser. Go to a URL that Google flagged as broken. Open the Network tab in Developer Tools (F12 on Windows, Cmd+Option+I on Mac). Reload the page. Look at the first request. Find the Status column. It shows you the HTTP code.
- 404: Hard 404. Clean. Your server is honest.
- 200: Soft 404. Your server says "OK" but served an error page or empty content.
- 301 or 302: Redirect. Follow it. Check what the target page returns.
- 410: Gone. Similar to 404, but tells Google "this will never come back." Good for old content.
Log this in your spreadsheet. Column 1: URL. Column 2: Status code. Column 3: What you see on the page.
If you have 50+ broken URLs, this is tedious. But it's still faster than paying an agency. And you learn your site.
Step 3: Categorize Your Broken Links (5 Minutes)
Now sort your spreadsheet into buckets. This determines your fix strategy.
Bucket 1: Pages That Should Exist But Don't
These are old blog posts, product pages, or documentation that got deleted or moved. You have two options:
- Redirect them. If the content moved to a new URL, set up a 301 redirect from the old URL to the new one. This passes SEO value forward.
- Delete them. If the content is truly gone and irrelevant, return a hard 404 or 410.
Bucket 2: Pages That Exist But Return Soft 404s
These are the sneaky ones. The page is real. But your server is returning 200 when it should return 404. This usually happens because:
- Your CMS is misconfigured and serves a generic error template with a 200 status.
- Your homepage redirect is broken and returns 200 instead of 301.
- Your authentication layer is broken and serves a login page with a 200 status.
CMS misconfigurations are the leading cause of soft 404s, especially in WordPress, Contentful, and custom Node.js setups. The fix is to configure your server to return 404 or 410 instead of 200.
Bucket 3: Redirects That Chain or Loop
Sometimes a URL redirects to another URL, which redirects to another URL, which redirects back to the first. This wastes crawl budget and confuses Google. You need to break the chain and redirect directly to the final destination.
Bucket 4: Legitimate 404s (Keep These)
If a URL is truly broken and should be, a hard 404 is fine. Don't fix it. Google handles these well. Just make sure your 404 page is user-friendly and links back to your homepage.
Step 4: Set Up Redirects (10 Minutes)
Now the actual fixing starts. Redirects are your primary tool.
If you're on Vercel, Netlify, or a modern hosting platform:
You have a vercel.json, netlify.toml, or _redirects file. Open it. Add a line for each redirect:
from: /old-blog-post
to: /new-blog-post
status: 301
Deploy. Done. No dev needed. You just edited a config file.
If you're on WordPress:
Install the Redirection plugin. Go to Tools > Redirection. Add a new redirect. Source URL: /old-post. Target: /new-post. Type: 301. Save. It's a checkbox UI. Takes 30 seconds per redirect.
If you're on a custom Node.js or Python app:
You might need a dev for this. But you can also use a reverse proxy like Cloudflare. Go to Cloudflare. Add a Page Rule. URL: yourdomain.com/old-url. Action: Forwarding URL. Code 301. Target: yourdomain.com/new-url. Deploy. No code change.
If you're on a static site (Hugo, Jekyll, Next.js static export):
Redirects go in your build config. Next.js uses next.config.js. Hugo uses _redirects in your static folder. Check your framework's docs. It's usually a YAML or JSON file. Add your redirects. Rebuild. Deploy.
Proper 301 redirects are the standard fix for moved content and pass SEO value forward. They're your first choice for any page that moved, not deleted.
Step 5: Fix Soft 404s at the Server Level (5 Minutes)
This is where most founders get nervous. But it's straightforward.
A soft 404 means your server is returning 200 when it should return 404. You need to change that.
For WordPress:
Go to Settings > Permalink Structure. Make sure you're not using a catch-all redirect that serves your homepage with a 200 status. If you are, disable it. Then check your 404 template (404.php). Make sure it returns a hard 404 status code. Most WordPress installs do this by default, but custom themes sometimes break it.
For Next.js or Vercel:
Create a 404.js or 404.tsx file in your pages directory. This automatically returns 404 for missing pages. If you're using dynamic routing, make sure your getStaticPaths or getServerSideProps returns a 404 for pages that don't exist.
For Node.js/Express:
Add a catch-all route at the end of your middleware:
app.use((req, res) => {
res.status(404).send('Page not found');
});
This ensures any request that doesn't match a route returns 404, not 200.
For static HTML sites:
Your hosting provider should have a setting for a custom 404 page. Go to your hosting control panel. Find "Error Pages" or "404 Handling." Point it to a 404.html file. Make sure the server returns 404 status, not 200.
Configuring HTTP status codes correctly at the server level is the most scalable fix for soft 404s. Once you fix it, all future broken URLs will return the correct status automatically.
Step 6: Update Your Sitemap (2 Minutes)
Your sitemap should only include pages that actually exist and return 200. If you've deleted pages or fixed soft 404s, update your sitemap.
For WordPress:
Go to Yoast SEO > Sitemaps (or your SEO plugin's settings). Regenerate the sitemap. It automatically excludes 404s and soft 404s.
For custom sites:
Edit your sitemap.xml. Remove any URLs that now return 404 or 410. If you're generating it programmatically, update your script to exclude broken URLs.
Submit the updated sitemap to Google Search Console. Go to Sitemaps. Click Add/test sitemap. Paste your sitemap URL. Submit.
Google will recrawl your site faster with an updated sitemap. This accelerates the recovery.
Step 7: Monitor and Verify (3 Minutes)
You're done fixing. Now verify it worked.
Go back to Google Search Console. Go to Indexing > Pages. The error count should drop. It might take 24-48 hours for Google to recrawl everything, but you should see movement within a day.
For each redirect you created, test it manually. Go to the old URL in your browser. It should redirect to the new URL. Check the Network tab to confirm it's a 301, not a 302 or 200.
For each soft 404 you fixed, test it. Go to the page. Open Developer Tools. Check the status code. It should be 404 or 410 now, not 200.
Log your results in your spreadsheet. Column 4: Status after fix. This creates a record. If something breaks in the future, you know what you changed.
Common Mistakes (And How to Avoid Them)
Mistake 1: Chaining redirects.
Don't redirect A → B → C. Redirect A → C directly. Redirect chains waste crawl budget and confuse Google. If you have a chain, break it.
Mistake 2: Using 302 instead of 301.
A 302 is a temporary redirect. Google treats it differently. It doesn't pass full SEO value. Always use 301 for permanent moves.
Mistake 3: Redirecting to your homepage.
If a page moves, redirect it to the new page. Don't redirect everything to /. Google knows it's a soft 404. Users hate it. Conversions drop.
Mistake 4: Ignoring soft 404s.
Soft 404s are invisible to most founders because Google Search Console doesn't always flag them clearly. But they waste crawl budget. Use Google Search Console and crawlers like Screaming Frog to detect them. Don't ignore them.
Mistake 5: Not testing redirects.
Deploy a redirect. Test it. Make sure it works. Some hosting providers cache redirects. Sometimes they fail silently. Always verify.
Why This Matters for Your Organic Growth
You've shipped. Your site is live. But organic traffic is stuck. You're thinking: I need more content. I need better keywords. I need backlinks.
Maybe. But first, fix the foundation. 404s and soft 404s waste Google's crawl budget on broken pages instead of your good content. If you have 100 broken URLs, Google is spending crawl budget on those instead of indexing your 10 best pages.
Fix the errors. Google crawls deeper. Your good pages get indexed faster. Your rankings improve. This is a 30-minute fix that can move the needle on organic visibility.
And once you've cleaned up crawl errors, you're ready for the next layer: keyword strategy, content creation, and authority building. But you can't optimize what Google can't crawl. Start here.
The Founder's Triage Checklist
Use this checklist to stay on track. Print it. Check it off as you go.
- Set up Google Search Console if you haven't already.
- Export your crawl errors from Google Search Console.
- Check HTTP status codes for 10-20 broken URLs.
- Categorize your broken links into buckets (should exist, should be deleted, chains, etc.).
- Set up 301 redirects for pages that moved.
- Fix soft 404s at the server level (WordPress plugin, Next.js 404.js, etc.).
- Update your sitemap and resubmit to Google Search Console.
- Test 5-10 redirects manually to confirm they work.
- Wait 24-48 hours and check Google Search Console again.
- Log your results in a spreadsheet for future reference.
Next Steps: Beyond the 30-Minute Cleanup
You've fixed your crawl errors. Google is happy. Your site is cleaner. What's next?
Now you need to focus on what actually drives organic growth: keyword strategy, content creation, and authority. A solo founder recently hit 50K organic visitors per month by combining AI-generated blog posts with a solid keyword roadmap. The foundation was clean crawl errors. The engine was keyword-targeted content.
If you're a technical founder who shipped but lacks organic visibility, consider running a full SEO audit. SEOABLE delivers a domain audit, brand positioning, keyword roadmap, and 100 AI-generated blog posts in under 60 seconds for a one-time $99 fee. It's built for founders like you—no agency fees, no long contracts, no fluff.
The audit will show you more than just crawl errors. It'll show you:
- Your current keyword positions and gaps.
- Competitors who are outranking you and why.
- Your brand positioning in search.
- A 12-month content roadmap with high-intent keywords.
- 100 AI-generated blog posts ready to publish.
You can publish those posts immediately and start recovering organic visibility. Or use them as a foundation and edit them. Either way, you've moved from "broken site" to "content machine" in under 60 seconds.
Visit the SEOABLE insights page to learn more about what founders are shipping this week. You'll see case studies, playbooks, and data from 200+ startup domains. Check out the programmatic SEO playbook if you want to ship 1,000 SEO pages in 30 days. Or read about how AI Engine Optimization is rewriting the rules for getting cited by Claude, ChatGPT, and Gemini.
But start with the crawl error cleanup. It's the fastest win. And it sets you up for everything that comes next.
Key Takeaways
Hard 404s are honest. Your server returns 404. Google knows the page is gone. It moves on. This is fine.
Soft 404s are silent killers. Your server returns 200 but serves an error page or empty content. Google gets confused. It wastes crawl budget. It ranks poorly. This is bad.
You don't need a dev to fix either one. Use Google Search Console to find errors. Check HTTP status codes in your browser. Set up redirects in your hosting control panel or CMS. Update your sitemap. Verify. Done.
This takes 30 minutes. Not 3 days. Not $5K. 30 minutes and a spreadsheet.
The payoff is real. Google crawls deeper. Your good pages get indexed faster. Your rankings improve. Your organic traffic grows. And you've done it without hiring anyone.
Ship the fix. Then ship the content. That's the founder's path to organic growth.
Frequently Asked Questions
Q: How many 404s is "too many"?
A: One is too many if it's a page that should exist. But realistically, sites have some dead links. Google tolerates a few percent. If you have 5% of your pages returning 404, that's fine. If you have 20%, it's a problem. Check Google Search Console. If you see a red error section, fix it.
Q: Do I need to fix all 404s at once?
A: No. Prioritize. Fix pages that had traffic or backlinks first. Use Google Search Console to see which broken URLs Google tried to crawl most often. Fix those first. The rest can wait.
Q: What's the difference between 301 and 302 redirects?
A: 301 is permanent. Google passes SEO value forward. 302 is temporary. Google doesn't pass full value. Always use 301 for moved pages.
Q: Can I just delete my 404 page and let Google figure it out?
A: No. You need a 404 page for users. When someone clicks a broken link or types a wrong URL, they should see a helpful 404 page that explains the error and links back to your homepage. This improves UX and prevents bounces.
Q: How long does it take Google to recrawl my site after I fix errors?
A: Usually 24-48 hours. Sometimes a few days if your site is new or low authority. You can speed it up by resubmitting your sitemap to Google Search Console.
Q: What if I have 1,000 broken URLs?
A: You have a bigger problem. Don't fix them one by one. Instead, fix the root cause at the server level. If your CMS is misconfigured, fix the configuration. If your site architecture changed, set up a global redirect rule. If you're migrating platforms, use a migration tool that handles redirects automatically. Then verify the fix worked on a sample of URLs.
Ready to clean up your crawl errors? Start with the 30-minute checklist above. Then, once your site is clean, focus on the real growth engine: keyword strategy and content. SEOABLE can help you map your keywords and generate 100 blog posts in under 60 seconds. No agency. No long contracts. Just results.
Get the next
dispatch on Monday.
One email per week with the most important SEO and AEO moves for founders. Unsubscribe in one click.