Troubleshooting an HTTP 500 internal server error is like solving a mystery.
You don’t know what exactly happened or why it happened — all you know is that something’s wrong and you need to fix it.
To guide you through the hassle of troubleshooting the dreaded HTTP 500 internal server error, let’s go over what it exactly means and its most common causes and solutions.
What is an HTTP 500 internal server error?
An HTTP 500 internal server error means your web server is experiencing problems, but it can’t pinpoint the specific error or its root causes. When this happens, your website will serve up a general internal server error web page to your site’s visitors.
Here’s what your 500 error page might look like in your browser:
How to Fix a 500 Internal Server Error
Unlike other server-side errors like a 502 code or a 503 code, a 500 internal server error is it doesn’t immediately tell you what the problem is, nor does it tell you how to fix it. If the error persists for too long on your site, it could even negatively impact your SEO.
So, let’s dive into a few potential causes of the error. Then, we’ll present some solutions so you can try to fix the issue.
Potential Causes of a 500 Internal Server Error
A 500 internal server error is, as the name implies, a general problem with the website’s server. More than likely, this means there’s an issue or temporary glitch with the website’s programming.
Some potential causes of a 500 internal server error include:
- Corrupted or broken .htaccess file
- A permissions error
- Faulty third-party plugins or themes
- The PHP memory limit being exceeded
Fortunately, there are a few effective solutions for fixing most of these problems.
If You’re Trying to Load a Page with a 500 Internal Server Error:
1. Refresh the page.
This might seem obvious, but if it’s a temporary loading issue, you might find success if you refresh the page. Before trying anything else in this list, reload the page and see what happens.
2. Come back later.
Since the error is on the server side, I’m willing to bet the website owners are working as quickly as possible to resolve the issue. Give it a few minutes or up to an hour or so, and then reload the URL and see if the development team has fixed the issue.
3. Delete your browser’s cookies.
If clearing the browser history doesn’t work, you might try deleting your browser’s cookies. If the cookies are associated with the error-prone webpage, deleting the cookies might help reload the page.
4. Paste your URL into the website “Down for Everyone or Just Me.”
Head to downforeveryoneorjustme.com and paste in the URL where you’re seeing the internal server error. You’ll either be told that the website is only down for you, or that the website is down for everyone.
If it’s a problem with your server, this should help assuage any concerns that it’s an issue with your own computer.
If the 500 Internal Server Error is on Your Own Website:
1. Deactivate a plugin or theme.
Newly activated software, add-ons, or third-party scripts might be conflicting with your current server configuration. To determine this, try (carefully) deactivating or uninstalling your software add-ons one at a time to identify what exactly is causing the internal server error.
If you run a WordPress website, this is easy to do with plugins. From your dashboard, choose Plugins > Installed Plugins, then deactivate the first plugin. If the error resolves, you know this plugin is part of the issue. Reactivate the first plugin, then repeat this deactivate-reactivate process one at a time for all plugins to determine which ones are causing your error.
You might find that having fewer active plugins on your site helps things run more smoothly.
Alternatively, if you just upgraded your software, your current plugins or themes might not be compatible with the new upgrade. Deactivating plugins or themes one at a time until the error disappears is the best way to find the root cause of your problem.
2. Use a plugin like WP Debugging to identify the issue.
If your site is powered by WordPress and you’re comfortable with WordPress debugging processes, consider installing a plugin to help you identify the issue with your server.
The debug plugin WP Debugging, for instance, helps you figure out exactly what’s wrong with your site, which will result in a speedier fix.
3. Ensure your PHP setup is configured correctly.
If the issue is related to a PHP timeout, consider creating timeout rules or error handling in your script to resolve the issue. Here’s a full list of php.ini directives to configure your PHP setup.
Additionally, wrong permissions on a file or folder that has a script, like a PHP or CGI script, won’t allow the script to run. Check your permissions and make sure you set them correctly on your server.
4. Check the code for your site’s .htaccess file.
Incorrect coding or improper structure with your .htaccess file could be the reason you’re seeing the 500 internal error. The .htaccess file helps you manage how long resources should be stored in a browser’s cache. Try editing the file if you’re seeing a 500 internal server error.
To locate your .htaccess file, access your website files through a file manager like cPanel or via FTP/SFTP. The file will probably be located in your public_html directory. There’s a good chance your server will hide this file from view by default and you’ll need to toggle hidden files on to see it.
Coding errors in .htaccess and custom scripts can also cause an HTTP 500 internal server error.
5. Ensure your new software is installed correctly.
Finally, check to see if your recently installed or upgraded software actually failed to install or upgrade. To refresh your software, check the vendor’s website for instructions.
Last Resort: Ask a Server Administrator for Help
If troubleshooting popular software problems or debugging server-side scripts doesn’t fix your HTTP 500 internal server error, you should read about the most common causes for this type of issue in your server’s documentation — an HTTP 500 internal server error can occur in different operating systems for a multitude of reasons.
You can also ask your service provider to access your error logs and find evidence for the root cause of your problem.
Internal server errors are irritating because they’re unhelpful — it’s basically the web server’s way of saying, “Eh, I’m not sure.” Hopefully, one of the above steps will resolve the problem so you can get back to life as usual.
Editor’s note: This post was originally published in October 2018 and has been updated for comprehensiveness.