QUICK ANSWER
The WordPress 500 Internal Server Error means something went wrong on the server, but the server is not specific about what. The most common causes are a corrupted .htaccess file, a plugin conflict, exhausted PHP memory, or incorrect file permissions. In 90% of cases you can fix it yourself in under 10 minutes.
Fastest fix: Regenerate your .htaccess file first. It is the cause in the majority of 500 error cases and takes 60 seconds to fix.
The 500 Internal Server Error is one of the most frustrating WordPress errors because it tells you almost nothing. Unlike the database connection error (which names the problem) or the White Screen of Death (which points to PHP), a 500 error is the server’s way of saying “something went wrong, but I’m not telling you what.”
This guide gives you every fix, in the right order, so you can get your site back online as fast as possible.
TIP Work through the fixes in order — most people fix this error at Fix 1 or Fix 2 and never need to go further.
Table of Contents
- What causes the WordPress 500 Internal Server Error?
- Fix 1: Regenerate the .htaccess file (most common fix)
- Fix 2: Deactivate all plugins
- Fix 3: Increase the PHP memory limit
- Fix 4: Check your error logs for the real cause
- Fix 5: Re-upload WordPress core files
- Fix 6: Fix file and folder permissions
- Fix 7: Contact your hosting provider
- 500 error only on wp-admin — special case
- Frequently asked questions
What Causes the WordPress 500 Internal Server Error?
Unlike most WordPress errors, a 500 error can come from several completely different sources. Here is a quick overview before we dive into the fixes:
| Root Cause | How Common | Fix to Use |
| Corrupted .htaccess file | Very common (40%) | Fix 1 |
| Plugin or theme conflict | Common (25%) | Fix 2 |
| PHP memory exhausted | Common (15%) | Fix 3 |
| PHP timeout or fatal error | Less common | Fix 4 (check error log) |
| Corrupted WordPress core files | Rare | Fix 5 |
| Wrong file permissions | Rare | Fix 6 |
FIX 1: Regenerate the .htaccess File Difficulty: Easy | Time: 60 seconds
The .htaccess file controls how your server handles WordPress URLs. If this file gets corrupted — for example after a failed plugin update, a WordPress core update, or a server migration — the server throws a 500 error on every page request.
This is the single most common cause of the 500 error, and it is also the easiest to fix.
How to fix it
- Log in to your WordPress admin dashboard
- Go to Settings > Permalinks
- Do not change anything — simply click the Save Changes button at the bottom
- WordPress will automatically regenerate a fresh, clean .htaccess file
- Reload your site — if the 500 error is gone, you are done
If you cannot access wp-admin (admin also shows 500 error):
- Connect to your site via FTP or cPanel File Manager
- Navigate to your WordPress root folder
- Find the file named .htaccess (it is a hidden file — enable Show Hidden Files in your FTP client or File Manager settings)
- Rename it to .htaccess_backup
- Create a new blank file named .htaccess
- Paste this default WordPress .htaccess content into it:
# BEGIN WordPress
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
- Save the file and reload your site
NOTE If your WordPress is installed in a subfolder (e.g. yourdomain.com/blog/), the RewriteBase and RewriteRule paths need to include that subfolder. Contact WPFixLab in the comments if you need help with this.
FIX 2: Deactivate All Plugins Difficulty: Easy | Time: 3 minutes
If regenerating .htaccess did not fix the error, a plugin is the next most likely cause. A poorly coded plugin, an incompatible plugin version, or two plugins that conflict with each other can all trigger a 500 error.
If you can access wp-admin:
- Go to Plugins > Installed Plugins
- Select all plugins using the checkbox at the top
- Choose Deactivate from the Bulk Actions dropdown and click Apply
- Reload your site — if the 500 error clears, a plugin is the cause
- Reactivate plugins one by one, reloading after each, until the error returns
- The last plugin you activated before the error came back is the culprit — leave it off and contact its developer
If you cannot access wp-admin:
- Connect via FTP or File Manager
- Navigate to /wp-content/
- Rename the plugins folder to plugins_disabled
- Reload your site — if it works, a plugin is the cause
- Rename the folder back to plugins
- Then rename individual plugin folders inside it one at a time to isolate the bad plugin
TIP Also try switching to a default WordPress theme (Twenty Twenty-Five) via FTP by renaming your theme folder — themes can also trigger 500 errors if they contain a PHP fatal error.
FIX 3: Increase the PHP Memory Limit Difficulty: Easy | Time: 2 minutes
When PHP runs out of memory mid-execution, the server can return a 500 error instead of a more descriptive message. This is especially common after installing a new heavy plugin, updating WooCommerce, or importing a large amount of data.
Open your wp-config.php file and add these two lines just above the “That’s all, stop editing!” comment:
define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
define( ‘WP_MAX_MEMORY_LIMIT’, ‘512M’ );
Save the file and reload your site. If the error clears, memory was the cause. See our full guide on increasing PHP memory limit in WordPress for all five methods including cPanel.
NOTE WP_MEMORY_LIMIT controls front-end memory. WP_MAX_MEMORY_LIMIT controls wp-admin memory. Set both to be safe.
FIX 4: Check Your Server Error Logs for the Real Cause Difficulty: Intermediate | Time: 5 minutes
If the first three fixes did not resolve the error, you need to look at your server error logs. These logs contain the exact PHP error or server message that is triggering the 500 response — information that WordPress hides from the browser by default.
Method A: Enable WordPress debug mode
- Open wp-config.php
- Find this line:
define( ‘WP_DEBUG’, false );
- Replace it with:
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );
- Save the file and reload your site
- Check /wp-content/debug.log — look for lines beginning with PHP Fatal error or PHP Parse error
- Fix the identified issue (usually deactivate the named plugin or theme), then set WP_DEBUG back to false
Method B: Check the server error log in cPanel
- Log in to cPanel
- Go to Metrics > Errors (some hosts call it Error Log)
- Look for the most recent entries — they will show the exact file and line number causing the error
- Common entries to look for:
- PHP Fatal error: — points to a specific plugin or theme file
- mod_security — your server’s firewall is blocking a request
- AH00124: Request exceeded the limit of — PHP execution timeout
WARNING Always disable WP_DEBUG after fixing the error. Leaving it on can expose sensitive information to visitors.
FIX 5: Re-upload WordPress Core Files Difficulty: Medium | Time: 10 minutes
A corrupted WordPress core file — usually caused by an incomplete update or a bad file transfer — can produce a 500 error on every request. Re-uploading the core files replaces only the WordPress engine, not your content, plugins, or settings.
- Download the latest version of WordPress from wordpress.org
- Unzip the file on your computer
- Delete the wp-content folder from the unzipped package — do NOT upload this
- Connect via FTP to your site root
- Upload all remaining WordPress files, choosing Overwrite when prompted
- Reload your site
WARNING Never delete your live wp-content folder. Only upload the new core files on top of the existing installation. Your content and plugins live inside wp-content and must not be touched.
FIX 6: Fix File and Folder Permissions Difficulty: Medium | Time: 5 minutes
Incorrect file or folder permissions can prevent the server from executing PHP files, resulting in a 500 error. This is most often seen after a server migration or a hosting account transfer.
The correct WordPress permissions are:
- Folders: 755
- Files: 644
- wp-config.php: 600
How to fix via FTP (FileZilla)
- Connect via FTP and navigate to your site root
- Right-click the root folder and select File Permissions
- Set the value to 755, tick Recurse into subdirectories and Apply to directories only, then click OK
- Right-click the root folder again and select File Permissions
- Set the value to 644, tick Recurse into subdirectories and Apply to files only, then click OK
- Reload your site
FIX 7: Contact Your Hosting Provider Difficulty: Easy | Time: Varies
If all six fixes above did not resolve the error, the problem is at the server level. Common server-side causes include:
- A mod_security rule blocking your requests (common on shared hosting — host can whitelist your site)
- PHP-FPM or FastCGI misconfiguration after a server update
- Server-side resource limits (CPU or RAM) set by the host that are being exceeded
- An Apache or Nginx configuration error introduced by the host
When you contact support, share these details to speed up the resolution:
- The exact fixes you have already tried
- When the 500 error first appeared and what changed before it
- Any relevant entries from your debug.log or cPanel error log
- Whether the error appears on front end, admin, or both
Special Case: 500 Error Only on wp-admin
If your front end loads fine but wp-admin shows a 500 error, the issue is almost always one of these three things:
- An admin-only plugin (security plugin, dashboard widget, admin menu plugin) has a PHP error — deactivate plugins via FTP as described in Fix 2
- The wp-admin/.htaccess file is corrupted — delete it via FTP (the main .htaccess in your root folder handles admin routing in most cases)
- A PHP version mismatch after a host update — ask your host to confirm which PHP version your account is running and whether it changed recently
TIP The 500 error only in wp-admin after a WordPress or plugin update almost always means a plugin is not compatible with the new version. Fix 2 (plugin deactivation) resolves this in the majority of cases.
Frequently Asked Questions
What is the difference between a 500 error and the WordPress White Screen of Death?
Both can be caused by similar underlying issues (plugin conflict, PHP memory, corrupted files), but they look different. A 500 Internal Server Error shows a browser error page with the message “500 Internal Server Error”. The White Screen of Death shows a completely blank white page with no message at all. The fixes in this guide work for both, but check our dedicated White Screen of Death guide if you see a blank page with no error text.
My site was working fine and suddenly shows a 500 error — what happened?
The most common trigger for a sudden 500 error is a WordPress update, plugin update, or theme update that introduced a PHP conflict. Start with Fix 2 (deactivate plugins) and Fix 1 (regenerate .htaccess) — one of these will resolve it in almost every case of a sudden 500 error after an update.
Can the 500 error affect my Google rankings?
If your site returns 500 errors for a short period (under a few hours), Google’s crawlers will retry and your rankings are typically not affected. If the 500 error persists for more than 24 hours, Google may start dropping pages from the index. Fix the error as quickly as possible and your rankings will recover once the site is back online.
I fixed the 500 error but it keeps coming back — why?
A recurring 500 error usually points to a resource limit (memory or CPU) being repeatedly hit by a specific process — often a plugin running automated tasks like backups, image optimization, or security scans. Check your error log (Fix 4) during or just after one of the recurring episodes to identify the exact PHP file responsible. You may need to schedule that plugin’s tasks at a lower frequency or switch to a host with higher resource limits.
Does the 500 error mean my site was hacked?
Rarely, but it is possible. Malware or injected code can cause PHP fatal errors that produce a 500 response. If you fixed the error by deactivating a plugin that you did not recently install or update yourself, or if your error log shows files in unusual locations (outside wp-content or wp-includes), run a malware scan using Wordfence or MalCare.
How do I prevent 500 errors in future?
Three habits eliminate almost all 500 errors: always test plugin and theme updates on a staging site before applying to live; keep automated backups running daily with UpdraftPlus; and enable uptime monitoring with UptimeRobot so you know within minutes when an error occurs. Most 500 errors on well-maintained sites are caused by an update going wrong — staging sites catch these before they hit your visitors.
Wrapping Up
The WordPress 500 Internal Server Error sounds serious but is almost always fixable in under 10 minutes. Regenerate your .htaccess file first (Fix 1) — it resolves this error in around 40% of cases and takes 60 seconds. If that does not work, deactivate your plugins (Fix 2). Those two fixes together cover the vast majority of 500 errors.
Still stuck? Drop your error log output in the comments below and the WPFixLab team will help you diagnose it.
