Why "500" Doesn't Tell You Much
A 500 status code is the web server's way of saying "something went wrong" without specifying what. Unlike WordPress's own critical error message, a 500 can happen at the server level before WordPress code even runs — which means the fix depends entirely on identifying which of a handful of causes is actually responsible, rather than applying one universal fix.
Step 1: Check the Error Log First
Most hosting control panels (cPanel, Plesk, or your host's custom dashboard) have an "Error Log" section that shows the server-level error behind the 500. If you have file access, you can also enable logging in wp-config.php:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Reload the site once, then check /wp-content/debug.log. This is the fastest way to see whether you're dealing with a PHP fatal error, a memory limit, or something else — instead of testing fixes at random.
Step 2: Rule Out a Corrupted .htaccess File
Via FTP or your host's file manager, rename .htaccess in the site's root directory to .htaccess-old, then reload the site. If it loads, the original file was corrupted or contained a bad rule. Go to Settings > Permalinks in wp-admin and click Save Changes — WordPress will regenerate a clean .htaccess automatically.
Step 3: Rule Out a Plugin or Theme Conflict
If the log points to a plugin, or you haven't found a clear cause yet, rename the /wp-content/plugins folder via FTP to force-deactivate every plugin at once. If the site loads, rename the folder back to plugins, then reactivate plugins one at a time until the 500 error returns — that's your culprit. If deactivating plugins doesn't help, repeat the same process with your active theme folder in /wp-content/themes.
Step 4: Check PHP Memory and Version Limits
A 500 error can also occur when a script exceeds the PHP memory limit. Add this line to wp-config.php to raise it: define( 'WP_MEMORY_LIMIT', '256M' );. If the site loads after that change, the underlying fix is finding what's consuming so much memory — often a poorly-coded plugin or an oversized import — rather than just raising the ceiling indefinitely. It's also worth confirming your hosting account's PHP version matches what your plugins and theme require; an outdated or mismatched PHP version is a common, easy-to-miss cause.
Why This Happens Right After Changes
Like most WordPress fatal errors, 500s cluster around updates — a plugin update, a core update, or a hosting-side PHP version change. The fix above resolves the immediate outage. The way to stop it recurring is testing every update on a staging environment before it reaches production, so a conflict like this gets caught privately instead of taking the live site down — the same staging and validation process prevents most of the errors on this list.