“Server error (5xx)” in Google Search Console
What the status means, whether it's a problem, and how to fix it, step by step.
Not indexed · Checked against Google's documentation on 2026-10-30
Short answerFix it
Your server answered Googlebot with a 500-level error. Google slows crawling after these errors, and URLs that keep failing eventually drop out of the index. Check whether the URL loads now, then use Crawl stats and server logs to see if it's one template or the whole server.
Google: “Your server returned a 500-level error when the page was requested.” Page indexing report help
What the status means
When Googlebot requested the page, your server, or something in front of it, answered with a 500-level code. Google ignores any content sent with a 5xx response, so it got nothing it could index.
The status shows what happened on the last crawl, and the error may be gone by now. It's still worth checking, because a server that fails for Googlebot may also be failing for visitors.
What Google does with 5xx errors
Google's documentation describes the following:
- Crawling slows down. 5xx and 429 responses make Google's crawlers temporarily reduce their rate. It goes back up gradually once the server returns 2xx again.
- Indexed pages stay for a while, then drop. Already indexed URLs are preserved at first, but those that keep returning a server error are eventually removed.
- A single error isn't a disaster. The damage comes from persistent errors. Google gives no number of days before a URL is dropped.
A short outage is usually forgiven. A section that fails for weeks is not.
Is it a problem?
| What you see | Verdict |
|---|---|
| A few URLs, and they load fine now | Probably a short outage. Validate and watch |
| The same URLs fail again and again | Fix it: a bug in that page or template |
| Many URLs at once, or a spike in Crawl stats | Fix it now: the server or a dependency is struggling |
| Junk URLs nobody needs | Stop linking to them, then return a 404 instead of a crash |
How to find the cause
- Open Indexing → Pages → Server error (5xx). Look at the dates on the chart and at URL patterns. One template failing and the whole site failing are different problems.
- Open Settings → Crawl stats. The By response breakdown shows server errors over time. Host status shows whether Google had trouble reaching the server at all.
- Test the URL below and in URL Inspection. The checker shows the response code and the redirect chain. If it comes back 200, try Test live URL in URL Inspection as well, because a firewall may treat Google differently from our checker.
- Read the server logs for the same time. Filter by
Googlebotand status5. This is where you find the actual cause.
Which code points where
| Code | What it usually means | Where to look |
|---|---|---|
| 500 | The application crashed | Application or PHP error log: a plugin, a bad deploy, a query that fails |
| 502 | The proxy got a bad answer from the app | The app process behind nginx or the CDN: is it running, did it restart? |
| 503 | Overload or maintenance | Worker limits, rate limits, a maintenance mode left on |
| 504 | The app answered too slowly | Slow queries, slow external APIs, proxy timeouts |
| 520–526 | Cloudflare couldn't get a proper answer from your server | The origin server. 521 means it's down, 522 and 524 mean timeouts |
How to fix it
WordPress
- Turn on
WP_DEBUG_LOGto see what crashes, and look at the PHP error log. Out-of-memory errors and plugin conflicts are common causes. - Increase PHP workers or memory if the logs show the limit being reached. Caching full pages takes most of the load off PHP.
- Scan for heavy traffic from bots on
xmlrpc.phpandwp-login.php.
Shopify, Wix and Squarespace
- The server isn't yours, so you can't fix its errors. Check the platform's status page. If errors persist on specific URLs, contact support with examples. Theme code can still be the cause on Shopify, so test with a default theme.
Next.js and headless sites
- A page rendered on request can throw when the CMS or an API is down, and the visitor and Googlebot get a 500. Add error handling around data fetching, and return a real 404 when the item doesn't exist.
- With incremental static regeneration, Next.js keeps serving the last good page when a revalidation fails, so cached pages protect you during a CMS outage. Pages that were never generated aren't protected.
nginx and rate limits
limit_reqreturns 503 by default when a client goes over the limit. If your rate limiting catches Googlebot, you've made your own 5xx errors. Check the limit against the crawl rate in Crawl stats.
Cloudflare
- Fix the origin first. Then check timeouts: Cloudflare's 524 appears when the origin takes too long, which is a slow page, not a Cloudflare fault.
Planned maintenance
Return 503 while the site is down. Don't serve a “we'll be back soon” page with status 200: Google may process that message as the content of your pages. Keep the outage short, because a long run of 5xx responses leads to URLs being dropped.
Also keep robots.txt available. If that file returns 5xx, Google's documentation says it stops crawling the whole site for the first 12 hours. You can test how your file is read with our robots.txt tester.
After fixing
Run Validate fix for the issue. Google says validation typically takes up to about two weeks, and it can take much longer. Crawling recovers gradually, so don't expect the old rate the next day. If Crawl stats look normal and the URLs return 200, the job is done.
Check a URL
Paste one of the URLs from the report. The checker follows redirects and tests the status code, robots.txt, noindex and canonical.
Related statuses
- Fix itBlocked due to other 4xx issueAnother 4xx client error stopped the page from loading.
- DependsDiscovered - currently not indexedGoogle knows the URL but hasn't crawled it yet.
- DependsBlocked by robots.txtA robots.txt rule stops Google from crawling the page.
FAQ
Google's documentation says already indexed URLs are preserved at first and removed if they keep returning a server error. It gives no number of days, so fix errors quickly, but a brief outage isn't a reason to panic.
The error may have been temporary, or it may only affect Googlebot: a firewall, a rate limit, or a load spike during crawling. Use Test live URL in URL Inspection and read your server logs for that time.
503. A maintenance page with status 200 can be processed as your page's content. Keep the outage short, and keep robots.txt available.
Want us to look at your Search Console?
We go through the Pages report, crawl the site and tell you which statuses cost you traffic and which are harmless, with the fixes in priority order.