Skip to main content
Wordpress

WordPress 500 Internal Server Error: How to Fix It

Quick answer

A 500 internal server error means the web server hit a problem it cannot explain, and in WordPress the cause is almost always a corrupted .htaccess file, an exhausted PHP memory limit, or a broken plugin or theme. Read your server’s error log to find the real cause, then regenerate .htaccess, raise the memory limit, or deactivate the plugin behind it.

A 500 internal server error is the web server’s way of saying something went wrong while refusing to say what. It is the most generic error on the web, which is exactly why it feels so frustrating: the page is blank, the status is 500, and nothing on screen tells you why. The good news is that on WordPress the list of real causes is short, and the fix is usually quick once you make the server tell you what actually broke. We clear these for agencies whenever a client site goes dark, and this is the order we work in. Back up the site first if you can.

What a 500 error actually is

A 500 is an HTTP status the server returns when it hits an error it cannot handle. Unlike a 404 (page not found) or WordPress’s own “there has been a critical error” message, a 500 can fire before WordPress even loads, for example when a bad rule in .htaccess stops the server cold. That is why it is so vague: the server caught the failure but did not put a friendly explanation where you can see it. The explanation is still recorded, in the server error log, which is the first place to look.

What causes it

  • A corrupted .htaccess file (the single most common cause, often after a plugin, a security tool, or a migration rewrote it).
  • A plugin or theme throwing a PHP fatal error.
  • An exhausted PHP memory limit.
  • Wrong file or folder permissions.

How to fix it

1. Read the real error first

Do not guess. Open your server’s error log (in your hosting panel under Logs, or read /wp-content/debug.log after turning on debug logging). To enable it, edit wp-config.php and replace define( 'WP_DEBUG', false ); with these lines:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Reload the broken page, then read the last lines of the log. They name the file and the cause, which turns the rest of this list into a single targeted fix instead of trial and error.

2. Regenerate the .htaccess file

This is the most common fix. Over FTP or your host’s file manager, find .htaccess in your site root, rename it to .htaccess_old, and reload the site. If the 500 clears, .htaccess was the culprit. Recreate a clean one from the dashboard: go to Settings > Permalinks and click Save Changes (no edits needed) to write a fresh file. The default WordPress .htaccess looks like this:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

3. Raise the PHP memory limit

If the log says “allowed memory size exhausted,” add this line to wp-config.php, just above the line that says “That’s all, stop editing”:

define( 'WP_MEMORY_LIMIT', '256M' );

Some hosts cap memory at the server level, so if this does not take, ask your host to raise it.

4. Deactivate plugins and test the theme

If it is not .htaccess or memory, a plugin or theme is throwing a fatal error. Rename the /wp-content/plugins/ folder over FTP to deactivate everything at once; if the site returns, rename it back and re-enable plugins one at a time until the 500 comes back. Then switch to a default theme to rule the theme out.

5. Check file permissions

A botched migration can leave the wrong permissions behind. Folders should be 755 and files 644. Your host’s file manager can reset these in bulk, and the wrong values alone can trigger a 500.

It is one of the WordPress “site is down” errors

The 500 error sits in a small family of “the whole site is down” WordPress failures, each with its own signature. The critical error comes from WordPress’s own PHP handler, the white screen of death is the older silent version, and the database connection error means WordPress cannot reach its database. A 500 is the one that points hardest at the server and .htaccess. They are all worth knowing cold, and they sit alongside the other common WordPress problems. WordPress documents the debugging side in its debugging guide.

When to stop and get help

If the log points at a server-level limit, a core file, or an error that returns the moment you re-enable a plugin the client depends on, that is not the time to experiment on a live site. This is one of the errors our white-label WordPress team clears quietly under your brand, so your client sees a working site and never knows there was a fire.

Key takeaways

  • A 500 error is the server’s generic failure; your first move is to read the server error log or enable WP_DEBUG_LOG so you fix the real cause instead of guessing.
  • A corrupted .htaccess file is the most common cause; rename it, reload the site to confirm, then re-save your permalinks to regenerate a clean one.
  • If the log says memory exhausted, raise WP_MEMORY_LIMIT to 256M in wp-config; if a plugin is at fault, deactivate everything over FTP and re-enable one at a time.
  • Unlike the critical-error message, a 500 can fire before WordPress even loads, which is why .htaccess and server config are the prime suspects.

Frequently asked questions

Still hitting a 500 error after all of this? Some causes sit at the server level, where a guess can make things worse. Send us the stuck site and we will triage it, find the real cause, and give you a fixed quote to get it back online.

What does a 500 internal server error mean in WordPress?

It means the web server hit an error it could not process and returned the generic HTTP 500 status. In WordPress the real cause is usually a corrupted .htaccess file, an exhausted PHP memory limit, or a plugin or theme throwing a fatal error. The server logs the actual reason even though the page itself shows nothing useful.

What is the most common cause of the WordPress 500 error?

A corrupted .htaccess file, by a wide margin, often right after a plugin, a security tool, or a site migration rewrote it. Renaming the file and re-saving your permalinks regenerates a clean one and clears the error in most cases. Plugin conflicts and exhausted memory are the next most common causes.

How do I fix a 500 error if I cannot access wp-admin?

Work over FTP or your host’s file manager. Rename .htaccess to .htaccess_old to test it, and rename the /wp-content/plugins/ folder to deactivate every plugin at once. Turn on WP_DEBUG_LOG in wp-config.php to read the exact error in /wp-content/debug.log, all without needing the dashboard.

Is a 500 error the same as the WordPress critical error?

Related, but not identical. The critical-error message comes from WordPress’s own PHP error handler. A 500 comes from the web server and can fire before WordPress even loads, for example when .htaccess is broken. Both mean the site is down, but a 500 points more often to server configuration and the .htaccess file.

Will I lose content fixing a 500 error?

Almost never. A 500 error is a configuration or code problem, not data loss, so your posts, pages, and settings stay safe in the database while the site is down. Fixing the .htaccess, memory, or plugin behind it restores everything as it was. Back up before you troubleshoot anyway, because the one time it matters you will be glad you did.

Client site down with a 500 and you need it back fast? You can send us the details and we’ll get it online under your brand.

JS
Written by John Schatz

John Schatz is the founder of WP SuperHelp, a white-label WordPress development and support partner for agencies. For over 15 years he and his team have built, fixed, and maintained WordPress sites under agency brands across 1,500+ client projects.

Let's talk about your next WordPress project

Get a free consultation and a fixed quote, usually within one business day, delivered under your agency's brand.

Get free consultation

Leave the daily management of your website in the hands of the WordPress specialists at WP SuperHelp.

Navigation