What Is 'HTTP Error 500 - Internal Server Error' and How to Fix It?
Table of Contents
The “HTTP 500 Internal Server” error is quite general as it can be caused by a broad range of issues. Because of that, you may stumble upon it quite often.
This article will explain the “HTTP Error 500” and how to fix it.
The HTTP status code “500 – Internal Server Error” is one of the many 5.X.X. HTTP error codes (500, 502, 503, 504, etc.). Each of them specifies a different problem but the common denominator they share is that they tell you something is wrong with the website’s server.
In other words, the hosting server can’t determine the exact problem and display a more specific message. Instead, it responds with the error “500 Internal Server Error” which means that it’s not clear what’s wrong.
You may see different message variations since many websites and web servers customize the error page.
Some variations & examples of the error message include:
- 500 Internal Server Error
- Internal Server Error 500
- HTTP Error 500
- HTTP Status 500 – Internal Server Error
- Error 500 Internal Server Error
- 500 Error
- 500. That’s an error
Apart from the text, the page’s look may vary for different websites. Below you can see a generic version of the “Internal Server Error” page.
Other times, the page may have a customized design, as seen in the following image.
These are only a few examples of the error page and you can see it in countless variations. Regardless of how the page looks, it always has the same meaning – there is a problem that the server can’t pinpoint, and it prevents you from loading the website.
What are the common problems that can cause HTTP 500 Internal Server Error?
Although the error definition states the issue is from the server, that’s not always the case. Some of the common problems that can cause the error are:
- Corrupted browser cache
- Temporary connectivity issues
- Syntax errors or incorrect rules in the website’s .htaccess file
- Incorrect file and folder permissions
- Wrong PHP version for the website
- Corrupted .htaccess file
- Corrupted website’s database
- Problems with WordPress themes and plugins
- Exhausted PHP memory limit on the website
- Corrupted WordPress core files
- Large files on your website
- Problems with the MySQL server
How to Fix the “500 Internal Server” Error?
As you can see from the list above, the error’s origins are quite diverse. Since the error page will not clearly indicate the problem, you may need to troubleshoot a few of the possible causes until you find the culprit.
How to Fix 500 Internal Server – Video Tutorial
We will go over most of the eventual problems and their solutions.
How to Fix the “HTTP Error 500” as a visitor?
As a visitor, the only thing you can do is check if a connectivity issue from your end causes the error. You can also apply the following actions as a website owner since these are the quickest checks. If the error is caused by a local problem from your end, the steps below can save you a lot of time from troubleshooting.
Reload the page
The “HTTP Error 500” may be visible only for you, in case there was a brief connectivity problem. The website itself may be working fine, but you might have tried to access it when there was a momentary downtime, or your network failed to establish a connection to the website’s server.
Try reloading the page in the same browser with the Reload button or by pressing the keyboard shortcut Command+R for Mac, or F5 (Control+F5) for Windows.
If the website loads correctly, the issue is only temporary, and you can stop troubleshooting.
Clear your browser cache and cookies
When the website doesn’t open after reloading, your browser might be keeping expired or corrupted cache files and cookies. Reloading the page will not delete them, so you must clear them manually.
Read this guide on clearing cache and cookies in desktop browsers for detailed instructions.
Check these articles on deleting the cache on an Android phone or iPhone, if you use a mobile device.
Alternatively, you can test opening the page from another browser. For instance, if you use Chrome, try Firefox or vice versa.
After clearing the browser’s cache, reload the page to see if that solves the problem. If not, proceed with the next step.
Visit the website using another network
The connectivity problems causing the “HTTP 500 Error” may happen across your entire network. In this case, you will probably see the error on any device on this network.
To test if this is the problem, switch to another network. For instance, if you use a mobile phone connected to Wi-Fi, switch to mobile data.
How to Fix the HTTP 500 Internal Server Error from the website?
In the best-case scenario, the steps mentioned above will fix the problem. However, if the error persists, you may need to dig deeper into the issue since the error stems from the website itself.
As a site owner or webmaster, there are several checks you can do that can solve the “500 Internal Server Error.”
Check the Error Logs of the Website
In many cases, misconfigured files or scripts are the sources of the website’s errors. The error logs can help you identify them more easily.
Typically, you should have such logs in your hosting’s control panel. SiteGround users can find the Error log in the website’s Site Tools.
To access it, navigate to the Websites section in your Client Area. Open the Site Tools of the respective site, select Statistics, and click on Error Log.
You will see the most recent errors on your website that the server detected. Each error will be recorded with a few key pieces of information:
- The date and time of the error.
- Description of the error.
- Information about which folder or file is possibly generating the error.
Below, you can see an error log indicating a problem with the .htaccess file.
This record indicates that the problem is from the .htaccess file located in the root folder of the website. It also specifies that the error is related to a <IfModule> missing argument, which means there is a syntax error.
Using this information, you can navigate to the specified folder from File Manager, edit the .htaccess file and correct the syntax error.
Keep in mind that the Error log records errors related to the server configuration. Errors caused by PHP misconfiguration and scripts are not recorded, as they happen on the application level.
PHP errors are recorded in php_errorlog. It is generated automatically in the folder of the offending PHP file. On SiteGround’s hosting, the PHP error log is active by default. If you have previously deactivated it or your hosting hasn’t enabled it, read this guide on how to enable error reporting in a PHP script.
To inspect the PHP error log, you can use File Manager or FTP client. Navigate to the root folder, if the error is caused by a script located in the root folder. Open the file php_errorlog, where you can examine the errors.
The php_errorlog shows general PHP errors. However, you may need a more detailed log of the problem. If you have a WordPress website, you can also enable the debug log for WordPress that can show more information. For detailed steps on how to enable the WordPress debug log, see this guide.
Reset File and Folder Permissions
Another common problem that can cause the “HTTP 500 Error” is incorrect file and folder permissions on your website. If the permissions prevent visitors from opening the critical website’s files and folders, they may see the error page.
The standard permissions are 644 for files and 755 for folders. You can change them from the File Manager in your hosting panel or from an FTP Client.
For setting the permissions for WordPress sites, SiteGround clients can use the Reset Permissions tool for WordPress in Site Tools.
If your website is using another type of application, read this guide on how to change permissions for files and folders from File Manager.
Alternatively, if your hosting’s panel doesn’t have similar tools, you can change permissions from SSH or from an FTP Client.
Change the PHP version
An incorrect PHP version on your website may cause PHP scripts to time out or produce fatal errors. As a result, the website may return the “HTTP 500 Error.”
Test switching the PHP version to an older or later version. If the error disappears, it’s an indication that the previous version was wrong. Keep the site on the newly selected one.
SiteGround users can easily switch the PHP version with only a few clicks on Site Tools. For detailed steps, check this guide on how to switch to a different PHP version in Site Tools.
Inspect or regenerate the .htaccess file
A common cause of the “Internal Server Error” is a problem within the .htaccess file. If the file is corrupted, it defines an incorrect root folder or contains syntax errors, the usual result is the “HTTP 500 Error” page.
Fix the syntax error in .htaccess
As an example of a syntax error, we can use the previously mentioned error from the error log.
<2022-05-17 14:32:40 UTC [apache][core:alert] [pid 68451] [client 35.214.177.225:57966] /home/user/www/sg-testing.com/public_html/.htaccess: <IfModule> directive requires additional arguments
To inspect the file, open the Site Tools of the website. Then, select the section Site and open File Manager.
Navigate to the website’s root folder, which is the site name/public_html. In our example, the name is sg-testing.com, so the folder path is sg-testing.com/public_html.
In this folder, you can find the .htaccess file. Select the file and then press Edit to open the code editor.
Now, you can inspect its code. As the error log points, the problem is from the <IfModule>. The issue is a syntax error because the module is missing a forward slash in the closing tag </IfModule>.
Add the slash and then save the changes with the Save button. Reload the website and it should now load properly.
Wrong website’s root folder defined in .htaccess
Another common error in .htaccess is an incorrectly defined root folder for the website. Usually, this is a result of one of the following cases:
- You transferred the website from another hosting provider where it resided in a subfolder.
- You developed the website on a subfolder and then moved it to the main domain folder in the same hosting.
- For a WordPress website, you installed a plugin that has changed the RewriteBase in .htaccess. The plugin may need extra configuration to work with the modified code but currently, the website is inaccessible due to the “500 Internal Error”.
To illustrate the problem better, we can use the following example.
Notice the /dev path in RewriteBase. This code instructs the server to load the website from a folder named public_html/dev. Since the folder is non-existent, when you load a page from the website, it will produce the “Internal Server Error” screen.
To fix the problem, simply remove the subfolder path from RewriteBase so the code will look like this:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !/(wp-content\/uploads/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
This is the default WordPress code defining the root folder for the website. Confirm the change in File Manager with the Save button and reload the website. The error shouldn’t appear anymore.
Regenerate the .htaccess file
Another standard troubleshooting scenario is to replace the .htaccess file with a new copy. To replace the file with a new copy, open File Manager, navigate to public_html, select the file .htaccess and choose Rename.
You can choose any name for the file. For example, you can name it htaccess-old and create a new .htaccess file.
If the website is WordPress, access the WordPress dashboard, navigate to the section Settings, and open Permalinks. Just click on the button Save Changes, and your website will generate a new .htaccess file with the default WordPress code.
If your website is not WordPress, find the default .htaccess code for your specific application. Use the button New File in File Manager and name the new file .htaccess. Paste the default code into .htaccess and save the changes.
After the new .htaccess file is set, reload the website again to see if the error is gone.
Repair the database or fix the database credentials
Another common problem that can cause the “500 Internal Server Error” is a corrupted database on your website. You may consider restoring the database from a backup or repairing it.
For WordPress, the error may occur if the website fails to connect to the database. Make sure that the credentials are set correctly in the wp-config.php file.
For detailed steps, read this guide on how to fix the error ‘Establishing a Database Connection’ in WordPress.
Disable plugins for your WordPress website
A misconfigured plugin can also trigger the “HTTP 500 Error” in WordPress. The standard procedure is to disable the plugins one by one until you find the culprit.
If the error is only on the front end, but you still have access to the WordPress admin dashboard, you can disable the plugins from the section Plugins. Then choose Installed plugins. From the drop-down Bulk actions menu, select Deactivate. Check the box Plugin and press Apply to deactivate all plugins.
In many cases, the error prevents you from logging into the WordPress dashboard so you may need to use an alternative way.
A popular suggestion you’ll find online is to rename the wp-content/plugins folder. We don’t recommend this method as it may fix the “HTTP 500 Error”, but cause other complications.
It is safer and more efficient to disable all plugins from Site Tools (if you are a SiteGround user) or from the database.
Read the following guides for detailed steps:
After the plugins are disabled, reload the website. If the website is fixed, it is a strong indication that the error is caused by one of the plugins.
Proceed by activating the plugins one by one. When the faulty plugin is reactivated, the error will return. You can then disable the plugins again to access the dashboard and activate all plugins apart from the problematic ones.
You may consider replacing this plugin with another one or contacting its developers to report the problem.
Change the theme for your WordPress website
A badly configured theme can also cause the “500 Internal Server Error” in WordPress. To check if the theme is the problem, you will need to replace it with another one.
Usually, you can change the theme from the website’s WordPress dashboard. However, in many cases, the ongoing “HTTP 500 Error” prevents you from logging in.
Read this guide on how to change the WordPress theme from the database for more information.
Increase the PHP Memory Limit of the Website
The “HTTP 500 Error” may also be caused by PHP scripts that exceeded the memory limit of your website. By default, the limit on all SiteGround plans is set to 512M. However, your WordPress website may be set to a lower value. To increase the memory limit, follow the steps from this guide on how to increase WP Memory Limit.
Restore a Backup of the Website
If none of the solutions helped solve the issue or you find them challenging to implement, you may consider restoring the website from a backup. Restoring the website will revert all changes that caused the error in the first place.
SiteGround users can check this detailed tutorial for the Website Backup Tool.
Check if your website contains large files
Another common reason for this error is having a very large file as a part of your website. On SiteGround’s shared hosting servers there is a size limit for files that can be opened through the web. The limit is 8GB, and if your website includes a larger file, this will result in the above error.
Check your website’s files either via SSH, FTP, or File Manager to locate the one causing the problem. Very often, these are logs with PHP errors.
On SiteGround’s servers, a log file is created automatically if your site’s PHP scripts produce any non-critical errors or warnings during their execution. The log file’s name is php_errorlog, and it is located in the same directory as the script that produced the errors. Usually, this would be your website’s root folder.
Contact the web hosting provider
Ultimately, the “500 Internal Server Error” may not be caused by your website configuration. The MySQL server may be down, or the server may be overloaded. Contact your web hosting’s support team so they can check the server’s status and help further with the problem.
Monitor 5xx Errors to Protect Your SEO
5xx errors can harm your site’s organic rankings. To maintain strong SEO performance, regularly run bulk checks using tools like Website Auditor. This tool identifies all pages with 500 error codes and allows you to export the list for detailed analysis and management, ensuring you can address issues promptly and keep your site optimized.
To begin the scan, open the software, create a new project, and let it crawl and analyze the site’s pages. Once the scan is complete, go to the Site Audit module and check the Indexing and Crawlability section for resources with 5xx status codes.
Summary
The HTTP “500 Internal Server Error” can be very frustrating to deal with because of its unclear nature. The problem may originate from a local issue or an error on the website or the server.
This guide can help you narrow down the causes to fix the error more efficiently.
The “HTTP 500 Error” is one of the many error codes. Read this guide to find out more about the different error codes.
For more information about fixing other 5.X.X. status codes, read the following articles: