How to Fix the HTTP 500 Internal Server Error in WordPress
The HTTP 500 Internal Server Error is one of the most common WordPress errors. At the same time, it is also one of the trickiest to deal with, since the notification doesn’t offer any information on possible debugging options. With WordPress versions 5 and above, this process has been simplified. Newer versions of WordPress send email notifications with information about errors that appear on your website, as well as instructions for troubleshooting.
In this article, we’ll show you eight different methods to fix the 500 Internal Server Error:
What Is HTTP 500 Internal Server Error?
Just like the name suggests, this error appears on the server end, when the server isn’t able to display the requested page. When you type a specific URL address into the browser and click on a link, you’re actually requesting from the server to deliver and display this page. If for some reason the server cannot display the requested page, you get the 500 internal server error.
This response to the server mistake is a generic catch-all response indicating that the server cannot find a better error code than the 500 error. There are many possible causes for this error.
Another thing we should point out is that the internal server error can present itself in several ways. Since there are different servers, operating systems, and browsers, these are some of the examples of the 500 error:
-
Internal Server Error
-
500 Error
-
500 – Internal Server Error
-
500 Internal Server Error. Sorry something went wrong.
-
500 Internal Server Error. Sorry something went wrong.
If the internal server error appears often and crashes your site leaving it offline for hours, it can significantly affect your site’s rating and SEO.
How to Fix the 500 Internal Server Error on WordPress Site
This error can appear on any website – it’s not tied to WordPress sites exclusively. Since the notification is so generic, it can be challenging to decide where to start.
Although the internal error comes from the server end, the issue is not always with the server itself. This is why you should explore some simpler options before you move on to dealing with the server.
This is the quickest and the easiest fix for the 500 internal server error. Just wait a couple of moments and then reload the page. Just in case, you can open the page in another browser. Sometimes, the server gets too many requests and goes into overdrive, displaying the internal server error. This issue is usually gone within seconds.
Another thing you can try is checking the status of your website on Down For Everyone or Just Me. Simply copy the URL of your website and paste it into the assigned field on that site’s home page. Using the tool on Down For Everyone or Just Me, you’ll be able to check the HTTP status of your server and verify whether your site is down or the issue lies with your client.
If you get an HTTP status that’s not 200 (‘’Everything is ok’’), you’ll get a notification that your site crashed.
Clearing browser cache is another recommended quick fix for an internal server error. On Windows and Linux operating systems, you can clear the cache by pressing F5 or CTRL+F5 on the keyboard. On Mac powered devices, press SHIFT + CMD + DEL. You can also clear the cache memory using browser settings – simply click on the option for deleting all cache memory.
For more details about the error, you can check the server error log. It is helpful in shortlisting the possible causes, especially if they are related to one of the active plugins. When you log into your hosting account and access cPanel, in the Metrics section you’ll see the Errors option.
Click on it to open a detailed report containing web server error log messages.
If your hosting plan has different settings or you’re using a different platform, contact your hosting provider for instructions on checking the server error log.
If you cannot check the server error log using your hosting account, you can enable debug mode by simply inserting or editing code in config.php. This will show you the details about the error:
define('WP_DEBUG', true);
When you edit the file, reload your site in the browser. If the error is still present, the browser will display the path to the file that caused the error. It will also show you the exact line of code that cannot be executed and a short description of the error. If the problematic file belongs to an active plugin, uninstall the plugin.
Just to be clear, it is important to completely remove the plugin – just deactivating it won’t solve the problem. Since the admin panel is inaccessible, you’ll have to do this using an FTP client or cPanel, and File Manager application, on your hosting account. In the folder wp-content/plugins, locate the folder with the plugin causing the issue and delete it.
We suggest that you leave the debugging mode enabled while you’re troubleshooting, even if it doesn’t show the best results, and disable it once your site goes live again, just in case.
Most of the time, the internal server error in WordPress is caused by themes and plugins functions. In other cases, this error is caused by poorly configured .htaccess file and PHP memory limit. In the following sections, we’ll show you how to deal with these situations.
Another initial step in the error 500 troubleshooting is checking whether the .htaccess file is configured properly, especially if you recently made changes to it.
You can do this using your hosting account once you log into cPanel or FTP client. All you have to do is rename the .htaccess file to .htaccess_test, for example. Well show you both ways – it is up to you to decide which one is more suitable for you.
If you opt for cPanel, log into your hosting account and select the File manager option in the cPanel dashboard.
Access the public folder with all the WordPress files and find the .htaccess file. If you have several domains, make sure you select the folder belonging to your site’s domain. If you cannot find the file when you open the root folder, check whether .htaccess is hidden. In the right corner of the screen, click on the Settings and tick the option for showing hidden files.
Once you find the .htaccess file, right-click on it and choose the option Rename.
Enter a new name for the .htaccess file, for example .htaccess_test and save changes.
You can do the same thing using FTP. First, you have to check your hosting account login credentials.
Once you log into your server using an FTP client such as FileZilla (which we’re using here), open the public folder containing all WordPress files. Find the .htaccess file, right-click on it, and select Rename.
Once you rename the file, refresh your website to check if the error 500 is gone. If it’s gone, you know the issue is with the .htaccess file.
In that case, you’ll need to generate a new .htaccess file. Go to Settings > Permalinks and simply click on the Save button with no additional changes.
When you do this, you’ll properly configure the rewrite rules in the new .htaccess file, preventing errors during opening custom post types in the browser.
You can find more information about .htaccess file on WordPress Codex.
If the internal server error persists, move on to the following step.
Sometimes, the internal server error happens when you cross the PHP memory limit. There are several ways to check and increase the PHP memory limit. Since they require detailed steps, we included a link to a full tutorial on dealing with PHP memory issues.
If increasing the PHP memory limit solved the problem, keep in mind that this is only a temporary solution. To prevent this issue permanently, you have to understand what’s overloading your PHP memory.
The culprit may be a recently installed plugin or a theme function, so make sure you contact your hosting provider and check your server error log. You can find this log when you log into your hosting account in cPanel.
If you don’t have this option on your hosting account, consult with your provider about the ways to diagnose the issue.
If the PHP memory limit increase didn’t solve the error, try some of the following steps.
If you’ve reached this point without solving the issue, a faulty plugin may be the cause of the 500 error. It doesn’t have to be a single plugin – sometimes, the problem is caused by several plugins that cannot be activated at the same time.
The only way to verify this is to deactivate all the plugins, and then reactivate them one by one, refreshing the site between each reactivation.
Since the internal server error prevents you from accessing the admin panel, you’ll have to deactivate plugins using cPanel or an FTP client. In both cases, you need to rename the plugins folder. It’s found inside the wp-content folder, which is located in the root folder. Plugins folder contains all the plugins installed on your WordPress site.
This way, you’ll manually deactivate all the plugins on your site. If the error is gone, you’ll know that one of the plugins was causing it.
Afterward, simply access the admin panel and in the Plugins settings, reactivate plugins one by one until you find the one that’s causing the error.
Then, you can delete the plugin that’s causing the issue. If this specific plugin is important for your site, contact the plugin author for further assistance.
If plugin deactivation didn’t solve the internal server error, the only option that’s left is to reinstall WordPress core files. This means replacing the existing core files with the new files downloaded from wordpress.org. If you haven’t done this already, create a backup of your WordPress site now.
Don’t worry – you won’t lose any website content in the process.
Start by visiting the wordpress.org page where you’ll download a zip file with the latest version of WordPress. Save it to any convenient location on your computer.
Extract the folder named WordPress from the zip file.
To access your WordPress site files, connect to the server via FTP and find the root folder that contains your site’s WordPress files. You’ll see the files such as wp-admin, wp-includes, etc.
In the left panel, locate the WordPress folder you downloaded and saved on your computer.
In the folder, select all the files except the wp-content folder. You can hold the CTRL button and select the files you need.
The wp-content folder on your website contains theme and plugins files, as well as the entire content of your website. This is why we won’t make any changes to it, allowing you to keep your site files. At the same time, the .htaccess file and wp-config.php file on your site will remain unchanged, so there’s no need to worry about connecting with databases and redirections.
Drag the selected files from the left panel to the right – this will move them from your computer to the server. Alternatively, you can right-click on the selected files and choose Upload.
Once the transfer starts, the FTP client (FileZilla, in our case) will ask you to overwrite the identical files. Select Overwrite and Always use this action options to continue the transfer.
The FTP client will replace all the old WordPress files with the new ones, fixing the internal server error caused by one of these files. Once the transfer ends, try to access your site in the browser.
Consult With Your Hosting Provider
If none of these methods solved the internal server error, consult with your hosting provider for help. Their support team may be able to locate the issue in the server error log.
They will also be able to examine your site’s behavior within a certain time frame, allowing for precise error diagnostics.
Final Thoughts
Although the HTTP 500 internal server error in WordPress can be extremely frustrating for site owners and administrators, these methods will help you solve it and quickly get your site back on track. Most of the time, the error is caused by easily manageable issues such as conflicts with third-party plugins, badly configured .htaccess file, and PHP memory limit. Even if that’s not the case, you can always turn to your hosting provider for help with finding a solution.