
Nothing ruins your morning like opening your site to find a blank page screaming “500 Internal Server Error”. The good news: learning to fix WordPress 500 internal server error problems is mostly a process of elimination, and nine times out of ten one of the fixes below solves it. Work through them in order — each step is safe, and you can stop as soon as your site is back.
What the 500 error actually means
A 500 Internal Server Error is your server’s way of saying “something broke, but I’m not telling you what”. Unlike a white screen or a database error, it gives you no clues by itself. The most common culprits are a corrupt .htaccess file, a plugin or theme conflict, an exhausted PHP memory limit, or a PHP version problem. The steps below tackle them from most to least likely.
If you are seeing a completely blank page instead of an error message, see our guide to the WordPress white screen of death — the fixes overlap but the order differs.
The 9 proven fixes
1. Regenerate your .htaccess file
A corrupt .htaccess file is the single most common cause. Connect via FTP or your host’s File Manager, rename .htaccess to .htaccess_old, then reload your site. If it works, go to Settings → Permalinks in wp-admin and click Save Changes — WordPress will generate a fresh, clean .htaccess for you.
2. Disable all plugins
A faulty plugin update is the second most likely culprit. You cannot reach wp-admin, so do it by force: via FTP or File Manager, rename the /wp-content/plugins/ folder to /wp-content/plugins_old/. This deactivates every plugin at once. If the site loads, rename the folder back and reactivate plugins one by one until you find the offender.
3. Switch to a default theme
If plugins were not the problem, a theme conflict might be. Rename your active theme’s folder inside /wp-content/themes/. WordPress will fall back to a default theme like Twenty Twenty-Five. If the error disappears, your theme needs an update or a fix from its developer. A clean, well-coded WordPress theme avoids most of these conflicts in the first place.
4. Increase the PHP memory limit
Memory exhaustion is a classic 500-error trigger, especially on shared hosting. Open wp-config.php and add this line just above the “That’s all, stop editing!” comment:
define( 'WP_MEMORY_LIMIT', '256M' );
Save, upload, and reload. If 256M does not work, ask your host what the server-level limit is — some hosts cap it lower no matter what you set.
5. Check your PHP version
Running an outdated (or bleeding-edge) PHP version can break WordPress outright. In your hosting control panel, check which PHP version your site uses. WordPress currently runs best on a recent stable PHP release; switch to the version your host recommends, wait a minute, and test again.
6. Verify file permissions
Wrong permissions can lock the server out of your own files. The safe defaults are 755 for folders and 644 for files — never 777. In your FTP client, check the numeric permissions on wp-admin, wp-includes and wp-content. Reset anything unusual to 755/644.
7. Re-upload core WordPress files
If a core file was corrupted during an update, the whole site can fall over. Download a fresh copy of WordPress, unzip it, and re-upload the wp-admin and wp-includes folders, overwriting the existing ones. Do not touch wp-content — your themes, plugins and uploads live there.
8. Turn on debugging to find the real error
Still stuck? Make WordPress tell you what is actually breaking. In wp-config.php, change WP_DEBUG to true and add:
define( 'WP_DEBUG_LOG', true );
Reload the site, then read /wp-content/debug.log. The last fatal error in the log usually names the exact plugin, theme or file responsible. Remember to turn debugging off again afterwards — a public debug log is a security risk.
9. Ask your host (with evidence)
If nothing above worked, the problem may be server-side: a crashed PHP process, a full disk, or a mod_security rule. Contact your host’s support and tell them exactly which steps you already tried. Hosts resolve these tickets far faster when you arrive with evidence instead of just “my site is down”.
Preventing the next 500 error
Most 500 errors are preventable with boring maintenance:
- Keep plugins minimal — every extra plugin is another potential conflict. Audit yours against a curated list of reliable WordPress plugins and delete what you do not use.
- Update one thing at a time, and take a backup before major updates.
- Follow a regular WordPress maintenance checklist so small problems get caught before they become outages.
- Use a staging site for big changes so a bad update never touches your live site.
Conclusion
To fix a WordPress 500 internal server error, work the list: regenerate .htaccess, disable plugins, check the theme, raise the memory limit, verify PHP, fix permissions, re-upload core files, enable debugging, then call your host. One of these steps resolves the vast majority of cases — and a few minutes of regular maintenance will keep you from meeting the error again.
