We’ve been there—seeing that dreaded 500 internal server error pop up on your website can be scary. It’s one of those moments when your heart skips a beat, even though we’ve tackled it more times than we can count.
This error is one of the most common (and stubborn) issues WordPress users face. And the worst part? It’s a bit of a mystery, giving no real clues as to what went wrong. It just shows up like an unwanted guest and refuses to leave.
In this guide, we will walk you through the exact steps to fix the 500 internal server error in WordPress. Just follow along, and you’ll have your site back up and running smoothly in no time.
Here is a quick overview of the topics we will cover in this article:
- What Is the 500 Internal Server Error?
- What Causes the Internal Server Error in WordPress?
- Fixing the 500 Internal Server Error in WordPress
- Clear WordPress and Browser Cache
- Checking for Corrupt .htaccess File
- Increasing the PHP Memory Limit
- Deactivate All WordPress Plugins
- Switch to a Default WordPress Theme
- Re-Uploading Core Files
- Enable Debug Logs in WordPress
- Ask Your Hosting Provider
- Video Tutorial
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:
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:
This can be incredibly frustrating for beginners. 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.
From our experience, a step-by-step approach makes dealing with such errors easier. We’ll guide you through addressing the common causes of the error, one by one, until they’re resolved.
Get Expert Help Anytime with On-Demand WordPress Support!
Dealing with an internal server error can be frustrating. Our On-Demand WordPress Support is here to help you fix technical issues quickly and effectively.
- One-time payment for expert on-demand support
- Fast turn-around times
- Available 24/7
What Causes the Internal Server Error in WordPress?
The 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 the 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.
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.
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 used by WordPress to set up redirects.
One of the most common causes of 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.
WordPress will now try to update your .htaccess file or generate a new one. 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 be unable 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.
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.
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.
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]
</IfModule>
# 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.’
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:
- Create a blank text file on your computer and name it php.ini
- Paste this code in there: memory=256MB
- Save the file
- 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 need of 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.
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.
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.
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.
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.
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.
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.
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 WordPress.org website and click on the ‘Download’ button.
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.
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.
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.
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 them by using an FTP client and navigating to the /wp-content/ folder.
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.
Video Tutorial
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 contact WordPress support.
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.
Ivan
Also, how to create an .ini file on a mac???
Ivan
What if it’s NOT the .htaccess file? Can we then change the filename back .htaccess??
What if it’s NOT the plugins? Can we simply change the plugins folder name back to what it was??
These are details we should know about.
Thanks!
WPBeginner Support
Yes, if it was not due to plugins folder or .htaccess, then you can put them back as they were.
Admin
gks
thanks this was so helpful.
philip
Thankyou so much, I had installed a plugin which had somehow corrupted the .htaccess file, renamed it to .htacces_old as per the advice on this page, and all’s back working again, if you cant find the .htaccess file on your server, it could be hidden, cpanel has an option to look for hidden files.
thanks guys
Akinshola Samuel
When all the files in your “wp-content” are empty, you always get the server (both locally and remotely). Took me longer time before recognising this.
I was moving the an existing wordpress engine alognside many other things, Unfortunately the wp-contents and it’s respective folders were all empty.
Finally, Happy when I solve this.
Max B
Thank you guys for saving my day! This solved the issue for me, thank you!
Sofia Berglund
Thanks! Great tutorial. Turned out for me that, when I was unactivated the plugins, I got another error-message saying i had some corrupt @media print-code in the functions.php. Took that away and got my page back
Donald
Make sure index.php has permissions of 644. Somehow mine has 777 when transferred from one server to another.
John
DONALD !!! you’re a life saver … thanks to the WP beginner platform also
Lewis James-Odwin
Great Video, solved my problem in 54 seconds! (.htaccess issue)
Keek
I must have spent 4 hours trying everything I found online. In the end, turns out I was running an old version of PHP. When I updated it in my cPanel, the 500 error was gone.
krishna
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@ and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
how to solve this error?
M Jones
My problem was actually a corrupt wp theme rather than a corrupt plugin.
To solve I renamed the corrupt theme (Oxygen) (which gave me a white screen) than named Twenty Sixteen “oxygen” so that my site would use Twenty Sixteen (a working theme) as my theme. Than I switched using dashboard to Twenty Fourteen (my second favorite installed theme) than again used my file editor to rename Twenty Sixteen back to “twentysixteen” & Oxygen to “oxygen.corrupt”.
I think my theme did not download properly, making it corrupt.
Thanks for pointing me in the right direction!
Alia
Thank you so much you saved me a lot of time!
mayur
Thank you so much for so complet information!
i have a .htaccess problem.. solved.. now working as charm..
SHYOPAT
Someone pointed me to your article (thank heavens) I did the htaccess file change and it helped it for two minutes. Then I did the php memory thing and that helped for a few minutes as well, then back to the internal server error. I’m currently working on trying to figure out if it’s a plugin. If that doesn’t help… then I’ll do the core files. And then after that… I have no idea. I guess I’ll try my hosting provider again.
Den
I always check .htaccess file first…
Will Paro
Is it possible to have an Internal Server Error only on select computers, but not others?
That is the issue I’m dealing with right now.
I have 6 sites all hosted through one account via GoDaddy. All are showing an Internal Server Error. They were fine this morning, but now nothing.
Problem is that GoDaddy says that they see the sites just fine.
I can pull the site up in gtmetrix.com and analyze it with no issues.
Please help.
Every computer I use PC, Macs and Chromebooks all show internal server errors, but gtmetrix.com and GoDaddy says everything is fine.
One of the sites is
Thanks in advance
Jesu
You save my life!!
Thanks a lot from Spain!
antony agnel
Phew…thanks a lot guys!
A new guy here…installed ‘bulletproof security’ plugin on my wordpress site & got an Error 500!
Was shit scared…& finally found out about your site and this article – finally fixed it by applying your tip to rename to .htaccess file to .htaccess_old!
Once again, thank you so much – you guys rock!!
hendra
Hi Guys
I have a questions in regards of 500 internal server error, i experienced the problem with a plugins [JSON API] when i type example.com/api/ – it is showing 500 internal server error.
any advises on how to solve this problem? much appreciated before.
Linda
Thank you!
In my case, it was the theme that was broken (my fault for tinkering around), not a plugin. I renamed the theme folder .mytheme-deactivate like in your plugin example, and hallelujah, I could access my site again! (I simply activated a different theme, but I could probably uninstall and re-install the original theme if I wanted to)
Aviroop Chowdhury
Disabling solved my issue. Thanks.
Mike
Sometimes this is a bug in your own PHP code.
For this it’s best to use a binary chop ‘echo’ method. That is add a simple echo ‘fred1’; exit; into your code starting at the top of the index.php. If you see ‘fred1’ displayed when you visit your site then you know it’s a PHP bug and not any of the other reasons. (Note I used a .htaccess online validator to check the syntax of my .htaccess file too, in order to rule that out).
Once ‘fred1’ is displayed now move it halfway down the index.php file (useful to increment the integer each time too, e.g. fred2, fred3 etc). If the server error occurs then you know you need to move the statement up. If fred1 etc is printed then you need to move it further down the code. If you get to an include or require statement then you then delve into that file in the same way.
I found the offending PHP file in under 10 minutes. You should then use php -l whateverfile.php to find offending line in that file and also to know what the syntax error is. If ‘php -l’ doesn’t give you the syntax error then you should read this:
The ‘php -l’ would need to be done by remote logging into your hosting account. If you can’t do this then as this article says, contacting your hosting support can be useful to find the php log file.
Darrin
You’re a life-saver! Renaming my plugins directory worked. Thank you!
Peter Ishola
I have tried all the options given in this article but it’s still the same. the error message appears on both the admin and the web pages of my site. I’d appreciate more options to solve this problem. The error message is:
500 – Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.
Thanks
Kristoff
I am running a large WooCommerce store and was receiving 500 internal server error on most front end pages & WP admin login. The store resides on a dedicated cloud server and had been running fast without fault for a few months. Tried ht access remedy firstly, but nothing changed, php memory should not have been a problem as I had increased this on install & I did not think WP ftp core files were corrupted, so looked elsewhere. Ran putty to connect to dedicate linux server and command line was showing huge CPU usage for mysql – 90%. Previously in my WP development experience sql errors or high usage are database related, so via a combination of sql workbench to kill connections & php myadmin to repair database tables (I only repaired wp_options in this instance) I was able to fix the internal server problem. My point on all of this is – even though problem was flagged as internal server error, it was a database table repair (after table analysis) which cleared the error.
sahni
Can you write in detail how did you do fix wp_options
Saheed
Thanks a lot, deactivating plugins solved my issue
Dan
Hey Guys ,
I have this problem right now with some site and it looks like it is because server is overloaded and website is on shared hosting, so keep an eye on that !
Janus
Thanks i think you are right, i tried all above solutions but nothing helped, and i have pinge my site to a lot of search engines today so can be robots from there that have made the error.
Julian
Thank you! Deactivating the plugins vía PhpMyAdmin worked for me!
Monayam Ahmad
Not work for me. I face this problem when I want to customize my theme. Everything goes well. But to do ‘customize’ I get this error. I don’t why.
Ben
Thank you very much for this very helpful article !
The htaccess renaming worked for me ! Yeah !
Joe
Thank you so much! I was encountering endless Internal Server Errors for about 36 painful hours, and deleting/reuploading my theme via FTP then renaming the .htaccess file SAVED ME SO MUCH!
You are a life saver.
oladayo
Thank you very much. it was the option of re-uploading the wp-admin and include folders that saved me after about 3weeks of troubleshooting.
Rod Salm
For me, it was the permissions setting for the entire directory. It needed to be 750. Soon as I changed that in the File Manager in cPanel it was back up.
I didn’t figure that out on my own.
Rod
Giorgio
Thank you so much! You save me from an heart attack…
Simply I have renamed, via FTP, the .htaccess in .htaccess_old, and WP goes on.
This is the new .htaccess, created as you suggested:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
This is the .htaccess that I find in my FTP and renamed in .htaccess_old:
## BEGIN WordPress<
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
I don’t know what had modify the file. Someone have an answer?
Thank you!
Donny
I think it is a # problem, because your old file has 2 # and the new 1 # in the beginning.
Hope it helped
Oderinde Taiwo Martins
I just want to say a big thank you to you guys. You saved my day with this article. I’m bookmarking this website now as I know I will have to come back and learn more from your resources. Thanks a bunch.
Rionize
tkank’s guys every thing is on .htaccess file and pemalink in word press check it out!!!
Petrus Rex
I had this issue after a fresh install of Wordpress. I would get this error specifically when accessing the plugins from my dashboard it turned out to be a corrupt .htaccess file but had to be handled server side by my web host. I’m running on Arvixe.
abbas
thanks
Ivan Aliku
I must give kudos to the moderators and content developers of this blog. I’ve not regreted knowing this website for one bit. The .htaccess solved the problem for me with ease. Keep up the good work.
Being Khan
I can’t rename it even.
Petrus Rex
You can change the name with an FTP client after you transfer it to your web host.
Usman Aslam
Thanks a lot, it was due to a bad plugin I couldn’t login, Wouldn’t have been possible without reading this. Great work … !
Larah31
Thanks man.. You’re the best
Cory
Thanks, renaming .htaccess to .htaccess.old did the trick :).
Mitch
I’ve got a weird one. My Internal Server Errors only happen on “Posts”, and Not on “Pages”. The host just updated the PHP version as well as the memory limit, and I re-uploaded the wp-admin and wp-admin files. No luck. Any other ideas?
James
I have the same issue. None of these things fixed it for me either.
josh
thanks this was helpful
mark
.htaccess did the thing for me. Thanks!
Juan mejia
Thanks!!!! htaccess in my case.
Cachi
Thanks, It solved in my case. Just delete de .htaccess , reload, and a new .htaccess file was generated and the site works !
Thank you again
Rochelle
I have been in touch with my hosting provider two times and they have no idea what it is. They switched databases, thought it was hacked, and the other guy couldn’t figure out why I was having problems at all.
Someone pointed me to your article (thank heavens) I did the htaccess file change and it helped it for two minutes. Then I did the php memory thing and that helped for a few minutes as well, then back to the internal server error. I’m currently working on trying to figure out if it’s a plugin. If that doesn’t help… then I’ll do the core files. And then after that… I have no idea. I guess I’ll try my hosting provider again.
Would switching hosts be of any help at all?
WPBeginner Support
If all these steps don’t help and your host is unable to assist, then yes you can consider switching to a better WordPress hosting.
Admin
Adela
Thank you so much for so complet information!
It was a plugin problem for me, impossible to find without your help!