How to Fix 500 Internal Server Error
WordPress Troubleshooting & Fixes
How to Fix 500 Internal Server Error in WordPress
The 500 Internal Server Error is one of the most common—but also most confusing—WordPress issues. It shuts down your entire website and admin area without telling you the real cause. This full guide explains every major reason and shows how to fix the 500 error step-by-step, even if you’re not technical.
1
What Causes the 500 Internal Server Error?
This error is server-side and usually related to misconfigurations.
The 500 error mostly appears due to:
- Corrupted .htaccess file
- Faulty plugin or plugin update
- Faulty theme functions
- PHP memory limit exhaustion
- Incorrect file permissions
- Corrupted core WordPress files
- Server misconfigurations (Apache / PHP)
Let’s fix it one by one.
2
Step 1: Fix the .htaccess File (Most Common Fix)
The .htaccess file controls permalinks and redirects. If corrupted → 500 error.
Steps:
- Login to File Manager (or FTP)
- Find the file: public_html/.htaccess
- Rename it to .htaccess-old
- Reload your site
If your site loads → the .htaccess file was the problem.
Generate a new .htaccess:
- Go to wp-admin → Settings → Permalinks
- Click Save without changing anything
WordPress creates a fresh, clean .htaccess file.
3
Step 2: Increase WordPress PHP Memory Limit
The 500 error often happens when memory runs out.
Edit wp-config.php and add:
define( 'WP_MEMORY_LIMIT', '512M' );
You may also update PHP memory in:
- php.ini
- .htaccess
- cPanel → MultiPHP INI Editor
Common signs of memory issues:
- 500 errors on admin pages
- WooCommerce checkout failing
- Elementor not loading
- Images not uploading
4
Step 3: Disable All Plugins (Major Cause)
A faulty plugin update can break your entire site.
If you cannot access wp-admin:
- Go to /wp-content/
- Rename plugins to plugins-disabled
- Refresh your site
If the site works → a plugin is causing the 500 error.
Next:
- Rename the folder back to plugins
- Disable plugins one by one
- Find the faulty plugin
5
Step 4: Switch Temporarily to a Default Theme
A broken theme file can trigger a 500 error.
Steps:
- Go to /wp-content/themes
- Rename your active theme
- WordPress automatically switches to a default theme
If the site loads → theme was causing the error.
6
Step 5: Replace Core WordPress Files
Your WP core files may be corrupted.
Steps:
- Download WordPress from wordpress.org
- Upload these folders to your hosting:
- wp-admin
- wp-includes
Do NOT replace wp-content or wp-config.php.
This fixes corrupted installation files safely.
7
Step 6: Fix Incorrect File Permissions
Wrong permissions can stop your server from executing files.
Correct file permissions:
- Folders: 755
- Files: 644
- wp-config.php: 600 or 640
Fixing permissions often removes 500 errors caused by blocked access or server restrictions.
8
Step 7: Check PHP Version & Server Settings
Incompatible PHP versions can break plugins/themes.
Go to your hosting panel → PHP selector → choose:
- PHP 8.1 (recommended)
- PHP 8.0 (best compatibility)
Avoid:
- PHP 5.x (obsolete & insecure)
- PHP 8.3 (not fully supported by all plugins)
9
Step 8: Check Server Error Logs
This reveals the exact cause instantly.
You can find logs in:
- cPanel → Errors
- public_html/error_log
- LiteSpeed logs (if applicable)
- Server logs (Cloud hosting)
Look for:
PHP Fatal ErrorUncaught ExceptionModSecurity blockedMemory exhaustedPremature end of script headers
This helps pinpoint the exact plugin/theme causing the issue.
10
Step 9: Contact Hosting Support (If None of the Above Work)
500 errors can sometimes be due to server-level failures.
Your hosting provider may need to:
- Restart Apache/LiteSpeed
- Fix ownership (chown)
- Whitelist rules blocked by ModSecurity
- Increase server memory limits
- Fix a misconfigured PHP handler
Shared hosting often triggers 500 errors when overloaded. Upgrading hosting may be required.
Want a WordPress Website Without Errors?
All SiteCrafted ready-made websites include hosting optimization, server configuration, and full error protection systems—so you never face 500 errors again.









