Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
25 Million+
Websites using our plugins
Years of WordPress experience
WordPress tutorials
by experts

How to Fix the 500 Internal Server Error in WordPress

Editorial Note: We earn a commission from partner links on WPBeginner. Commissions do not affect our editors' opinions or evaluations. Learn more about Editorial Process.

Are you seeing a 500 internal server error in WordPress?

The internal server error is one of the most common WordPress errors.

It is a bit tricky because the error doesn’t give any other information, many beginners find it quite frustrating.

In this article, we will show you how to easily fix the 500 internal server error in WordPress.

Fixing the internal server error in WordPress

Here is a quick overview of the topics we will cover in this article:

What Is the 500 Internal Server Error?

The 500 internal server error is a common web server error. It is not specific to WordPress and can happen with any website.

The 500 in the error message is technically an HTTP error code. Looking up this code will only show its standard description:

500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

This is a generic catch-all error message, which means that the server was unable to assign a better, more helpful error message when it encountered the issue.

The error page looks different depending on which web server software (Nginx or Apache) your website uses and which browser you use.

Here is how the Apache error page may look:

Internal server error page on Apache

It may look different if you are using Nginx and Google Chrome.

It will also look different if Google Chrome is unable to find an error page to display:

Google Chrome http 500 error

For beginners, this can be incredibly frustrating. No clue or message will point them in the right direction to quickly fix it.

Asking how to fix an internal server error is like asking your doctor how to fix the pain you are experiencing without telling them where the pain is.

However, if you know the common causes that trigger this error, then you can try fixing them one by one to resolve the error without breaking anything.

What Causes the Internal Server Error in WordPress?

Internal server error in WordPress is often caused by a corrupt .htaccess file, poorly coded plugins, or your active WordPress theme.

Other possible causes of the internal server error in WordPress are PHP memory limit or corrupt core WordPress files.

In some conditions, the internal server error may only show up when you are trying to access the WordPress admin area while the rest of the site works fine.

Usually, the error is triggered before WordPress can load and the server cannot get enough information about what stopped it.

To understand more, see our article on how WordPress works behind the scenes.

That being said, now let’s take a look at how to go about troubleshooting the internal server error in WordPress.

Video Tutorial

Subscribe to WPBeginner

If you prefer written instructions, then just continue reading.

Fixing the 500 Internal Server Error in WordPress

Before you begin troubleshooting, make sure that you have a complete WordPress backup of your website on hand.

If you have access to the WordPress admin area, then you can use a WordPress backup plugin to create a complete backup of your website.

We recommend using Duplicator to handle this. It not only helps you quickly back up your website, but you can also store your backups on the cloud, and most importantly, you can restore your website from backup.

On the other hand, if you don’t have access to the WordPress admin area, then you can manually create a WordPress backup using phpMyAdmin and an FTP client.

After that, you can follow the following steps to troubleshoot and fix the internal server error on your website.

Clear WordPress and Browser Cache

Browsers and your WordPress caching plugins can sometimes mistakenly store a cached copy of an error page.

The easiest way to fix this is by first clearing your browser cache.

Clear cache

After that, if you have access to the WordPress admin area of your website, then you can empty the WordPress cache by visiting your caching plugin’s settings page.

For details, see our tutorial on how to clear WordPress cache.

Checking for Corrupt .htaccess File

The .htaccess file is a server configuration file that is also used by WordPress to set up redirects.

One of the most common causes of the internal server error is the corrupt .htaccess file.

The easiest way to fix this is by simply visiting the Settings » Permalinks page in the WordPress admin area and then clicking on the ‘Save Changes’ button without making any changes at all.

Update permalinks to regenerate .htaccess file

WordPress will now try to update your .htaccess file or generate a new one for you. You can now visit your website to see if this has resolved the internal server error.

If you can still see the error, then you need to make sure that WordPress was able to generate or write to the .htaccess file.

Sometimes, due to file and directory permissions, WordPress may not be able to create or write to your .htaccess file.

You can now try to replace the .htaccess file manually. First, you need to log in to your website using FTP or the File Manager app under your hosting account control panel.

Next, you need to rename your main .htaccess file to something like .htaccess_old. This lets you keep the file as a backup, but WordPress won’t recognize it.

To rename the .htaccess file, you will need to log in to your site using FTP or the File Manager app in your hosting account’s cPanel dashboard.

Once you are connected, the .htaccess file will be located in the same directory where you will see folders like wp-content, wp-admin, and wp-includes.

Simply right-click on the .htaccess file and rename it to .htaccess_old.

Rename .htaccess file

Next, you need to create a new .htaccess file.

Inside your site’s root folder, right-click and then select the ‘Create new file’ option in your FTP client or File Manager app.

Create new htaccess file

Name this new file .htaccess and click ‘OK’ to save it.

Now, this .htaccess file is currently empty, and you need to add default WordPress rewrite rules to it.

Simply right-click on the file and then select ‘View/Edit’ in your FTP client or File Manager app.

Edit .htaccess file

The empty file will open in a plain text editor like Notepad or TextEdit.

Now, you need to copy and paste the following code inside it:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

This code is the default rule set used by WordPress. Don’t forget to save your changes and upload the file back to the server.

You can now visit your website to see if this has resolved the internal server error.

If it did, then give yourself a pat on the back because you fixed the internal server error.

Important: Before you move on with other things, make sure that you go to the Settings » Permalinks page in the WordPress admin area and click the Save button without making any changes. This will regenerate the .htaccess file for you with proper rewrite rules to ensure that your post pages do not return a 404 error.

If checking for the corrupt .htaccess file solution did not work for you, then you need to continue reading this article.

Increasing the PHP Memory Limit

Sometimes, the internal server error can happen if a script consumes all the PHP memory limit.

The easiest way to increase the PHP memory limit is by editing the wp-config.php file. Be careful when you do this if you are a beginner. You want to follow these instructions carefully because even small mistakes in WordPress core files can break your site.

To begin, simply connect to your WordPress website using an FTP client or the File Manager app under your hosting account control panel.

You’ll find the wp-config.php file inside the main folder of your website. Right-click on it and select ‘Download.’ This will ensure that you have a file backup in case something goes wrong.

When you’ve saved that, you can right-click on it and select ‘View/Edit.’

Edit wp-config file

Inside the wp-config.php file, you need to add the following code just above the line that reads, ‘That’s all, stop editing! Happy publishing’:

define( 'WP_MEMORY_LIMIT', '256M' );

For more details, see our tutorial on how to increase the PHP memory limit in WordPress.

Note: If 256M doesn’t solve the problem, then try increasing it to 512M.

If you see the internal server error only when you try to log in to your WordPress admin or upload an image in your wp-admin, then you should increase the memory limit by following these steps:

  1. Create a blank text file on your computer and name it php.ini
  2. Paste this code in there: memory=256MB
  3. Save the file
  4. Upload it into your /wp-admin/ folder using FTP

If increasing the memory limit fixed the problem for you, then you have only fixed the problem temporarily. You still need to find the cause that is exhausting your memory limit.

This could be a poorly coded plugin or even a theme function. We strongly recommend that you ask your WordPress web hosting company to look into the server logs to help you find the exact diagnostics.

If increasing the PHP memory limit did not fix the issue for you, you are in for more troubleshooting.

Deactivate All WordPress Plugins

If none of the above solutions worked for you, then this error is most likely being caused by a specific plugin installed on your website.

It is also possible that it is a combination of plugins that are not playing nice with each other.

If you can access the WordPress admin area of your website, then you can simply go to the plugins page and deactivate all WordPress plugins.

Deactivate all plugins

However, if you are unable to access the WordPress admin area, then you can deactivate all WordPress plugins using FTP.

Simply connect to your WordPress website using an FTP client or the file manager app under your hosting account control panel.

Once connected, navigate to the /wp-content/ folder and rename the plugins folder to plugins.deactivated.

Plugins deactivated via FTP

WordPress looks for plugins in the plugins folder. If the plugins folder is not found, it will automatically deactivate all plugins.

You can now try visiting your website to see if this resolved the internal server error on your website.

To restore all your plugins, you can simply rename the ‘plugins.deactivated’ folder back to plugins.

Your plugins will now be restored, but they will still be deactivated.

You can now activate plugins individually and visit your website to figure out which plugin is causing the internal server error.

For more details, see our guide on how to deactivate all WordPress plugins without WP-Admin.

If deactivating all plugins didn’t fix the internal server error on your website, then continue reading.

Switch to a Default WordPress Theme

One possible cause of the internal server error could be some code in your WordPress theme.

To determine if this is the case, you need to switch your theme to a default WordPress theme.

If you have access to the WordPress admin area, then go to the Appearance » Themes page. If you have a default theme already installed, then you can simply click on the Activate button to switch the theme.

Activate a default theme

If you don’t have a default theme installed, you can click on the ‘Add New’ button at the top and install a default theme (Twenty Twenty-Three, Twenty Twenty-Two, and so on).

If you don’t have access to the WordPress admin area, you can still switch to a default theme.

Simply connect to your WordPress website using an FTP client and navigate to the /wp-content/ folder.

Right-click to select the themes folder and download it to your computer as a backup.

Download theme folder

Next, you need to delete the themes folder from your website. Once it is deleted, go ahead and create a new themes folder.

Your new themes folder will be completely empty, which means you don’t have any WordPress themes installed at the moment.

Next, you need to visit the WordPress themes directory and download a default WordPress theme to your computer.

Download a default theme

Your browser will then download the theme as a zip file to your computer.

Locate the file on your computer and then unzip it. Windows users can unzip the file by right-clicking on it and then selecting ‘Extract All’. Mac users can double-click on the zip file to extract it.

Extract theme files

You’ll now see a folder containing your WordPress theme.

Switch back to your FTP client or File Manager up and upload this folder to the empty themes folder.

Upload theme folder

Once uploaded, WordPress will automatically start using the default theme.

You can now visit your website to see if this resolved the internal server error.

If this doesn’t work, then you can reupload your WordPress themes from the backup or switch back to the theme you were using.

Don’t worry. There are still a few more things you can do to fix the error.

Re-Uploading Core Files

If the plugin and theme options didn’t fix the internal server error, then it is worth re-uploading the /wp-admin/ and /wp-includes/ folders from a fresh WordPress install.

This will NOT remove any of your information, but it may solve the problem in case any file is corrupted.

First, you will need to visit the website and click on the ‘Download’ button.

Download WordPress

This will download the WordPress zip file to your computer.

Go ahead and extract the zip file. Inside it, you will find a wordpress folder.

WordPress folder extracted

Next, you need to connect to your WordPress website using an FTP client.

Once connected, go to the root folder of your website. It is the folder that has the wp-admin, wp-includes, and wp-content folders inside it.

In the left column, open the WordPress folder on your computer.

Now you need to select all files inside the wordpress folder and upload them to your website.

Upload core WordPress files

Your FTP client will now transfer those folders to your server.

It will ask you whether you would like to overwrite the files. Select ‘Overwrite’, then select ‘Always use this action’ and check the ‘Apply to current queue only’ checkbox.

Overwrite WordPress core files

Your FTP client will now replace your older WordPress files with new, fresh copies.

If your WordPress files were corrupted, then this step will fix the internal server error for you.

Enable Debug Logs in WordPress

WordPress comes with a built-in system to keep logs for debugging.

You can turn it on by using the WP Debugging plugin. For more details, see our guide on how to install a WordPress plugin.

Once activated, the plugin will turn on debugging logs on your WordPress website.

If you don’t have access to the admin area of your WordPress website, then you can turn on debugging by adding the following code to your wp-config.php file:

define( 'WP_DEBUG', true);
define( 'WP_DEBUG_LOG', true); 

Once you have turned on debug logs, you can view these logs by using an FTP client and navigating to the /wp-content/ folder.

Debug log

You can open the debug log file in a text editor, and it will show you a list of errors and warnings that occur on your website.

Some errors and warnings can be harmless incidents that may not need fixing. However, if you are seeing an internal server error on your website, then these may point you in the right direction.

Ask Your Hosting Provider

If all methods fail to fix the internal server error on your website, then it is time to get some more help.

Contact your web hosting support team, and they will be able to check the server logs and locate the root cause of the error.

If you want to continue troubleshooting on your own, then see our ultimate WordPress troubleshooting guide for beginners.

We hope this article helped you fix the internal server error in WordPress. You may also want to see our complete list of the most common WordPress errors and our guide on how to choose the best web hosting provider.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

677 CommentsLeave a Reply

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Ryan says

    I get the same Internal Server Error happening every couple of weeks now.

    Each time it’s an issue with the .htaccess file, it’s an easy fix to get the site up and running thanks to the info you provided above but is there anything I can do that will prevent the error re-occurring?



    I tried renaming the htaccess file to htaccess_old like you said, and it disappeared! Now I get 404 errors every time I try to load the website’s various pages.

    My original problem was indeed the plugins – deactivating them brought my website back online. However, NOW I have this 404 problem.

    Also, I cannot find a Settings option in FileZilla – can you please help?


    • Chad Warren says

      The reason you are receiving 404 errors is because you have renamed your .htaccess file The .htaccess file contains the rewrite code to make your links pretty. ie: instead of

      The simplest way to correct this is to log into the WP admin and go to Settings >> Permalinks Make sure you have the proper permalink option selected and then Save. This will recreate the the proper rewrite peramaters within .htaccess

  4. Norman Fellows says

    Hi Editorial Staff!

    Checking for the corrupt .htaccess file solution worked for me. Thank you.

    I had been doing a lot of work on the site including updating Jetpack. Not sure what the culprit was but I was completely locked out…

  5. aiyeboy says

    thanks but whenever i rename the htaccess the site comes up and goes down after 1 minute again and this as been keeping my website offline for days now….helpppp

  6. Owolabi says

    You Guys are great ! I always find solution to my problems here. once again tank you and keep the good work up.


  7. viksit singh says

    Really work’s thanks dude
    It’s good Nice post Having a great knowledge about that…
    Please Help i want a hosting service which is cheep giv me domain and Support

  8. Jayson T Cote says

    I wanted to add another situation that may cause Internal Server errors and can be easily remedied.

    Check your php.ini file usually located in your root directory on your web hosting server.

    I recently updated our server from PHP version 5.3.x to 5.4.x The update changed a few PHP options which were set differently in the local php.ini file. We made the same changes to the website’s local php.ini file as we did on the server and eliminated the Internal Server error.

    Take caution, you can try renaming the php.ini file (php.ini.old) and reload your website to see if it makes a difference. Looking at the servers error logs will determine the exact PHP option in question that will need to be edited in your local php.ini file.

  9. Bill Cruz says

    Thank you based god! renaming my .htaccess file and forcing a new one to be created resolved my blank webpage! I reset my mySQL database password, and updated the password on the wp-config.php file, but that still didn’t fix it, but this method did. Thanks.

  10. Mert Can says


    I would like to ask you, how can I edit this error file (Internal Server Error)? Because it’s showing there my e-mail address. I am using linux Debian 7.


    Best Regards,

  11. Vyacheslav says

    Thank you for such a good article. This set of fixes is really handy to keep them all at fingertips.

    My problem was the .htaccess file, but not the one in the root folder. It was rather the one in my /wp-admin folder. It came about that I protected /wp-admin folder with a password by means of host provider panel. It created the .htaccess file inside my /wp-admin folder. I also added some code into the file too.

    Later I turned such a password protection of the folder off, so the code added by host provider panel itself was taken from the .htaccess file automatically. Meanwhile the code added by me still remained in the file. This piece of code caused the problem leading to Internal Server Error 500.

    I just removed the .htaccess file due to its lack of necessity and it did the trick.

  12. Vijay Sharma says

    Yes, it works for me to get the idea,

    Solutions process I did
    1. Define Php memory limit in “wp-config.php”
    2. Deactivate all plugins
    3. Update permalinks structure
    4. Activate plugin one by one

  13. NatalieDawn says


    I have loads of problems with 503 error. My host told me it’s a problem with index.php file. Don’t know, how to solve it, HELP PLEASE! (I’m really desperate now ;) ).

  14. Asha Singh says

    Can i fix by uploading manual file or need to change any hosting file of ny site . because it has same issue several times at my end.

    Thanks for info.

  15. Paul says

    yes I went through all the steps and as always my luck get the hardest, reinstalled via ftp job done!

  16. Paul says

    None of the above worked for me – however, that’s because of what was causing my issue – so I thought they wouldn’t but tried them anyway.

    However, I’ve dealt with heaps of WordPress sites so wasn’t too worried when I came across the issue.

    For me, the error appeared when trying to access admin (the site itself loads) and it wasn’t the hosting as it was a site on my temp hosting platform and all other sites are fine.

    The solution though is very simple (for what caused my issue),
    I knew it happened just after changing the permalink structure, and I had accidently clicked the ‘Custom Structure’. (I was meant to use one of the others for this site). In my case this didn’t carry over to the htaccess file and removing the file didn’t work either.

    You’ll need access to phpMyAdmin. Locate the database used for your install. Locate the wp_options table and find the permalink_structure row (around 30 or so). You can edit the permalink there back to one of the others.

    Next, edit the htaccess file with this to include the proper rewrite rules:
    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    After that clear your browser cache and refresh – also try getting in through a different browser.

    This is one of many solutions – it works for me to reset permalinks.

  17. khandy says

    Thank you!

    The php.ini file saved me.

    Have had this problem since introducing random header images to the Graphene theme. If this happens again later today (before I’ve got the error logs from my host) will this work again or do I need to up the number?

  18. Bobbie Blakely says

    Hi Thank you for all of your help. I have a 500error, internal server error. I changed the plugin name to plugin.deactivate, that didn’t change the error. I tried to change the name for .htaccess file but it says that I can’t because the folder is empty. I have been having trouble for three days. I fix one thing and I get another error. Today I uploaded my wp backup files via FTP. Upon completion is when I got the 500 error. I would be grateful for any help. Thank you

    • WPBeginner Support says

      Bobbie, try this. Download your /wp-content/plugins and /wp-content/themes folders to your computer. Then delete the ones from your server and create new empty directories with the same names. From your website’s root directory delete your .htaccess file (You can later regenerate it again from settings -> permalinks.


  19. poemaderoca says

    I disabled my plugins but didn’t help so decided to rename .htaccess file and this solved my problem. Thanks for the tutorial.

  20. Tim says

    Thank you!. It was the .htaccess file that was the issue! The issue occurred after installing and activating the eCommerce shop.

    I have not got a clue how renaming that file fixed it but it did! So thanks again!

  21. Erik von Werlhof says


    Had this problem pop up last night and thought I would be toast! I tried the solution as outlined above and it worked!

    Much thanks,


  22. Hossam says

    unfortunately NONE of the above worked for me, but I think I’ve another issue related to this O.o
    my problem is: my website worked fine, but when trying to edit any plugin’s settings or adding a new data to it, here is the “page not found” appears to me!! NOTE that I’m using %postname% as permalinks, and when changed it to “default” then try again to edit any plugin, here is ” Internal Server Error” appears O.o
    I’m confused, please help
    thanks in advance

  23. sebastian okelly says

    Excellent article. This is a really useful site for those who get lost in the Codex. Thanks.

  24. Deckey says

    I still have the problem with the Internal Error.
    I’ve tried all your ways (PHPmemory, htaccess, plugins deactivated…) And still doesn’t work.
    If I change htaccess, the Internal Error change message and there’s another:

    “Not Found
    The requested URL /about/ was not found on this server.
    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
    Apache Server at Port 80″

    How can I do?
    Maybe is better for me to do the website again from the start?
    Because I’ve done the passage from localhost to remote server…
    Maybe if I restart everything immediately on the web is better and it will work?

    I’m quiet desperate and I don’t know how to do other things….

    Thank you so much,


  25. Krishanu Choudhury says

    Hello i run A blog which has preety good alexa ranking.i currently use MArkabihost for hosting my website and use wordpress i have decided to move to better hosting service so i would you suggest you a good hosting service whcih is cheap and better And i want to know the ways to backup from Markabi to current hosting service

  26. Terhie says

    Hi, I’d like to thank you for your help. There are many pages with ‘error 505’ solving, but yours was clear and simple, and that’s what makes the difference.

    My problem was just a little bit different. Internal Server Error appeared only when I tried to get to admin panel via Android WordPress application. Everything else was fine, and I could login to admin panel via browser no matter what OS or browser I used.

    My hosting provider declined existence of any logs (yeah…), but thanks to your site I’ve found that one of my plugins cause this error.

    Thanks a lot!

  27. Walter says

    Hi. When i delete my access file my pages works. But then i refreshing my permalinks causes it again. So it is a cycle.

    • WPBeginner Support says

      There can be other reasons like for example your WordPress Hosting provider may not have mod_rewrite enabled (unlikely but not unheard of). If you are using a custom permalink structure defined by using your own tags try switching to month or date based and see if this resolves the problem. If it does, then this means that your custom tags were not in correct format. You can also try creating your .htaccess file manually. It should have this code only:

      # BEGIN WordPress
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      # END WordPress


    • Trent says

      Ok, so this one is not one this page yet! I was moving from one cPanel Server to another cPanel Server. I did use the /scripts/pkgacct $user as well as the transfer accounts options, both gave me Internal Error 500. After several hours I found this page and tried everything except reinstalling WordPress.
      Well the culprit was actually the PHP.INI file. I downloaded the php source binaries and uploaded the php.ini-production file. I then deleted the php.ini file and renamed the php.ini-production to php.ini. Everything worked well.
      Hopefully it helps!

  28. Dave says

    Thanks…. it was a memory issue for me. I was only getting the error though on one plug-in. The rest of the site was working fine. Might put that in there somewhere too as it might be useful for somebody else.


  29. Puneinvest says

    Nice Article. I follow all process. But problem not solve.
    When I check my error log –
    PHP Parse error: syntax error, unexpected ‘}’ in …/themes/techmaish/index.php on line 1

    Just replace index.php to server

    Now my problem solve.

    Again thanks Your post is great

  30. Christopher says

    I love sites like this. Thank you for a clear, concise, and well laid out tutorial/troubleshooting post. Well done Sir.

  31. Daniela says

    THANK YOU!!! I made all the changes, htaccess, increased memory size…
    Then called the hosting company… and I was told that ALL my sites were infected by a virus!!!

    So I went back to this post and did this one step I did not do which was deactivating all plugins. That did the trick!
    It was Jetpack …..

  32. Sam says

    Thanks it was .htaccess file doing that all. The file was uploaded with my site mistakenly Thanks again.

Leave a Reply to Raine Cancel reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.