How to fix HTTP 500 Internal Server Error (14 proven fixes)
-
- Key Takeaways
- What does “HTTP 500 Internal Server Error” mean?
- What are the common causes of an HTTP status code 500?
- How to fix the HTTP error 500?
- How to fix 500 Internal Server – Video Tutorial
- 1. Reload the page
- 2. Clear your browser cache and cookies
- 3. Visit the website using another network
- 4. Check the Error Logs of the website
- 5. Reset file and folder permissions
- 6. Change the PHP version
- 7. Inspect or regenerate the .htaccess file
- 8. Repair the database or fix the database credentials
- 9. Disable plugins for your WordPress website
- 10. Change the theme for your WordPress website
- 11. Increase the PHP Memory Limit of the website
- 12. Restore a website backup
- 13. Check if your website contains large files
- 14. Contact the web hosting provider
- Monitor 5xx errors to protect your SEO
- Summary
- Frequently Asked Questions
Have you tried to open a web page only to be greeted by a 500 HTTP error message? It’s a generic failure code that doesn’t pinpoint an exact issue. Because the cause can be almost anything, it’s one of the most common error pages you can stumble upon.
This article will explain the “HTTP Error 500” and how to fix it.
Navigate HTTP Status Codes Like a Pro
Understand HTTP status codes inside out—download our free guide to fix issues and keep your website running smoothly.
Google reCAPTCHA used. Privacy Policy and Terms of Service apply
In other words, the hosting server can’t determine the exact problem and tell you exactly what’s wrong. As a result, the final outcome is the 500 error message that visitors see.
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 points to a different problem, but the common denominator is that they tell you something is wrong with the website’s server.
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 causes of an HTTP status code 500?
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 the PHP memory limit on the website
- Corrupted WordPress core files
- Large files on your website
- Problems with the MySQL server
How to fix the HTTP error 500?
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.
Typically, the issues can be grouped into two main categories: problems on the visitor side and problems on the server side.
How to fix 500 Internal Server – Video Tutorial
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.
1. Reload the page
Refreshing the page can sometimes resolve a temporary HTTP Error 500 issue. In case there was a brief connectivity problem, you may be the only one seeing it. The website itself could be working fine, but you might have reached it during a momentary downtime, or your network failed to establish a connection to the origin 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.
2. 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.
3. 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.
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, as it stems from the website itself.
As a site owner or webmaster, there are several checks you can run to resolve the “500 Internal Server Error.”
4. Check the Error Logs of the website
In many cases, misconfigured files or scripts are the source of the website’s errors. Review server logs to identify them more easily.
Typically, your website’s hosting panel should feature an error logs tool that records recent errors 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 may be causing 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 logs register errors related to the server configuration. Errors caused by PHP misconfiguration and scripts are not recorded, as they occur on the application level.
PHP errors are recorded in php_errorlog. It is generated automatically in the folder of the offending PHP file. On many hosting platforms, 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 an 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 which can show more information. For detailed steps, read this guide on how to enable the WordPress debug log.
5. Reset file and folder permissions
Another common problem that can cause the “HTTP 500 Error” is incorrect file 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 panel doesn’t have similar tools, you can change permissions from SSH or from an FTP Client.
6. 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.
7. Inspect or regenerate the .htaccess file
A common cause of the “Internal Server Error” is a problem within the .htaccess file, which governs how your website works on an Apache server. If the file is corrupted, defines an incorrect root folder, or contains syntax errors, the usual result is the “HTTP 500 Error” page.
7.1 Fix the syntax error in .htaccess
As an example of a syntax error, we can use the previously mentioned error from the error log.
2026-09-17 11:09:03 UTC [apache][core:alert] [pid 81157] [client 34.13.130.1:12136] /home/customer/www/sg-testing.com/public_html/.htaccess: directive requires additional arguments
To inspect the file, open the file in the File Manager on your website’s hosting panel.
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 open it in the code editor.

Now, you can inspect its code. As the error log points out, 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. Reload the website, and it should now load properly.

7.2 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 on 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
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
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 and reload the website. The error shouldn’t appear anymore.
7.3 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 rename it.
You can choose any name. 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. Paste the default code into the new .htaccess and save the changes.
After the new .htaccess file is set, reload the website again to see if the error is gone.
8. 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.
9. 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.
10. 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.
11. 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. This is a common problem with WordPress websites, which are often set to a lower PHP memory limit than their web hosting plan allows. To increase the memory limit, follow the steps from this guide on how to increase WP Memory Limit.
12. Restore a website backup
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.
13. Check if your website contains large files
Another common reason for this error is having a very large file as part of your website. On most shared hosting servers, there is a size limit for files that can be opened through the web. If your website contains a larger file that must be executed, 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, the culprit is a PHP error log that accumulated too much data over time.
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.
14. 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
Proactive monitoring can help you detect 5.X.X. errors, such as HTTP 500, which could harm your site’s organic rankings, cause abandoned carts, and increase bounce rates. 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:
- How to fix the “HTTP 502 Bad Gateway Error”?
- How to fix the “HTTP 503 Service Temporarily Unavailable” error?
- What is “HTTP 504 Error” and how to fix it?
Become an expert in tackling all types of HTTP errors! Download our Guide on How to Fix the Most Common HTTP errors!
Frequently Asked Questions
Is a 500 error caused by my website or by the hosting provider?
Most of the time, the hosting server is not at fault. Rather, it’s something in your website’s own code, configuration, or files — a plugin conflict, a corrupted .htaccess file, an exhausted PHP memory limit, or a database issue. The fixes above cover these site-level causes in the order they’re most likely to apply. If none of them resolve it, contact your host to rule out a genuine server-side problem or insufficient server resources.
Can a 500 error hurt my SEO?
Yes. If search engines repeatedly hit a 500 error on a page, that page’s rankings can drop, and if it happens across the entire site, it can affect crawl budget and indexing more broadly. Fix the error as quickly as possible and develop a habit of actively monitoring your website for HTTP errors.
Does a 500 error mean my website was hacked?
Not usually. A 500 error is far more often caused by an ordinary configuration issue than by a security compromise. That said, if you also notice unfamiliar admin accounts, files you didn’t add, or unexpected content changes alongside the error, treat it as a possible security issue and investigate separately.
How long does a 500 error usually last?
It depends on the cause. If it’s a temporary network or server hiccup, it can resolve itself within minutes — that’s why the visitor-side checks are worth trying first. If it’s caused by something in the website’s code or configuration, it will persist until that specific issue is fixed.
Why doesn’t the error page tell me exactly what’s wrong?
“500 Internal Server Error” is a generic HTTP status code by design — the server returns it whenever it hits a problem it can’t describe more specifically. That’s why troubleshooting means checking the server logs and working through the likely causes, rather than expecting the error message itself to name the culprit.

