A 500 Internal Server Error means the server tried to build your page and failed before it could send anything useful. The message is the same whatever broke, so it tells you almost nothing on its own. The good news: on a WordPress site, the cause is nearly always one of five things, and you can check them in order.
What the 500 Error Actually Means
A 500 is the web server’s way of saying “something went wrong on my side, and I can’t be more specific.” On WordPress, that usually means PHP crashed, the server choked on a configuration file, or a process ran out of memory or time. The visitor sees “500 Internal Server Error”, “HTTP ERROR 500” in Chrome, or a branded error page from your host.
It is related to, but not the same as, two other WordPress failures. If you see “There has been a critical error on this website”, WordPress caught the PHP crash itself. If you see a blank page, that’s the white screen of death. A raw 500 means the failure happened before WordPress could show either of those.
Before You Start: Three Quick Checks
- Is it the whole site or one page? If only wp-admin or one URL returns 500, note which one. That narrows it to a plugin, a form or a specific template.
- What changed last? A plugin or theme update, a PHP version change at the host, a new redirect rule, or an edit to wp-config.php. Most 500s start within minutes of a change.
- Do you have a recent backup? Find it before you touch anything. Then work on the steps below knowing you can roll back.
Step 1: Read the Server Error Log
Guessing wastes time. Your host keeps an error log (often called error_log, php_error.log, or found under Logs in cPanel, Kinsta, WP Engine or SiteGround). Open it and look at the newest entries. A line like PHP Fatal error: Allowed memory size exhausted or Invalid command 'RewriteEngin' points straight at the cause.
If you can’t find a log, turn on WordPress debug logging in wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Reload the broken page, then read wp-content/debug.log. Turn debugging off again when you’re done.
Step 2: Check the .htaccess File
On Apache and LiteSpeed servers, a broken .htaccess file is the most common cause of a sudden 500. A security plugin, a redirect plugin or a manual edit can leave a typo that takes the whole site down.
- Connect with SFTP or your host’s file manager and find .htaccess in the site’s root folder.
- Rename it to .htaccess-old.
- Reload the site. If it comes back, the file was the problem.
- Log in to wp-admin, go to Settings > Permalinks and click Save without changing anything. WordPress writes a fresh, clean .htaccess.
Nginx servers don’t use .htaccess, so skip this step if your host runs Nginx.
Step 3: Raise the PHP Memory Limit
Heavy plugins, large imports and page builders can push PHP past its memory limit. Add this line to wp-config.php, above the “That’s all, stop editing” comment:
define('WP_MEMORY_LIMIT', '256M');
If the host caps memory lower than that, the line does nothing. Ask the host what the real limit is. If raising it fixes the error, treat that as a warning: something on the site is using far more memory than it should.
Step 4: Rule Out Plugins and the Theme
If the log names a plugin folder, start there. Otherwise, disable all plugins at once and bring them back one by one:
- Rename wp-content/plugins to plugins-off. Every plugin deactivates.
- If the site loads, rename the folder back, then deactivate plugins in wp-admin and reactivate them one at a time until the error returns.
- If plugins aren’t the cause, rename your active theme’s folder. WordPress falls back to a default theme. If the site loads, the theme is the problem.
A 500 that starts right after an update is usually a plugin conflict or a version mismatch. Recovering from a failed update walks through rolling it back safely.
Still getting a 500 after these steps? Get a human on it: WordPress 500 error emergency help →
Step 5: Check the PHP Version and File Permissions
Hosts upgrade PHP on their own schedule. An old plugin or theme that relied on removed PHP functions will crash on PHP 8.x. In your hosting panel, check which PHP version the site runs and whether it changed recently. Switching back temporarily can confirm the cause, but the real fix is updating or replacing the code that broke.
Wrong file permissions can also cause a 500, especially after a migration. Folders should usually be 755 and files 644. wp-config.php can be stricter (640 or 600).
Step 6: Reinstall WordPress Core
If nothing above explains it, core files may be corrupted by a failed update or by malware. Download a fresh copy of WordPress and upload only the wp-admin and wp-includes folders over the existing ones. This doesn’t touch your content, plugins or settings.
If you find files you don’t recognize, or the error comes back after a clean reinstall, treat it as a possible compromise and read WordPress hacked repair before you go further.
When the 500 Is Really a Hosting Problem
Sometimes the site is fine and the server is not. Signs: the error comes and goes with traffic, other sites on the same account fail too, or the log shows timeouts and “resource limit reached” messages. That’s a hosting capacity or configuration issue. Your host’s support can confirm it from their side. If the whole site is unreachable rather than erroring, work through the WordPress site down checklist instead.
When to Call for Help
A 500 that you can trace to one plugin or one bad .htaccess line is a ten-minute fix. A 500 that keeps returning, that the logs don’t explain, or that appears on a store or lead form while you’re losing orders is a different situation.
Parameter’s emergency diagnostic is built for that moment: 60 minutes of hands-on work for $99 flat, fixing what fits in that window and leaving you a clear plan for the rest. If the errors keep coming back, a free audit finds what keeps breaking.
Want WordPress to feel handled?
Self-serve onboarding takes minutes. Parameter takes care of the rest, hosting, ops, and improvements when you need them.