Few things are more alarming than visiting your WordPress website and seeing:
No details. No hints. Just a vague message that something, somewhere, went wrong.
The 500 Internal Server Error is one of the most frustrating WordPress problems precisely because it gives you almost nothing to work with. It can appear on the front end, the admin dashboard, or both — and it can be caused by dozens of different things.
The good news: it's almost always fixable without touching your database or losing any content. In this guide, we'll cover every known cause of the WordPress 500 Internal Server Error and walk you through each fix, step by step.
The 500 Internal Server Error is a generic HTTP status code that means the web server encountered an unexpected condition and couldn't complete the request. It's a server-side error — meaning the problem is not with your browser or internet connection, but with the server running your website.
Because it's a catch-all error code, it can be triggered by many different issues. The server essentially says: "Something went wrong, but I'm not going to tell you what."
You might see it displayed as:
It can affect your entire website, just the WordPress admin area (/wp-admin), or only specific pages and actions like form submissions or checkout.
Despite the vague error message, the causes are well-understood. Here are the most common culprits:
Work through these fixes in order. Each one takes only a few minutes, and you'll likely solve the problem before reaching the end of the list.
Before doing anything else, rule out the simplest possibilities.
Ctrl + Shift + R on Windows or Cmd + Shift + R on MacIf the error persists after all of the above, it's a real problem that needs fixing.
A corrupted .htaccess file is the single most common cause of 500 Internal Server Errors in WordPress. This is always the first real fix to try.
Step 1: Rename (disable) the current .htaccess file
wp-config.php lives).htaccess.htaccess_oldIf the site loads, the .htaccess file was indeed corrupted. Now you need to create a fresh one.
Step 2: Generate a new .htaccess file
WordPress will automatically generate a clean, new .htaccess file with the correct rewrite rules. Your old one (now renamed .htaccess_old) can be deleted once you've confirmed everything is working.
If your WordPress site is running resource-heavy plugins or processing large amounts of data, it can run out of PHP memory and return a 500 error.
Edit wp-config.php:
wp-config.php in your WordPress root folder/* That's all, stop editing! */:define('WP_MEMORY_LIMIT', '256M');
Save the file and reload your site
Edit .htaccess (Apache servers):
If editing wp-config.php doesn't work, try adding this to your .htaccess file:
php_value memory_limit 256M
Ask your hosting provider:
Some hosting plans have a hard cap on memory that can only be increased from the server side. If neither of the above methods works, contact your host and ask them to increase your PHP memory limit.
Plugins are the second most common cause of 500 errors. A single faulty plugin can crash the server response before WordPress finishes loading.
If you can access wp-admin:
If wp-admin itself shows a 500 error:
/wp-content/plugins_disabledpluginsThe plugin that brings back the 500 error is your culprit — leave it deactivated and contact the developer or find an alternative.
If disabling plugins didn't fix the 500 error, your active theme may be the problem — especially if the error started after a theme update or customization.
/wp-content/themes/divi to divi_old)If the site now loads, your theme was the cause. You can either:
functions.php)If the 500 error is caused by a PHP fatal error, enabling debug mode will reveal the exact error message, file name, and line number responsible.
wp-config.php via FTPdefine('WP_DEBUG', false);
Replace it with:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);
@ini_set('display_errors', 1);
Save the file and reload the page showing the 500 error
Instead of the generic error page, you should now see the actual PHP error. This will tell you exactly which plugin, theme file, or core function is causing the crash.
Once you've identified and fixed the issue, always turn debug mode off by setting WP_DEBUG back to false. Leaving debug mode enabled on a live site exposes sensitive information.
You can also check the debug log file at /wp-content/debug.log for errors that occurred before you enabled debug mode.
WordPress requires specific file and folder permissions to function correctly. If these are set incorrectly — often after a manual file upload or server migration — the server may refuse to read the files and return a 500 error.
Correct WordPress permissions:
| File/Folder | Correct Permission |
|---|---|
| WordPress root folder | 755 |
| wp-admin folder | 755 |
| wp-content folder | 755 |
| wp-includes folder | 755 |
| All other folders | 755 |
| wp-config.php | 640 or 644 |
| .htaccess | 644 |
| All PHP files | 644 |
How to fix permissions:
Using an FTP client like FileZilla:
You can also fix permissions in bulk via SSH:
# Fix folder permissions
find /path/to/wordpress/ -type d -exec chmod 755 {} \;
# Fix file permissions
find /path/to/wordpress/ -type f -exec chmod 644 {} \;
If the 500 error appeared after a WordPress update or if you suspect a malware infection may have corrupted core files, re-uploading fresh WordPress files can fix the problem without affecting your content.
wp-content folder from the unzipped package — you must not overwrite your existing contentwp-config.php if it appearsThis replaces all core WordPress files while leaving your database, themes, plugins, and uploads completely intact.
WordPress and its plugins have minimum PHP version requirements. If your host recently upgraded your PHP version, older code that was working fine may suddenly produce fatal errors — and 500 errors.
Check your PHP version:
Test with a different PHP version:
Try switching to a different PHP version (e.g., from 8.3 to 8.1 or 8.0) and reload your site after each change. If the 500 error disappears on a specific PHP version, one of your plugins or your theme has a compatibility issue with newer PHP.
Check the plugin's changelog or contact the developer for an update that supports your PHP version.
Every web server maintains error logs that record exactly what went wrong and when. These are often the fastest way to diagnose a 500 error when debug mode isn't showing a clear message.
Via cPanel:
Via FTP:
Error logs are sometimes stored in your WordPress root directory or in a logs folder. Common filenames are error_log, php_error.log, or access_log. Look for lines containing PHP Fatal error, PHP Parse error, or AH01215 — these will tell you exactly which file and line caused the server to fail.
If you've worked through every fix above and the 500 error persists, the problem may be at the hosting infrastructure level — something outside your control as a site owner.
Contact your hosting provider and share:
A good hosting provider will check server-side error logs, resource usage, and server configuration to identify the root cause.
Once your site is back online, take these steps to prevent the 500 error from happening again:
| Likely Cause | Fix |
|---|---|
| Corrupted .htaccess | Rename it, regenerate via Settings → Permalinks |
| PHP memory limit | Add define('WP_MEMORY_LIMIT', '256M') to wp-config.php |
| Faulty plugin | Deactivate all plugins, reactivate one by one |
| Broken theme | Rename theme folder via FTP, switch to default theme |
| PHP fatal error | Enable WP_DEBUG to reveal the actual error |
| Wrong file permissions | Set folders to 755, files to 644 |
| Corrupted core files | Re-upload fresh WordPress core files |
| PHP version mismatch | Switch PHP version in hosting control panel |
| Unknown server error | Check server error logs or contact your host |
The 500 Internal Server Error looks serious — but in almost every case, it's a straightforward fix once you know where to look. Start with the .htaccess file, check your plugins and theme, and use debug mode to track down any PHP errors. You'll have your site back online faster than you think.
If you're not comfortable working with FTP or server files, or if the error keeps coming back, it may be time to bring in a WordPress professional. As a dedicated WordPress development company, we troubleshoot and resolve errors like this every day.
Contact us today and we'll get your site back online — fast.