Technical

500 Internal Server Error

A 500 Internal Server Error is an HTTP status code that means the server hit a problem it could not handle and failed to deliver the page. It is a server-side failure, not a missing page, and a wave of them can quietly hurt your crawling and rankings.

A 404 means the page does not exist. A 500 means the page should exist, but the server fell over trying to build it. That is a fundamentally different and more serious problem. With a 404 your site is working and a single URL is missing. With a 500 your site itself is failing, and if it is happening at scale, every visitor and every crawler is hitting a wall instead of your content.

Search engines watch this closely. An occasional 500 is noise. A pattern of them tells Google your site is unreliable, and an unreliable site is one it will crawl more cautiously and trust less. Left unchecked, sustained server errors can drag pages out of the index because the engine simply cannot reach them.

What actually causes a 500

  • A bug in server-side code, like a fatal error in a PHP script or application.
  • A database connection that timed out or refused the request.
  • A misconfigured server file, such as a broken rule in .htaccess.
  • Exhausted server resources, where memory or CPU ran out under load.
  • A bad deployment that pushed broken code or a missing dependency to production.
bolt

A 500 is the server's way of saying it does not know what went wrong, only that it could not finish. The real cause is almost always in your server logs, not on the screen.

Why this is an SEO emergency, not a nuisance

When Googlebot requests a page and gets a 500, it cannot read the content, so it learns nothing new and may lower how often it crawls you while it waits for stability. If the errors hit important pages during a crawl, those pages can slip in rankings or fall out of the index until the engine successfully refetches them. And every user who hits a 500 leaves, which feeds poor engagement signals on top of the crawl damage. A burst of 500s during a traffic spike or a botched release can do real, measurable harm in a short window.

warningWATCH OUT

If you must take a site or page down for maintenance, return a 503 Service Unavailable, not a 500. A 503 tells crawlers the outage is temporary and to come back. A 500 tells them something is broken with no promise it will return.

How to track it down

The browser screen will not tell you much. Go to your server's error log, which is where the actual stack trace or failing query lives. On many stacks you can tail the log live and reproduce the error to watch it appear. Google Search Console also reports server errors it encountered while crawling, which helps you see the problem from the engine's side and confirm when it is fixed.

targetThe first three things to check

When a 500 appears, start with the obvious. First, did anything just get deployed? Roll back if so. Second, is the database reachable? A dead connection is a top cause. Third, read the server error log for the exact line that failed. Nine times out of ten one of those three points straight at the culprit.

Stability is a ranking factor

A 500 is a server failure, not a missing page, and a pattern of them tells search engines your site is unreliable. Treat sustained 500s as urgent, find the cause in your logs, and serve 503 during planned downtime.

For how server health connects to crawling, indexing, and overall site performance, read my guide on technical SEO fundamentals.

Want this handled by someone who has measured search for 20 years?

Work with me