All posts
Blog

500 Internal Server Error: What It Means and How to Fix It

By Dakshesh12 min read

  • 5xx errors
  • wordpress errors
  • website downtime
  • technical SEO
Continue with GoogleFree plan · No credit card required

AI Overview

A 500 Internal Server Error means the server hit an unexpected problem while building the page. Check the error logs, undo the last change, test .htaccess, raise the PHP memory limit and disable plugins. Persistent 500s slow Google's crawling.

Key takeaways

  • A 500 Internal Server Error means the server failed while building the page and had no more specific error code to return.
  • Common causes are code errors, a broken .htaccess file, PHP memory limits, plugin conflicts, PHP upgrades, permissions and timeouts.
  • Start with the error logs and undo the last change; most sudden 500 errors follow a deploy, update, migration or config edit.
  • In WordPress, enable WP_DEBUG_LOG, disable plugins by renaming the folder, switch themes and regenerate .htaccess from Permalinks.
  • Google slows crawling on 5xx errors and removes URLs that persistently return a server error, so finding out fast protects rankings.

Summarize with AI

Opens the assistant in a new tab with a link to this post.

On this page

A 500 Internal Server Error is the web's way of saying "something broke, and I can't tell you what." The page doesn't load, visitors leave, checkouts fail, and if it lasts long enough, Google starts crawling less and eventually drops the affected URLs from search.

The good news: most 500 errors come from a short list of causes, and you can work through them methodically. This guide explains what the error means, what usually causes it, how to fix it as a visitor and as a site owner (with WordPress steps), what it does to your SEO, and how to find out the moment it happens instead of hours later.

What is a 500 Internal Server Error?#

A 500 Internal Server Error is an HTTP status code that means the server hit an unexpected condition that stopped it from completing the request. The request reached the server. The server tried to build the page. Something went wrong along the way, and the server had no more specific error code to describe it.

That's why the 500 error is so frustrating: it's the generic catch-all of the 5xx family. It tells you the problem is on the server, not in the visitor's browser, but not what the problem is.

You'll see it worded many ways:

  • 500 Internal Server Error
  • HTTP Error 500
  • Internal Server Error
    1. That's an error.
  • HTTP 500: the website cannot display the page
  • A blank white page (WordPress often shows nothing at all, or "There has been a critical error on this website")

They all point to the same thing: the server failed while generating the response.

500 vs other 5xx errors#

The 5xx family covers server side failures, and the specific code tells you where to look first.

StatusNameWhat it usually means
500Internal Server ErrorSomething failed in the application or server config, with no more specific code
502Bad GatewayA proxy or CDN got an invalid response from the server behind it
503Service UnavailableThe server is overloaded or in maintenance mode
504Gateway TimeoutA proxy or CDN waited too long for the server behind it

Unlike a 404 error, which means the page doesn't exist, a 500 means the page might exist perfectly well but the server can't produce it right now.

Common causes of a 500 Internal Server Error#

CauseTypical triggerWhere to look
Code errorsA deploy with a bug, an uncaught exception, a syntax errorApplication and PHP error logs
Broken .htaccessA bad rewrite rule, a directive the server doesn't supportThe .htaccess file in your web root
PHP memory limitA heavy page, import or plugin exhausts the allowed memoryLogs show "Allowed memory size exhausted"
Plugin or theme conflictsAn update, or two plugins that clashRecently updated plugins and themes
Incompatible PHP versionHost upgrades PHP, old code breaksHosting control panel, error log
File permissionsFiles or folders set too open or too closed after a migrationUsually 644 for files, 755 for folders
TimeoutsA slow database query or external API call exceeds the server's limitSlow query log, application logs
Database problemsLost connection, corrupted tables, too many connectionsDatabase server status and logs
Server resource limitsShared hosting CPU or process limits hit during a traffic spikeHosting resource usage stats

The single most useful question is: what changed just before the error started? A plugin update, a deploy, a PHP upgrade, a migration or a config edit explains the large majority of sudden 500 errors.

How to fix a 500 error as a visitor#

If you're visiting a site that shows a 500 error, the problem is almost always on their side, but a few things are worth trying:

  1. Reload the page. Some 500 errors are momentary, caused by a brief overload or a restart.
  2. Come back in a few minutes. If the site is mid deploy or restarting, it may recover on its own.
  3. Clear the cache and cookies for that site. Rarely, a stale or corrupted cookie triggers a server error.
  4. Check whether the site is down for everyone. Our guide on checking if a website is down shows how to tell your problem from theirs.
  5. Let the site owner know. Include the URL and the time it happened. They may not know yet.

Try it on your site · free

Check your own page's meta tags

Title, description, canonical and robots - including an accidental noindex - in a few seconds.

Open the full tool

How to fix a 500 Internal Server Error on your own site#

Work through these in order. Each step either fixes the error or narrows down where it lives.

1. Check the error logs first#

The 500 page hides the real error, but your logs don't. Look at:

  • Your web server error log (Apache error.log, Nginx error.log)
  • Your PHP error log, or your application's own logs
  • Your hosting control panel's error log viewer

The log line usually names the file, the line number and the error. That alone solves most cases.

2. Undo the last change#

If the error started right after a deploy, an update or a config change, roll it back. Restore the previous release, the previous plugin version or the previous config file. If the error disappears, you've found the cause and can fix it calmly without the site being down.

3. Check the .htaccess file#

On Apache servers, one bad line in .htaccess takes down every page. Rename the file to .htaccess_old and reload. If the site comes back, the problem is in that file. Rebuild it from a known good version, adding rules back one at a time.

4. Raise the PHP memory limit#

If the log shows a memory exhaustion error, raise the limit in php.ini (for example memory_limit = 256M), or ask your host to. Then find out what is using so much memory, because raising the limit treats the symptom.

5. Check file and folder permissions#

After a migration or a bulk upload, wrong permissions are a common cause. Files are usually set to 644 and folders to 755. Files that are writable by everyone (777) are refused by many servers for security reasons and can cause 500 errors.

6. Check the PHP version#

If your host recently upgraded PHP, older code or plugins may use functions that no longer exist. Switch back to the previous version in your control panel to confirm, then update the code.

7. Look for timeouts and slow queries#

If the error only happens on certain pages, or under load, a slow database query or a slow external API may be exceeding the server's time limit. Check slow query logs and add timeouts and caching around external calls.

8. Contact your host#

If none of the above explains it, the problem may be at the server level: resource limits, a failed service or a hardware fault. Send your host the URL, the time, and any log lines you found.

How to fix a 500 error in WordPress#

WordPress sites hit 500 errors more than most, because so much code comes from third party plugins and themes. Here's the WordPress specific routine:

  1. Turn on debug logging. In wp-config.php, set define( 'WP_DEBUG', true );, define( 'WP_DEBUG_LOG', true ); and define( 'WP_DEBUG_DISPLAY', false );. Errors are then written to wp-content/debug.log instead of being shown to visitors.
  2. Check your email. Since WordPress 5.2, a fatal error often triggers a recovery mode email to the admin address, naming the plugin or theme that failed and giving you a link to log in safely.
  3. Deactivate all plugins. If you can't reach the dashboard, rename the wp-content/plugins folder over FTP or your host's file manager. If the site loads, rename it back and reactivate plugins one by one until the error returns.
  4. Switch to a default theme. Rename your active theme's folder so WordPress falls back to a default theme like Twenty Twenty Five.
  5. Regenerate .htaccess. Rename the existing file, log in, go to Settings > Permalinks and click Save Changes to create a fresh one.
  6. Raise the WordPress memory limit. Add define( 'WP_MEMORY_LIMIT', '256M' ); to wp-config.php, if your host allows it.
  7. Restore a backup. If all else fails, restore the most recent backup from before the error started.

Remember to turn WP_DEBUG off again once you're done. If plugin updates keep causing outages, our guide to safely updating WordPress plugins shows how to update without surprises.

Does a 500 error hurt SEO?#

A short blip won't. A persistent one will. Google's crawling documentation is specific about what happens:

  • Crawling slows down. "5xx and 429 server errors prompt Google's crawlers to temporarily slow down with crawling." For a 500 specifically, Google says the decrease "is proportionate to the number of individual URLs that are returning a server error."
  • Content is ignored. "Any content Google receives from URLs that return a 5xx status code is ignored." A 500 page with a friendly message adds nothing to the index.
  • Indexed pages survive at first, then drop. Already indexed URLs "are preserved in the index, but eventually dropped." Google's indexing pipeline "removes from the index URLs that persistently return a server error."
  • Crawling recovers gradually. Once the server returns 2xx again, Google "gradually increases the crawl rate for the site."

Two special cases are worth knowing. If your robots.txt returns a 5xx error, Google can't read your crawl rules and may stop crawling the site until it gets a usable response or relies on a cached copy. And because Google slows down in proportion to how many URLs fail, a sitewide 500 does far more damage than one broken page.

In Search Console, server errors appear as Server error (5xx) in the Page indexing report, and as server connectivity problems in the Crawl Stats report under Settings.

Duration of 500 errorsLikely SEO impact
A few minutesUsually none
A few hoursReduced crawling, normally recovers
DaysCrawling reduced, some URLs may start dropping
PersistentURLs removed from the index, traffic loss

The lesson: the cost of a 500 error grows with time, so how fast you find out matters more than almost anything else.

How to monitor for 500 errors#

Most site owners learn about a 500 error from a customer, a client or a traffic report. By then it may have been broken for hours. A few ways to catch it sooner:

  • Check status codes in bulk. The free Bulk URL Status Checker checks up to 20 URLs at once and shows each one's status code and response time, which is useful right after a deploy or migration.
  • Watch your logs and error tracking. Application error tracking tools catch exceptions, but they only see what your code reports.
  • Monitor from outside. An external check sees what visitors and Googlebot see, including failures that never reach your application, such as a broken .htaccess or a crashed server process.

MyKavo monitors your site from the outside in two ways:

  • Uptime checks every 5 minutes. MyKavo requests your homepage every 5 minutes and treats any 5xx response, a 404 or no response as a failure. A down alert is sent after two failed checks in a row, so a single blip doesn't wake you up, and you get a second alert when the site is back.
  • Page level change detection. On every scan, each monitored page is compared with its approved baseline. A page that returned 200 and now returns 500 raises a critical alert showing the previous and current status, so you know exactly which page broke, not just that something did.

Frequently asked questions

What does 500 Internal Server Error mean?

It means the server hit an unexpected problem while trying to load the page and has no more specific error code to describe it. The issue is on the website's server, not your device.

Is a 500 error my fault?

Almost never. A 500 error is a server side problem. As a visitor, you can reload, wait a few minutes or clear the site's cookies, but the fix usually has to come from the site owner.

How do I fix a 500 internal server error?

Check the server and PHP error logs, undo the most recent change, test the .htaccess file, raise the PHP memory limit, check file permissions and the PHP version, and contact your host if the cause is still unclear.

How do I fix a 500 error in WordPress?

Enable WP_DEBUG_LOG, check for a recovery mode email, deactivate plugins by renaming the plugins folder, switch to a default theme, regenerate .htaccess from Settings > Permalinks and raise the memory limit.

Does a 500 error affect SEO?

Short errors don't. Google says 5xx errors make its crawlers slow down, and URLs that persistently return a server error are eventually removed from the index, so long outages can cost rankings.

What is the difference between a 500 and a 503 error?

A 500 means something failed unexpectedly. A 503 means the server is temporarily unavailable, usually because of overload or planned maintenance, and is the right code to return during maintenance.

The bottom line#

A 500 Internal Server Error means the server failed while building the page. The cause is almost always in the logs, and it's usually the last thing that changed: a deploy, a plugin update, an .htaccess edit, a PHP upgrade or a memory limit. Short errors are harmless for SEO, but persistent ones slow Google's crawling and can push your pages out of the index, so the real goal is to find out fast.

Check your key pages right now with the free Bulk URL Status Checker, then start free with MyKavo to get a critical alert the moment an important page starts returning a 500.

Share this post

Get alerted when your site breaks. Free, no card.

Start free