WordPress website errors can be annoying to deal with. There’s never a one-stop solution for these problems, and a vast range of causes, from themes and plugins, causing compatibility issues, to out-of-date software and even web hosting problems.
A WordPress HTTP 500 server error is something no web developer wants to see. It can damage the rankings of your website and decrease user experience if left unattended for too long. Google is quite particular about broken links and the HTTP 500 error is counted as such.
In this article, we’ll be going over everything you need to know about the 500 server error. We’ll talk about why it happens, the general and technical solutions you can do to fix it, and how you can avoid this error in the future.
Let’s start troubleshooting.
What Is WordPress HTTP 500 Internal Server Error?
The HTTP 500 server error is when your page doesn’t load or can’t be accessible. It’s a generic error response that means the server couldn’t fulfill your request. There are multiple variations of the error. Here are some common examples:
- 500 Internal Server Error
- Temporary Error (500)
- The website cannot display the page – HTTP 500
As long as there’s a “500” attached, you can safely consider it an HTTP 500 error and the steps below should resolve this issue for you.
What Causes HTTP 500 Internal Server Error?
This internal server error can be caused by a lot of things, usually server and file-related cases. Example causes for this are:
- Corrupt or badly installed WordPress theme
- Incompatible or compromised plugins
- PHP version incompatibility
- Corrupt .htaccess file
- Problem with your host server
Thankfully, you can fix most of this yourself, but it’s always a good idea to consult with your web host from the start, just to make sure that issue is not on their end.
General Fixes (Try These First)
These general fixes are steps you can do that don’t involve configuring your WordPress website and changing the settings. The steps below are simple to do and are great to get out of the way before you start going into the more technical fixes below.
Open page on a different browser or use Incognito mode
Try opening your page or website on a different browser or by using incognito mode. Using a different browser would be best here. Better yet, try opening your webpage with someone else’s computer.
If your website or page opens on your 2nd browser or elsewhere, then the problem might have to do with the caching or cookies of your 1st or default browser.
Clear browser cache and delete cookies
Browser caching stores useful webpage data in local storage, so that when you revisit that site, your local cache can load the site from there. This is especially useful since most websites don’t make huge changes and caching makes things faster for you. Unfortunately, if something does change, there’s a chance that the old information your browser is storing might cause an error on your side.
NOTE: Clearing your browser cache and cookies will completely log you out of all the websites. Only go through this step if you can open your page on another browser or another computer.
Clearing your browser cache and cookies will fix this problem, by loading the webpage from scratch. Now, the process for clearing cache and cookies is somewhat different for all browsers, so we’ll only cover the steps for Google Chrome since that’s the most used browser.
- On your Google Chrome browser, click on the top-right icon with the three dots (⋮).
- From there, click on More tools and go to Clear browsing data.
- You can choose a time range, but generally, we’d go with All time.
- After that, check the boxes for:
- “Cookies and other site data”
- “Cached images and files”
- Click on Clear data.
Once you’re through with that, try loading your website now and see if you still get the HTTP 500 Error.
Flush your DNS
A Domain Name System or DNS is like the internet’s translator between you and servers online. Your DNS stores IP addresses that you’ve been to just like a cache system. So, when you search for sites like RunCloud.io or Facebook.com, your browser can just get the IP address from the DNS instead of searching for that IP through the internet.
If an IP address changes or the DNS is compromised, it will result in providing an IP address that doesn’t work. Flushing a DNS is another way of clearing the DNS cache, so you can update and resolve connectivity issues like the HTTP 500 Error.
- Close your browsers first.
- Next, press the Windows + R keys to open the Run dialog box.
- Type in ‘cmd’ and press Enter.
- On the command prompt, type in command ‘ipconfig /flushdns’ and press Enter.
For Mac users, here’s your step-by-step process:
- Open up Spotlight by pressing Command + Space.
- Type in ‘Terminal’ and press Enter.
- Copy-paste the following command into the Terminal: sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder and hit Enter.
- You’ll be asked to enter your Mac password. This is normal, the Terminal is just asking for verification.
There’s no success or ‘operation complete’ message from Terminal when you’re done flushing your DNS, so don’t wait for one. Once you’ve completed the steps below, reload your browser and see if it fixed the issue. If the 500 Error is still there, let’s start with the more technical fixes below.
How to Fix The HTTP 500 Error – Technical Fixes
Contact Your Host
Before we proceed, contact your host and ask their support team for help first. Although there’s a good chance that the problem is with your WordPress files, having your support ticket pending as early as now will help you get a reply while you tinker with the fixes below.
Besides, there’s a good chance that your host’s support team can help you with the technical solutions anyway.
PHP Version Incompatible
Another reason you have this problem might be because of different PHP versions. Some hosts automatically update their PHP versions, which can result in errors if your WordPress theme or plugin is outdated. For this problem, you’ll want to talk to your host first and include this query in your ticket request.
Backup Your Website
Backup your website first. While the steps below shouldn’t compromise your site, it’s always better to be safe and have a backup. Depending on your provider, you may already have a daily backup that you can just fall onto if you need it.
Otherwise, you can backup your site using a backup plugin. Here are a couple you can use:
Learn more about performing website backups the right way in our complete guide.
Corrupt .htaccess File
A corrupt .htaccess file is one of the common reasons why the HTTP 500 Error happens.
The .htaccess file controls many of your website’s configurations, including URL redirects and loading custom error pages. It’s like the directory and navigation system of your site. Getting this file corrupted can result in HTTP 500 Errors, among many other possible problems like 404 messages.
NOTE: configuring your .htaccess file can be difficult for beginners and you may do more harm than good to your site if you mess with the file’s settings. In this fix, we’ll only be disabling the current .htaccess file so your website can make a new one. Ideally with no errors.
- Connect FileZilla or SFTP of choice to your website.
- Go to the directory that stores folders like wp-admin and wp-content, then look for the .htaccess file.
- When you find it, right-click the file and rename it to ‘.htaccess-old’.
- Refresh your website and check if the error message is gone.
If the error is fixed, then your old .htaccess file is corrupt and producing the error. Here’s how you can create a new .htaccess file:
- Open the WordPress dashboard and go to Settings.
- After that, look for Permalinks and open that menu.
- Create a new .htaccess file and configure it as Plain.
- Click on Save Changes.
- Change the permalink structure to whatever works for you and click on Save Changes when you’re done.
That should recreate a new .htaccess file for you. Reload your website and see if it fixes the issue.
Check Your Plugins
Did you recently install a new plugin or update a plugin’s configuration settings?
Plugins are a great way to elevate your site, but they can be an arrow to the knee when you have too many. They may conflict with each other or be outdated from lack of maintenance. Either way, checking your plugins is a great place to begin. Start by deactivating the most recent plugin you installed and then check your website for the error. Here’s how you can do that:
- Open your WordPress admin panel. The URL for that is www.sample.com/wp-admin but replace ‘sample’ with your website name.
- From there, go to Plugins.
- With all your plugins listed out, look for the most recent plugin you installed and disable that.
- Open your website on another tab and see if it fixed the HTTP 500 Error.
- Repeat this until you’ve gone through most, if not all, of the plugins.
If the error still persists, it’s safe to assume that it isn’t because of your plugins. You can reactivate them all again.
On the other hand, if the problem is fixed and the error disappears by disabling a plugin, activate all your other plugins one-by-one until the error pops back up. The remaining disabled plugins should be the main culprits. To fix that, you can either update the plugins or replace them with an alternative.
If updating the plugin doesn’t solve your problem, try Googling your current case. Chances are that other WordPress users have also come across your problem and may have the solution.
Reinstall or Switch Your Themes
Are you using a new theme or is your theme outdated?
A new theme can break pages in a site, especially if it isn’t installed properly. Before you reinstall your theme, try switching to your old theme or with a default WordPress theme like Twenty Sixteen. Does the HTTP 500 Error still occur? If yes, then the new theme might be the problem. If not, we advise you to move to the next solution.
Now, changing your theme can be risky if you’re inexperienced. Issues like incomplete theme files, installing the wrong version of a theme, and more can occur and possibly increase your problems. We suggest only doing this if you’re either familiar with manipulating WordPress files already or have a backup of your website that you can simply restore.
Here’s the step-by-step guide on how to do that:
- Connect FileZilla or your SFTP of choice to your site.
- Look for your wp-content folder and then go to themes.
- Find the folder with the theme you’re currently using and rename the theme folder into ‘themename-oldver’. Adding ‘-oldver’ will help you identify your old theme from your new one.
- Now, install a fresh copy of your theme like you normally would.
Alternatively, some drag-and-drop builders like Themify and Elementor allow you to easily re-install themes from the WordPress dashboard. The steps for these differ from builder to builder, but try looking for your theme and go over the options. The re-install button should be there.
Once done, the fresh theme should retain all your settings and personalizations. Verify if everything works correctly and open the problematic pages that had the HTTP 500 Error. If the problem is fixed, then your old theme probably has an issue. You don’t have to delete your theme’s old copy. Keep it there just in case, you can even change the label and add a date to it.
Check File Permissions and Make Sure Your Account is Permitted
File permissions determine who can read, write, and execute the files of your WordPress site. If you were setting up new permissions or creating a new type of user, the permissions file may have been mishandled.
Although fixing the permissions is pretty straightforward, it’s a repetitive process. Here’s how you can check file permissions and then set them correctly:
- Open up FileZilla and connect it to your website.
- Look for your wp-content first and right-click the folder.
- Select File permissions.
- In the new dialogue window, you can set permissions for three types of users: Owner, Group, and Public. Here’s what they mean:
- Owner – owner of the website
- Group – any staff you set that can handle and access the WordPress dashboard
- Public – anyone who opens your website.
- As a good rule of thumb, the Owner should have all the boxes checked, and the Group and Public are only permitted to ‘Read’. You’ll want to make sure that the page with the HTTP 500 Error has the permissions set correctly.
The Numerical value there is typically set to ‘644’ for sets and ‘755’ for directories and executables. This could be different with your host though. So, if you’re unsure about the correct values you can wait until you contact your host’s support team or Google the numerical value of your host.
Repeat steps 3 to 5 but with the folders and files that are having the HTTP 500 Error.
Insufficient PHP Memory Limit
For those of you who are experiencing the HTTP 500 Error on the WordPress admin dashboard side, then this fix might help.
The PHP memory limit for your site is usually enough for most things, but it can sometimes hit a limit when you’re uploading files or trying to publish a new post.
- Open your Notepad or VS Code.
- Type in ‘memory=64MB’ and save the file as ‘php.ini’.
- Open up FileZilla and connect it to your website.
- Look for your wp-admin folder and upload the php.ini file there.
Reload your WordPress admin dashboard and see if the error still persists. If increasing your PHP memory limit worked for you, then you’ll have to contact your host for some extra help.
Again, since the PHP memory limit on your site is usually enough for regular WordPress usage, hitting the limit so frequently is still a problem. You might be running a plugin that’s inefficiently coded or have a theme function that slows down your whole site. To assess this problem, we recommend asking your host to check this for you themselves. Their support team might have a better idea of what to disable and what alternatives to use.
Fortunately, if you’re using RunCloud – this couldn’t be easier.
You can increase your PHP memory limit straight from your RunCloud dashboard for any of the web applications you have on a server connected to RunCloud.
Simply navigate to your Web Application’s Settings in your and increase the value for the memory_limit there. Ensure you hit Update PHP Settings so your changes are applied. And that’s it!
This should resolve the issue for RunCloud users.
Restore Your Site With a Backup
Although this step is often cited across other sources, we don’t recommend you restoring or reinstalling your entire website through a backup. The chance of your personal WordPress files causing the HTTP 500 Error is low, while the risk of restoring your site with a backup as an inexperienced WordPress user is higher.
Some hosts backup your WordPress site for you as part of their payment plan, so just contact their customer support team. They’ll probably fix your problem before having to restore your site to a previous backup anyway.
Reinstall Core WordPress Files
Core WordPress files, however, are a different matter. These WordPress files are the skeletal system of your site and any issues with the files will certainly have a significant impact on your website. Thankfully, reinstalling WordPress isn’t complicated. Here’s the simplest way to do it:
- Open your WordPress admin dashboard.
- Navigate to Updates. You’ll find it below the Home tab to the left of your screen.
- On the WordPress Updates page, look for and click on Re-install Now.
WordPress will automatically start downloading on your device and will reinstall with the latest version to your site. This shouldn’t take too long since the WordPress file itself is pretty small.
If you can’t access the WordPress admin dashboard, you can try reinstalling WordPress with your SFTP. You’ll need some sort of file archiver tool to unzip the file. If you don’t have one, you can use WinRAR.
Before you proceed with the steps below, we recommend backing up your website just to be safe. While you’ll only be overriding your old WordPress files with new ones, backing up your site is just good practice.
- Open up WordPress.org and download the latest WordPress version. The button will be at the top-right corner of your screen.
- Once the download completes, right-click the WordPress zip and look for Extract Files…. Click on that option.
- A prompt will appear on your screen asking for confirmation, you can say Yes to all of them so you can start extracting the files.
- When the file is done extracting, you’ll find a ‘wordpress-versionxxx’ folder. Open that and delete wp-content.
- After that, open up FileZilla or any SFTP and connect it to your website.
- Copy-paste all the files from the ‘wordpress-versionxxx’ folder to your root folder. This is typically named public or public_html.
- FileZilla or the SFTP you’re using will open a prompt saying ‘Target file already exists’. Click on the Overwrite option and select Ok.
Your computer should start overwriting the old WordPress files with the new ones you just downloaded. This will overwrite all the core WordPress files without touching or deleting any of your themes, plugins, and overall content.
This should be the last fix you need to fix the HTTP 500 Error once and for all. If you’re still getting the HTTP 500 Error, make sure that you’ve contacted your host’s customer support team.
How to Prevent the HTTP 500 Error From Happening?
Prevention is better than a cure and that’s especially true with website errors. HTTP 500 Errors can negatively impact your website’s SEO and it may take you weeks or even months before finding these errors yourself. Here are some routine tips you can use to prevent the error from happening again.
Update your Plugins
Make sure that all your plugins are updated. Outdated plugins that are no longer supported by your PHP version can cause these errors, even more so if that plugin is responsible for a large portion of your site.
Keep File Permissions Up To Date
Whenever you create a new user or try to reconfigure your permissions, make sure that everything is in order before you close SFTP. Incorrect permissions, especially when creating new roles for your staff can create these HTTP 500 Errors.
Use WordPress Debugging
Still getting the error? Hopefully, your host has replied by now. This step is completely optional, but it can speed up the process of either looking for other solutions or providing your host with more information.
The debugging feature shows you specifically where the error is coming from. This will be valuable information for your host, as well as providing you with error messages you can copy-paste in Google to hopefully find someone who’s had the same specific error as you.
Keep in mind though that the debugging logs can be intimidating to understand if you’re new to server management. If you don’t understand the logs that come out from the debugging, at least you can present them to your host or support team to help them fix your problem.
Here’s how you can turn debugging on.
- Open your Secure File Transfer Protocol (SFTP) app. If you don’t have one, the industry standard is FileZilla. Download and install the client from the link provided.
- To connect FileZilla to your site, open FileZilla.
- Click File and go to Site Manager.
- Enter the ftp address of your website in the Host box. Here’s what that looks like: instead of http://www.sample.com the ftp address is ftp://ftp.sample.com or ftp://sample.com.
- After that, just leave the Port box blank. The default value there should be 21 and you don’t need to change this unless indicated otherwise.
- From the Logon Type box, select Normal.
- Next, type in your full username in the User box. This can be a proper username or an email address, it depends on how your website was set up.
- Finally, enter the Password.
FileZilla should now be connected to your website after these steps.
- From there, look for and open the wp-config.php file. You don’t need a code editor for this step, but you can download VS Code if you prefer the cleaner interface instead of just the default Notepad.
- With the wp-config.php file open, add the code below:
define( ‘WP_DEBUG_LOG’, true);
- Save the .php file and reload your website.
Any errors that come out of your site should now be logged to your debug.log file. You can find that under the /wp-content/ directory with FileZilla. Don’t forget to change the value from true to false when you’re done debugging.
Now, just send your host the debug.log file so they can fix your issue.
After Action Report — Fixing The WordPress HTTP 500 Error
The WordPress HTTP 500 Error is a cumbersome problem to fix. It’s vague, which makes troubleshooting rough. We’ve arranged the steps above to go in order of importance, so hopefully, you were able to resolve this issue without having to reach the very bottom.
Which fix worked for you? If none of them did, how did you manage to resolve this issue? Let us know in the comments below!