The WordPress 500 internal server error is the server’s way of saying something went wrong without saying what. On a WordPress site, it can be caused by WordPress itself, a plugin, or the server’s configuration, which is why it’s one of the more frustrating errors to fix.
The approach that works is to rule out causes one at a time, starting with the most common.
Table of Contents
- What causes the WordPress 500 internal server error?
- Step 1: Check the server error log
- Step 2: Reset the .htaccess file
- Step 3: Disable plugins
- Step 4: Switch to a default theme
- Step 5: Increase the PHP memory limit
- Step 6: Check the PHP version
- Step 7: Check file permissions
- Step 8: Ask your host
- How to prevent the WordPress 500 internal server error
- Frequently asked questions
What causes the WordPress 500 internal server error?
- A corrupted or badly edited
.htaccessfile - A plugin or theme triggering a PHP fatal error
- PHP running out of memory
- Wrong file or folder permissions
- A PHP version your plugins don’t support
- Server limits or configuration problems at the host
Step 1: Check the server error log
Before changing anything, look for the real error. Most hosting panels have an Errors or Logs section; on a VPS, check the web server’s error log. You can also switch on WordPress debugging by adding these lines to wp-config.php, then read wp-content/debug.log:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );If the log names a plugin or file, you’ve found your starting point. The WordPress handbook’s debugging guide explains each of these settings. Remove them or set WP_DEBUG back to false once the site is fixed.
Step 2: Reset the .htaccess file
On Apache and LiteSpeed servers, a broken .htaccess file is the most common cause. Using File Manager or SFTP, rename .htaccess in your WordPress folder to .htaccess-old and reload the site.
If the site works, log in and go to Settings → Permalinks and click Save Changes. WordPress will write a fresh file. A standard WordPress .htaccess looks like this:
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPressCompare it with the old file before deleting it: security or caching plugins may have added rules you want to keep. For multisite installs, use the rules in WordPress.org’s .htaccess reference instead.
Step 3: Disable plugins
Rename wp-content/plugins to plugins-off. If the error disappears, rename it back and reactivate plugins one by one until the error returns. With SSH, WP-CLI can do this with wp plugin deactivate --all.
Step 4: Switch to a default theme
If plugins aren’t the cause, rename your active theme’s folder in wp-content/themes/ so WordPress falls back to a default theme. A site that loads afterwards points to the theme or its custom code.
Step 5: Increase the PHP memory limit
Heavy page builders and WooCommerce stores can run out of memory and return a 500 error instead of a clear message. Our guide to the PHP memory limit error shows how to raise the limit safely.
Step 6: Check the PHP version
A PHP upgrade is a common trigger for the WordPress 500 internal server error: older plugins and themes may call functions that newer PHP versions have removed. If the error started after your host changed PHP, switch back to the previous version in your hosting panel, then update or replace the plugin named in the error log before upgrading again.
The opposite problem happens too: current plugins may not run on a very old PHP version. You can see your version under Tools → Site Health → Info → Server. WordPress recommends PHP 8.3 or later.
Step 7: Check file permissions
Permissions that are too loose or too strict can make the server refuse to run files. The usual WordPress settings are:
- Folders:
755 - Files:
644 wp-config.php: stricter, such as640or600, depending on your host
Many hosts can reset permissions for you, which is safer than changing thousands of files by hand. WordPress.org’s guide to changing file permissions covers the details.
Step 8: Ask your host
If none of this helps, the cause is likely on the server: a PHP process limit, a misconfigured module or a resource cap. Send your host the time the error happened and any log entries you found; that speeds up their investigation considerably.
How to prevent the WordPress 500 internal server error
- Back up
.htaccessbefore editing it or installing security and caching plugins. - Update plugins one at a time and test after each.
- Keep PHP and plugins on supported versions.
- Use hosting with enough memory for your site.
A WordPress maintenance plan covers tested updates, backups and monitoring so problems are caught early. For other errors, see the most common WordPress errors.
Frequently asked questions
Is a 500 error my fault or my host’s?
It can be either. Plugin, theme and .htaccess problems are on the site; resource limits and server configuration are on the host. The error log usually tells you which.
Why does the error appear only on some pages?
Usually because only those pages run the code that fails, such as a page with a specific plugin’s block or a WooCommerce checkout that needs more memory.
Does a 500 error hurt my Google rankings?
A brief outage won’t. If Google keeps getting 500 errors over several days, it may crawl less and eventually drop affected pages, so fix it promptly.



