How to Debug Internal Server Error in WordPress?

If you are reading this article, there are high chances that you have encountered an 500 – Internal Server Error on your Website. If you are not in a Habit of taking regular backups, then you are somewhat in trouble and you are looking for a way to restore your website back to good health. In this article, I will tell you the most common causes of WordPress Internal Server errors.

Enable WP_Debug to find the cause

Before you begin, it is recommended that you enable WP_Debug on your site until your testing has finished. Go to your File Manager. All you have to do is go to your Hosting’s File Manager. In most cases, this can be accessed through a cPanel. Go to your cPanel > File Manager. In the file manager navigate to


Right click on the wp-config.php file and choose edit. In the file search for WP_Debug and set its value to true. If it’s already true you can skip this step.

If you can not find WP_Debug, then you can add it yourself too. Search for the line /* That's all, stop editing! Happy blogging. */ and just above it add define('WP_DEBUG', true);

Bad Plugin

Have you recently installed any plugin? If that internal server error started showing up immediately after installing a plugin or while you were in the Plugin’s settings page and you made some modifications to the plugin settings and your site started giving you the 500 error.

In this case, the solution is very simple. All you have to do is go to your Hosting’s File Manager. Again, This can be accessed through your cPanel. Go to your cPanel > File Manager and browse till your reach your site’s plugin directory. In most cases, this is what the path to plugins’ directory would look like


Once you are here, select the plugin which you might think is the culprit and just delete it. After deleting it, go to your site and see if the error is gone.

If the error persists, then check if the issue could be any other plugin and delete it as well. If you think the error is something else, then continue reading.

Bad Theme

Themes are very rare causes of Internal server errors in WordPress sites. Out of 100 Cases, I deal with Themes are only 2 or 3 of them. But if you suspect there are issues with your theme, simply navigate to the wp-content/themes/ folder like you did above for plugins and delete the theme which you feel can be causing the issue.

Corrupt htaccess file

Did you think you were going out of the File Manager area? Well, you’re not. There is one more thing we need to check for and that is a Corrupt .htaccess file. This can happen if any plugin is trying to rewrite the URL structure or define cache rules. So if you deleted a Cache plugin in the above steps and your problem was not solved — It’s because deleting the cache plugin, doesn’t remove the data it added to the .htaccess file.

So a very simple solution for this is to completely empty the contents of the .htaccess file. WordPress will regenerate it automatically once your site loads.

You can find the .htaccess in the root of your site folder. The same folder where your wp-config.php file is. If you can not see the .htaccess file, it could mean that the you have disabled hidden files from showing up.

To fix this go back to cPanel and open the Legacy File Manager. Using that you can view the hidden files.

Alternatively, you can reset cPanel settings and enable the hidden files from appearing in the Default File Manager.

Overloading of Servers

Another very common cause of 500 Internal Server errors on WordPress is Too much traffic on the site, and the server is unable to take the load. If you are aware that your site is getting too much traffic then its time for you to upgrade your hosting.

If you are on a Shared Hosting, Jump to VPS. If you are already on a VPS, consider upgrading your VPS or get a Dedicated server. Congratulations on the traffic surge, btw 🙂

Problem still not solved?

So you are not getting any traffic and you’ve wiped all the plugins, themes and even reset the htaccess files. But the problem is still not solved. Then it is highly possible that there is some misconfiguration in your server settings and this is something your Web host will be able to help you with.

If you are managed hosting, create a support ticket with your hosts and explain them the problem. They will be happy to know that you have done all the basic troubleshooting steps earlier so remember to mention that.