TrueURL

500 Internal Server Error

Generic server-side failure: something went wrong on the server, such as an application crash or a broken configuration file.

Reason phrase
Internal Server Error
Redirect
No
Cacheable by default
No

500 Internal Server Error means the server encountered an unexpected condition that prevented it from fulfilling the request. It is the catch-all for server-side failures when no more specific 5xx code applies.

The cause is almost never visible from outside, because servers should not reveal internal details. The server's error log, the application log or an error-tracking service holds the real reason: an uncaught exception, a fatal PHP error, a failed database connection, a syntax error in .htaccess or a configuration directive the server does not understand.

The client cannot fix a 500. Retrying later may work if the problem was temporary.

Example response

HTTP
HTTP/1.1 500 Internal Server Error
Date: Fri, 06 Nov 2026 10:15:32 GMT
Server: Apache
Content-Type: text/html; charset=iso-8859-1
Content-Length: 273
Connection: close

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or misconfiguration and was unable to complete your request.</p>
</body></html>

SEO and redirect checking

Google treats 5xx errors as temporary at first: Googlebot slows down crawling, and pages that are already indexed stay in the index for a while. If the errors persist, the URLs are dropped. If robots.txt itself returns a 5xx error, Google temporarily treats the whole site as disallowed and pauses crawling; if the error lasts more than 30 days, it falls back to its last cached copy of robots.txt.

A 500 in a redirect chain often comes from a broken rewrite rule. Apache, for example, returns 500 when rewrite rules cause more than 10 internal redirects ("Request exceeded the limit of 10 internal redirects"). Such an internal loop never shows up as 3xx hops; the Redirect Loop Checker finds loops between URLs, while internal loops surface as a 500.

Common causes and use cases

  • An uncaught exception or fatal error in the application (PHP, Node.js, Python and so on).
  • Invalid directives or syntax in .htaccess or the server configuration.
  • Wrong file permissions or ownership on scripts.
  • Exhausted resources, such as PHP's memory_limit, or a failed database connection.
  • A rewrite rule that loops internally.

URL Redirect Checker

See every status code a URL returns, hop by hop, with the free TrueURL redirect checker.