Definition:
A 500 error, also called a 500 Internal Server Error, is an HTTP response indicating that the server encountered an unexpected condition and could not complete the request. It is a generic code: it reports a server-side failure but does not identify the specific cause on its own.
It may be displayed as 500 Error, HTTP 500, or Internal Server Error, among other variations. Unlike a local browser or connection problem, the response comes from the system handling the request, although a CDN, proxy, or intermediary service may also be involved in the route.
What a 500 error means
Within HTTP status codes, the 5xx family covers server errors. A 500 code is used when the server cannot respond correctly and no other, more specific 5xx code describes what happened.
The message shown to the visitor usually hides technical details for security reasons. The underlying cause is generally recorded in application, web server, or infrastructure logs. Two pages displaying the same 500 error may therefore have different causes.
Common causes
The error can occur in applications, content management systems, APIs, and other web services. Common causes include:
- Unhandled exceptions: Application code fails while processing a request and does not produce a valid response.
- Incorrect configuration: A server rule, environment variable, or configuration file contains an incompatible value.
- Insufficient permissions: The process cannot read, write, or execute a required resource.
- Resource exhaustion: The application runs out of memory, available processes, or another allocated resource.
- Unavailable dependencies: A database, API, or internal service does not respond as the application expects.
- Incompatible changes: An update, plugin, theme, or language version introduces a conflict.
The 500 code alone cannot distinguish between these causes. The time of the incident, affected URL, recent changes, and technical logs help narrow down the diagnosis.
Differences from other status codes
Related codes describe different situations and should not be treated as equivalents:
- 400 Bad Request: The server cannot process the request because it considers it incorrect or malformed.
- 404 Not Found: The server cannot find the requested resource at that address.
- 502 Bad Gateway: A server acting as a gateway receives an invalid response from another server.
- 503 Service Unavailable: The service is temporarily unavailable, for example because of maintenance or overload.
- 504 Gateway Timeout: A gateway does not receive a timely response from the server behind it.
Returning the correct code helps browsers, monitoring tools, and crawlers interpret the state of the resource.
How to respond to a 500 error
A visitor can wait and try again, check whether the problem affects a single URL, or notify the website owner. Repeatedly submitting purchase forms, payments, or other operations should be avoided because the operation may have been processed before the error appeared.
The website owner needs to reproduce the failure and inspect the relevant logs. Recent deployments, configuration, permissions, resource limits, and dependencies can then be checked. A backup makes it possible to reverse the latest change when there is a clear temporal connection, but hiding the error or restarting the service without identifying the cause does not ensure that it has been resolved.
The public response should be simple and should not disclose internal paths, code traces, or credentials. Internal monitoring, however, needs to retain enough context to locate the failed request.
SEO effects
An isolated 500 response may be temporary. If it recurs, it prevents a crawler from accessing the content and may cause a crawl error. Persistent failures reduce the ability to explore the site and may cause a URL to drop out of the indexing process.
Google Search Console, logs, and monitoring tools can reveal 5xx responses, although each source may cover different times and requests. The analysis should consider their frequency, duration, affected templates, and relationship with technical changes.
From a technical SEO perspective, the solution is to restore a valid response or return the specific code that applies. Redirecting every 500 error by default or responding with 200 when the content could not be generated does not describe the resource correctly.
