How to Fix the WordPress 500 Internal Server Error
What you're seeing
- A blank white page or a plain "500 Internal Server Error" / "HTTP ERROR 500" message with no WordPress styling.
- The wp-admin dashboard is also down, not just the front end, so you can't log in to investigate.
- The error appears on every page, or only after you installed/updated a plugin, theme, or WordPress core.
- The site loads intermittently, or only some pages fail (often a sign of a memory or timeout limit).
- Other apps on the same server still work, which points the problem at this WordPress install specifically.
What causes it
Corrupt or misconfigured .htaccess
The .htaccess file controls how the server handles URLs and rewrites, and a single bad line will throw a 500 on every page. This often happens after a plugin edits it, a permalink change, or a botched migration. It's the most common cause and, fortunately, one of the safest to fix.
Exhausted PHP memory limit
WordPress, your theme, and plugins each consume memory, and when they exceed the limit your host allows, the page dies with a 500. Page builders, backup plugins, and image-heavy operations are frequent triggers. Raising the limit, or finding the plugin that's eating it, resolves this.
A plugin or theme conflict
A poorly coded, outdated, or incompatible plugin or theme can crash the PHP process, especially right after an update. Two plugins trying to do the same thing can also collide. Because the error takes down wp-admin too, you often have to disable the culprit over FTP rather than from the dashboard.
A corrupt WordPress core file
If a core file was damaged during an interrupted update, a failed transfer, or disk issues, WordPress can fail to boot and return a 500. This is less common but very fixable by replacing the core files with clean copies, which leaves your content and database untouched.
Server configuration or resource limits
The wrong PHP version, a low max_execution_time, file permission problems, or a server hitting its CPU/process limits can all surface as a 500. These live above WordPress, in the hosting environment. Your host's error log is usually the fastest way to confirm a server-side cause.
A broken or incomplete update
An update to WordPress, a plugin, or a theme that was interrupted partway through can leave files in an inconsistent state. The site was fine an hour ago and is now throwing a 500 right after you clicked "update." Rolling the component back, or completing the update cleanly, fixes it.
How to fix it yourself
These steps are safe for non-experts in order, but always take a full backup of your files and database first so you can undo anything.
Back up before you touch anything
Download a copy of your site files (via FTP or your host's file manager) and export your database before making changes. This is your safety net, so if a step makes things worse, you can restore in minutes. Never skip this, even though the temptation under pressure is real.
Regenerate the .htaccess file
Using FTP or your host's file manager, rename .htaccess in your site's root to .htaccess_old, then reload the site. If it comes back, the file was the problem; log in to wp-admin and go to Settings > Permalinks and click Save to generate a fresh, clean one. Don't delete the old file until you've confirmed the fix.
Raise the PHP memory limit
Edit wp-config.php and add the line define('WP_MEMORY_LIMIT', '256M'); just above the "That's all, stop editing" comment. If the 500 clears, memory was the constraint. If your host caps memory below this, the value won't take and you'll need to ask them or move on to the next step.
Deactivate plugins without the dashboard
Because wp-admin is often down too, use FTP to rename the wp-content/plugins folder to plugins_old, which deactivates every plugin at once. If the site loads, rename it back, then disable plugins one at a time (rename each subfolder) to find the culprit. Reactivate the rest once you've identified it.
Read the server error log
Turn on debugging by setting define('WP_DEBUG', true); and define('WP_DEBUG_LOG', true); in wp-config.php, then reproduce the error and open wp-content/debug.log, or check your host's error_log. The exact file and line number named there is the real cause behind the generic 500. Turn WP_DEBUG back off when you're done so errors aren't shown to visitors.
Rather not risk it? We'll fix it for you.
If you've worked the safe steps and the 500 is still there, or wp-admin and FTP feel out of your depth, that's a sensible point to hand it to us. Mend's senior engineers take a full backup first, find the actual cause in your server logs rather than guessing, fix it, and document exactly what was wrong and what we changed. Our Emergency Rescue is a flat $299 and backed by a money-back guarantee, so getting your site back online carries no risk.