How to Fix the 500 Internal Server Error in WordPress
The 500 internal server error is an annoying error that lets you know there’s a serious problem with your site without actually telling you what it is. In short, it’s a generic HTTP status code that lets you know something’s going awry on the server that powers your site.
There are a number of different reasons why this issue might occur on a WordPress site. They include:
- Corrupted .htaccess file
- Faulty or poorly-coded plugin
- PHP memory limit reached
- Corrupted core files
- A problem on your server only your host can detect and/or fix
We’re going to go over how to troubleshoot internal server error issues step by step, but we need to go over how to use FileZilla to access your site’s files through an FTP server first as this issue likely has you locked out of your site’s WordPress dashboard.
Before you get started, test your site in another browser or on your smartphone. If you don’t see the internal server error, you may simply need to clear your browser’s cache.
Lastly, make sure you backup your site prior to attempting any of these steps.
How to Use FileZilla to Access Your WordPress Site’s Files
The 500 internal server error is one of many issues that can leave you with a blank screen, or the infamous “white screen of death,” displaying on your WordPress dashboard. Many of these instructions require you to access your site’s files via an FTP server because of this.
We’ll use FileZilla, a popular FTP client, to do this. You can download FileZilla here. Open the program once you install it on your system.
Click File in the menu at the top of FileZilla, and select Site Manager. Enter your site’s name to label your site, and enter the following as the settings:
- Host – Your domain example.com
- Protocol – FTP – File Transfer Protocol
- Encryption – Only use plain FTP (insecure)
- Logon Type – Normal
Use the username and password you use to access your file system through your host. If your host uses cPanel, use the username and password you use to access cPanel.
Open the Transfer Settings tab, and tick the box for Limit Number of Simultaneous Connections. Enter 8 as the number.
Click Connect to connect to your site’s file system through the FTP server.
Internal Server Error Issues Caused by Corrupted .htaccess Files
The .htaccess file is one of the most essential files that exist on your site. It can become corrupted at times for reasons unknown, which will cause the 500 internal server error to run. All we need to do is rename the file to see if it’s corrupted.
Open your site’s root directory in FileZilla. This is typically public_html. .htaccess is a dotfile. Dotfiles are sometimes hidden by default. If you don’t see any dotfiles in your root directory, click Server in the menu at the top, and select Force Showing Hidden Files.
Find your .htaccess file, right-click on it, and rename it to “.htaccess.bak”.
Click the Refresh button at the top of FileZilla. Refresh your site. If you no longer see the internal server error, your .htaccess file was corrupted. Since we renamed the bad one, we need to create a new one.
Enter your WordPress dashboard now that the smoke has cleared. Head to the Settings, and open the Permalinks page. Scroll down to the bottom, and click Save Changes to create a new .htaccess file.
If the internal server error does not disappear, continue to the next troubleshooting step.
Causes #2: Faulty or Poorly-Coded Plugin
If you can access your WordPress dashboard, deactivate your plugins one by one, refreshing your site after each deactivation. If the 500 internal server error disappears, it was likely caused by the last plugin you deactivated.
If you cannot access your dashboard, open your site in FileZilla, open your root directory, and open your wp-content folder. Rename the plugins folder to anything you want to deactivate all of your plugins, and refresh the FTP client. Refresh your site.
If the error disappears, it was caused by a faulty plugin. Enter your dashboard, activate each plugin one by one, refreshing your site after each activation.
Once you find the faulty plugin, delete it. Replace it with something else if it’s function is essential to your site. Otherwise, you may need to consult the plugin’s developer.
Cause #4: PHP Memory Limit Reached
PHP memory plays a large part in what powers a website, and it has its limitations in a similar way the system or phone you’re using to read this post has its own memory limitations. When you reach your limit with PHP memory, you’ll experience a myriad of issues, one of them being internal server errors.
You’ll ultimately need to ask your host to increase your limit if you do indeed have memory limit issues, but we can at least raise the limit within WordPress to test if this is the issue at hand. All it requires is adding a bit of code to your site. Again, make sure you create a backup prior to changing any code on your site.
Only select one of these options, or try them one by one, reversing the changes you made to your site’s code each time:
Adding code to your wp-config.php file:
Find your wp-config.php file in your root directory. Open it as a text file on your computer, and add this code beneath the opening <?php tag:
Add this code to your php.ini if you have access to it:
memory_limit = 64M
Add this to your .htaccess file:
php_value memory_limit 64M
Create a php.ini file using a text editor. Add this code to it, and upload it to your wp-admin folder:
Refresh the FTP client after you upload one of these codes to your site, and refresh your site to test it. If you no longer see internal server error, you likely reached your PHP memory limit.
Keep in mind that changing the code is only a temporary fix, and you need to consider upgrading your hosting package immediately as this little incident is a warning of your current server being incapable of powering your site.
If you still see the internal server error, remove the code from your site, and move on.
Cause #5: WordPress Core Files are Corrupted
Corrupted WordPress core files can be a pretty dangerous and fairly frustrating issue to have on your site. Thankfully, all we need to do is re-upload the two core folders from a fresh version of WordPress.
Again, backup your site prior to making these changes. It’s important that you know which version of WordPress your site is running as you’ll need to grab the folders that match your version of WordPress.
Go to WordPress.org, and download the latest release if your site is running it. Click Release Archive from the left-hand menu, and select your version of WordPress if your site is running an older release.
Extract the file after you download it. Open your root directory. Upload the wp-admin and wp-includes from your fresh version of WordPress to your root directory, overwriting each original folder.
Refresh the client, and refresh your site. If the 500 internal server error is gone, it was caused by corrupted core files, and the issue is now fixed. If it’s still there and you’ve tried everything else, you have a big issue on your hands, and it may be time to contact your host.
Cause #6: Internal Server Error Caused by Your Host’s Server
If you’ve gone through all of these troubleshooting steps and cannot find a clear issue and solution to your problem, you’re left with one option – contacting your host.
Your host has server logs they can look through to see if there are any issues running on the server(s) that powers your site. Most internal server error issues occur within WordPress files, so it’s highly recommended you go through all of these troubleshooting steps prior to contacting your host. It’ll give you a chance to defend yourself if your host insists the problem is not on their servers.
Keep in mind this may be a wake-up call, as I stated in the PHP memory issue section. If your site has grown to the point where it’s exceeding its limits, you may be looking at a hosting upgrade. This may force you to choose between upgrading to a higher quality hosting plan with your current host or transferring your site to a new host altogether.
If you’ve made it to the end, you’ve found out why the 500 internal server error is one of the most frustrating issues that can occur on your WordPress site. It has no clear cause, giving it no clear solution, and it replaces your site with a blank screen, making for a pretty tense situation when you need to find a solution quick to get your site back online.
Contacting your host is a last resort option. It should not be your first. Go through each of these tests one by one to see if you can pinpoint the issue yourself, and then move forward with fixing it. Always remember to backup your site prior to making any changes.
If you want to prevent issues with corrupted files, make sure you backup your site on a regular basis, and install updates as soon as they’re available. Updates can break sites, so backing up yours up prior to updating it can save it if something goes awry.
It may also be worth checking to see if your plugin(s) and theme are compatible with the version of WordPress you’re running before you install them or install any updates for them, and vice versa.
If it’s your host you’re having issues with, check out our guide on how to choose the best hosting provider for WordPress.