How to Fix Crawl Errors in Google Search Console
A step-by-step guide to diagnosing and fixing crawl errors in Google Search Console — from 5xx server errors and 404s to soft 404s and blocked pages.
Crawl errors are one of the first things to check when organic traffic drops. If a search engine can't fetch a page, it can't rank it — and Google Search Console (GSC) is where those problems surface first. Here's how to read the report and fix what actually matters.
Where to Find Crawl Errors
In Google Search Console, crawl issues live in two places:
- Pages report (Indexing → Pages) — shows why URLs aren't indexed, grouped by reason.
- Crawl Stats (Settings → Crawl stats) — shows host status, response codes, and how Googlebot is spending its time.
Start with the Pages report. Each "Why pages aren't indexed" reason is a bucket of URLs you can export and triage.
The Most Common Crawl Errors (and How to Fix Them)
Server errors (5xx)
A 5xx means your server failed to respond. These are urgent — Googlebot backs off crawling a site that keeps returning errors.
- Check server logs around the timestamp Google reports.
- Look for timeouts, memory limits, or rate-limiting that blocks Googlebot.
- Confirm you aren't blocking Google's IP ranges at the firewall or CDN.
Not found (404)
A 404 is correct for a page that genuinely no longer exists. It only becomes a problem when internal links still point to the dead URL, or the URL had backlinks and traffic and should be 301-redirected to the closest live equivalent. Fix the internal links first, then redirect URLs that had value.
Soft 404s
A soft 404 returns a 200 status but looks empty or "not found" to Google. Common causes: empty category pages, out-of-stock products, and thin search-results pages. Either add real content, return a proper 404/410, or noindex the page.
Redirect errors
Redirect chains, loops, and redirects to broken URLs waste crawl budget and can stop indexing. Aim for a single hop: source → final destination, no chains.
Blocked by robots.txt
If an important page is disallowed in robots.txt, Google won't crawl it. Check the directive and remove the rule if the block is accidental.
Excluded by noindex
A noindex tag tells Google to drop the page. Make sure it isn't left over from a staging environment — accidental noindex is one of the most common causes of sudden deindexing.
A Practical Triage Order
- Fix 5xx server errors first — they affect the whole site.
- Remove accidental noindex tags and robots.txt blocks on important pages.
- Collapse redirect chains to single hops — each unnecessary hop burns crawl budget.
- Redirect valuable 404s; clean up internal links to the rest.
- Resolve soft 404s by adding content or returning the correct status code.
Validate the Fix
After fixing, use the URL Inspection tool to request indexing on key pages, then click "Validate Fix" on the relevant issue in the Pages report. Google will recrawl the affected URLs and confirm the resolution.
Find Errors Before Google Does
Search Console reports problems after Googlebot finds them — sometimes weeks later. A crawler catches them on demand. Run a CrawlX crawl and you'll get every 4xx, 5xx, redirect chain, soft-404 signal, and stray noindex tag across your site in one pass, ranked by estimated impact so you fix the costly ones first. Pair it with log-file analysis for the full picture — crawl data tells you what exists, logs tell you what Googlebot actually fetched and when. Schedule it weekly and you'll catch regressions the day they ship, not the month after.
Keep reading
Discovered, Currently Not Indexed: Why Google Won't Crawl
Google found the page but never crawled it. What 'Discovered, currently not indexed' really means, and how to get those URLs crawled and indexed.
Technical SEOCrawled, Currently Not Indexed: Technical or Quality?
Google crawled your page and skipped it. Here's the triage order we use to rule out the technical causes before blaming content quality.
Put this into practice.
Run a free crawl and get every issue on your site ranked by estimated impact — fixes opened as pull requests.