Persistent 5xx responses prevent Google from using the returned content, cause crawling to slow, and may eventually remove indexed URLs. Identify the failing layer, restore stable success responses, and monitor both user availability and Googlebot fetches.
- Separate one transient failure from a pattern by correlating Search Console, server logs, and incident timing.
- Locate whether the application, origin, proxy, CDN, DNS, TLS, or capacity layer owns the failure.
- Treat 429 as an overload signal rather than as an ordinary client error.
01
Preconditions

Start with an incident boundary, not a vague report count. Record the affected URL examples, first and last observed failure, response codes, geography or edge when known, deployment events, and whether normal visitors were affected.
You need access to:
- Search Console Page Indexing and Crawl Stats;
- application and reverse-proxy logs;
- CDN or edge logs and configuration;
- origin health and capacity metrics;
- DNS and TLS monitoring;
- deployment and incident timelines.
Search Console’s “Server error (5xx)” means Google received a 500-level response for the URL. The label identifies a response family, not the failing component. Page indexing report[1]
Do not manufacture a 404 to make a live page disappear from the 5xx report. Restore the intended page first.
02
Ordered process
- Identify the exact response code and scope.
| Code | Usual meaning | First system to inspect |
|---|---|---|
500 | Application or server encountered an internal error | application exceptions and origin logs |
502 | Gateway received an invalid upstream response | proxy, CDN, load balancer, origin connection |
503 | Service is unavailable | maintenance, capacity, dependency health |
504 | Gateway timed out waiting for upstream | slow origin, network path, dependency latency |
These meanings orient the investigation; actual ownership depends on the architecture and headers.
- Separate one transient response from a sustained pattern.
A single failed request during a deploy is different from hours of template-wide failures. Group examples by time, template, host, edge, application version, and status. Compare the failure window with user availability and infrastructure alerts.
| Time | Event | Googlebot evidence | User evidence |
|---|---|---|---|
| 10:02 | release begins | no sample yet | elevated latency |
| 10:07 | origin pool unhealthy | 502 examples | checkout errors |
| 10:18 | rollback complete | requests recover | error rate normal |
| 11:05 | live inspection | 200 | page stable |
- Locate the failing layer.
| Layer | Evidence | Common causes |
|---|---|---|
| Application | exception ID, route-specific 500 | code error, bad data, dependency failure |
| Origin | direct health failure, connection reset | process crash, exhausted workers, disk or memory |
| Proxy or load balancer | upstream status and timing | unhealthy pool, timeout, routing mismatch |
| CDN or edge | edge-generated page or header | origin unreachable, rule conflict, edge function failure |
| DNS or TLS | no valid application request | resolution, certificate, handshake, network problem |
Compare the edge response with a safely authorized origin check. Do not bypass security controls merely to make a test pass.
- Use Crawl Stats and representative logs.
Crawl Stats shows response families, host availability, and request timing for Googlebot. Correlate spikes with server events and affected URL patterns. Crawl Stats report[4] Google recommends using the report to find availability warnings and then matching failing examples to site incidents. Troubleshoot Google Search crawling errors[3]
For logs, capture:
- timestamp and timezone;
- request URL and method;
- status;
- response time;
- edge and origin request IDs;
- upstream status;
- route or template;
- verified crawler identity when relevant;
- application version.
Do not publish raw logs containing tokens, personal identifiers, or protected query data.
- Check capacity, timeouts, and rate limiting.
Persistent latency can become a 504; exhausted pools can produce 502 or 503; an application may emit 500 after a dependency timeout. Check connection limits, worker queues, database pools, cache health, memory, CPU, disk, and third-party dependencies.
429 Too Many Requests belongs to the 4xx number range but Google treats it as a server-overload signal. Both 429 and 5xx can cause crawling to slow. Ordinary 4xx responses do not have that crawl-rate effect. How HTTP status codes affect Google's crawlers[2]
Use rate limiting deliberately. Blocking Googlebot with 403 or 404 does not communicate overload correctly.
- Restore a stable success path.
Fix the owning layer, validate dependencies, and ensure the final page returns its intended content with 200. If the page permanently moved, return a direct redirect. If it is genuinely gone, return a real missing response. Do not keep a permanent 200 maintenance shell for a missing application.
- Monitor recovery across several windows.
Run uncached requests against representative templates, not only the homepage. Verify edge and origin agreement, response time, and error rates. Use live URL Inspection after the page is stable. Indexed data may preserve the last known version during a transient server failure and report updates can lag the recovery. URL Inspection Tool[5]
- Confirm crawling recovers gradually.
Google says 5xx and 429 responses prompt temporary crawl slowdown. Already indexed URLs may be preserved initially but can be dropped if failures persist. Once stable 2xx responses return, crawl rate increases gradually rather than snapping back instantly. How HTTP status codes affect Google's crawlers[2]
03
Failure cases
- Only the homepage is tested. Template routes or APIs may still fail.
- A browser success is treated as universal. A cached edge can hide a broken origin.
- Googlebot is allowlisted by user-agent alone. The header is spoofable and creates divergent behavior.
- A
503maintenance response never ends. A temporary condition becomes persistent unavailability. - Timeouts are raised without finding the slow dependency. The failure merely takes longer.
- A
429is converted to403. The response now communicates forbidden content, not overload. - A redirect masks a failing target. The source works, but the final destination remains unavailable.
- Search Console is treated as live incident monitoring. Use production telemetry for immediate response and Search Console for Google-specific evidence.
- Logs are retained without privacy boundaries. Operational evidence should remain bounded and protected.
If Google has delayed crawling after a capacity event, connect this investigation to Discovered – Currently Not Indexed. If the error occurs in a redirect chain, use the Redirect Error playbook.
If tools disagree after recovery, compare their observation times. A cached edge response, a different region, or indexed data from the last failed crawl can coexist with a healthy current request. Keep the incident timeline and representative request identifiers until each delivery layer has shown stable behavior.
Do not declare recovery from one successful fetch. Sample important templates through the normal production path across a meaningful monitoring window.
04
Completion criteria
Recovery is complete when:
- representative URLs return stable intended responses;
- the application, proxy, CDN, and origin agree on status;
- DNS and TLS checks are healthy;
- capacity and dependency metrics are within normal bounds;
- no template or geography remains disproportionately affected;
- verified Googlebot requests no longer show the incident pattern;
- live URL Inspection succeeds on representative URLs;
- the sitemap and internal links name healthy final destinations;
- monitoring remains in place for recurrence.
Search recovery is a later outcome. Record the incident window and continue monitoring Crawl Stats and the Page Indexing report without promising an exact recrawl or reindex time. The technical SEO baseline should keep availability checks in routine release work.
References
Sources behind this record
- Page indexing report — Google (accessed July 25, 2026)
- How HTTP status codes affect Google's crawlers — Google (accessed July 25, 2026)
- Troubleshoot Google Search crawling errors — Google (accessed July 25, 2026)
- Crawl Stats report — Google (accessed July 25, 2026)
- URL Inspection Tool — Google (accessed July 25, 2026)
Corrections
Correction history
No corrections recorded.
To report an error, use the public corrections path.
Search Console and Crawl Stats sample Google's experience; they are not complete substitutes for application, edge, and origin observability.