WordPress 500 internal server error is one of the common WordPress errors you will encounter as a WordPress publisher.
This error is usually caused by something getting corrupted in your WordPress files or by an issue on your hosting provider’s server.
This error can be frustrating especially for WordPress beginners because it doesn’t tell you what the problem is. You’ll need to have a bit of patience and perseverance along with the basic WordPress troubleshooting skills to find and fix WordPress 500 internal server error.
We'll show you exactly what you need today in today's tip.
What is HTTP Error 500 - Internal Server Error?
The HTTP error 500 is a general server error that means that the server encountered a problem at the backend that it was unable to handle gracefully. Something has gone wrong, usually while executing a PHP or other code function that resulted in an unhandled exception, and the server cannot be more specific about what the problem is.
In reality, the 500 error is a catch-all exception message when it is unable to handle a situation that has arisen.
The reason for such an error being thrown can be:
- A bug or unexpected input / data going into a plugin causing it not to be able to handle the result
- A corrupted file, plugin or other server feature that is causing it to throw an error
- A misconfiguration in the server resulting in the webserver being unable to understand or correctly serve the visitor
- Hardware or software problems can also result in HTTP 500 server errors
The HTTP Error 500 is a standard status code defined in the HTTP protocol. Whilst many people are familiar with other HTTP errors such as 404 (not found) or 301 (redirect), few people understand the 500 server error.
In general, anything started with 5** means that a server error happened - a client tried to perform a valid request on the server, but the server had a problem fulfilling this request due to a problem on the server.
To paraphrase this using Wikipedia terminology
Response status codes beginning with the digit "5" indicate cases in which the server is aware that it has encountered an error or is otherwise incapable of performing the request.
Of course, if your website is running on WordPress, this means that the web server powering your site encountered an error on WordPress (or otherwise) where it was not able to fulfill the request.
If WordPress 500 internal server error is encountered, you’ll see a page like the below when accessing your website:
How to Fix the 500 Internal Server Error on Your WordPress Website
The two most common reasons for this error are a corrupted .htaccess file or another file, or a plugin or function has exceeded the server's PHP memory limit.
The .htaccess file in your WordPress directory can become corrupted after you install a plugin or make another change to your WordPress site. The WordPress 500 error is easily fixed in this case.
However, if you’re seeing a WordPress blank page instead of the above error message, it is a different issue.
Let’s take a look at some of the key issues that cause WordPress 500 internal server error and learn how to solve them. But before we do, we can take a look at this short video which explains the main issues which could cause this.
In case you’re not confident enough to solve the issue by yourself, you may find suitable WordPress developers who could help you diagnose it.
Check Server Log Files and Errors
CPanel Errors
While the front-end of your website might be throwing a vague http error 500, it is quite likely that in the backend, or in the Errors section of your shared hosting server, there are more details that can explain where the error is coming from.
The first thing you should do is visit the Errors section, either in CPanel or otherwise if you are using a customized hosting platform. If you can't see this, it's best to get in touch with your hosting company immediately.
Once you click here, you'll see a bunch of error messages. If your site is still throwing the HTTP 500 error, there should be a few error messages that might indicate the source of the problem.
Ensure that you are looking for entries that occur at round about the same time that the error started being thrown.
error_log
This is another file that might have some details about the error that is being thrown. This is the default PHP error log, and any errors should be going into this file. Open this file and check for any recent entries around the time that your site started throwing HTTP 500 internal server errors.
Other logs
While the above are the most common locations for log files, your specific website setup might be different, so have a look around in the file manager, and maybe search for logs files that could provide an indication of the problem.
Reasons for WordPress 500 internal server error
As said, there can be many reasons for WordPress 500 internal server error. Some of the main reasons are listed below.
- Corrupt .htaccess file
- PHP memory limit issues
- Issue caused by a faulty plugin(s)
- Corrupt WordPress core files
- Hosting problem on the web server
1. Corrupted or incorrect .htaccess file
If the problem happened because of a problem with the .htaccess file you'll probably be aware of it, because most likely you were tinkering with the website or performing some upgrades or modifications when suddenly the website starts throwing 500 internal server errors.
To troubleshoot your WordPress site for fixing internal server error, one of the first things you can do is fix, restore or create a new .htaccess file.
Usually, the .htaccess gets corrupted when you try to install a faulty plugin on your site or when you try to customize your website's .htaccess file and insert a (broken) command that the webserver is unable to handle.
You could also be trying to use a feature or function that your website does not support.
This fix for this is usually simple. The simplest solution is to remove any adjustments you have just made, or make sure that you are following the instructions correctly. If this does not work, you can fetch a version of the .htaccess file from a working version of your website.
Replace the version from the backup and your website should be restored.
Just replace your current .htaccess file with a new one. Most websites store a copy of the original .htaccess file as htaccess.txt.
The .htaccess file is typically found in the root directory. This is where you can see other important directories like wp-admin, wp-content, and wp-includes.
If you’re not seeing the .htaccess file in that location, you’ll need to ensure that all hidden files are viewable. This is typically done in the settings of the File Manager of your WordPress hosting account:
If you’re using FileZilla as your FTP client, go to the Server menu and click Force showing hidden files.
You should now be able to see .htaccess file if it was hidden.
Now, you’ll need to rename your .htaccess file. Once done, the next step is to create a new file.
Simply, open a text editor on your PC and copy the below code snippet and paste it.
# BEGIN WordPress
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Save it as a .txt file. Once done, upload the file to the root directory and rename it as .htaccess. You might need to reconfigure some additional settings you had in the previous file, such as redirects, or any other settings that had been enabled in the htaccess file.
2. Exceeding PHP memory limit
Similar to a corrupt .htaccess file, exhausting PHP memory limit is also a common issue that causes WordPress 500 internal server error.
To fix the issue, you’ll need to increase the PHP memory. Follow the below steps.
Open your wp-config.php file. You can find the file in the root directory where your .htaccess file is located.
Copy the below code snippet on it and save the file.
define('WP_MEMORY_LIMIT', '64M');
If this doesn't work, it may be the case that your memory needs to be increased in a different way.
You can try using this php.ini tweak to increase the memory:
memory_limit = 64M
Try doubling the memory. You should also discuss this with your hosting company since there could be some limitations.
If increasing the memory limit fixes your issue, this means you’ve fixed the problem temporarily. You still need to figure out what plugin or function is exhausting the memory limit. This could be due to a faulty plugin or a poorly coded theme function.
You may ask your hosting company to look into the server logs to help you figure out the reason for the cause.
Alternatively, try installing the P3 (Plugin Performance Profiler) plugin (which unfortunately is no longer updated) or Query Monitor that can detect plugins with slow queries (typically resulting in memory hogs). This plugin helps you to figure out which plugin is degrading the performance of your website and exceeding the memory limit.
3. Faulty plugin
If none of the above solutions solved your HTTP 500 error, probably the issue is caused by a faulty plugin you installed on your server.
Simply rename the plugins’ directory and check if fixes WordPress 500 internal server error. If renaming the directory fixes the issue, it indicates that one or more of your plugins is the reason for the problem.
To find the exact faulty plugin, first of all, reinstate the plugin directory’s name. This means all of your plugins are now activated. Now start renaming the folders of each plugin one-by-one to something like, plugin-old, until your website no longer throws the 500 error. When this happens you have found the faulty plugin.
Once you found it, get rid of that plugin from your website and report it to the plugin author.
4. Corrupted WordPress core files
If the above solutions don’t fix your problem, chances are it is caused by corrupted files.
In this case, you should download the latest WordPress and reupload wp-admin and wp-includes folder from a fresh WordPress install to your WordPress website.
If the problem is caused by corrupted files, reuploading core files should fix the issue.
5. Hosting provider problems
In case none of the above steps help you to find a solution for WordPress 500 internal server error, you’ll need to get in touch with your web hosting provider.
The quality of the response you receive for your support request differs between hosts. You'll need to let your host exactly what troubleshooting steps you have done to show them that you have already worked to fix the issue.
You should already have gone through all of the above steps before getting in touch with your host.
By looking at the server logs, they should be able to find what causes the issue.
Frequently Asked Questions
How do I fix Error 500 on WordPress?
Most Error 500 problems on WordPress are caused by common problems, such as misconfiguration of files, corrupted htaccess, or insufficient memory problems. First revert any changes you have just made, check the error logs and then start troubleshooting by following our guide.
What causes 500 Internal Server errors in WordPress?
500 internal server errors are usually caused by corrupted files, exceeding memory limit or misconfigured servers. If you have just performed a change, this should be easy to revert and fix your problem.