Anyone who’s been visiting for awhile knows that I’m not a big fan of the Auto-Upgrade plugin for WordPress and that I prefer upgrading manually. I’m not against the plugin. I think it’s made it possible for more people to upgrade their own WordPress installations. I prefer manually upgrading because I have more control (and I’m not a control freak, just a scheduling freak) and I am better able to troubleshoot the problem when something goes wrong with the upgrade.
And things do go wrong. Frequently. That being said, the Auto-Upgrade Plugin works fine when the upgrade is minor, such as from a .1 to a .2 version. But if you are upgrading from WordPress 2.0 to 2.6.2, I highly recommend you do it manually. If you aren’t familiar with the process, I recommend someone do the upgrade for you.
I think many people don’t want to manually upgrade because the instructions in the WordPress codex are daunting. Delete this, don’t delete that, oh wait, delete that unless… I think you know what I mean.
So, I thought if I listed the steps that I take for a manual upgrade, that it might make the task less frightening for the rest of you. Some may have more efficient ways of doing a manual upgrade and I would love to hear about it. This is just the way I do it and it works for me.
- Download and extract the WordPress upgrade to your hard drive.
- If plugins are important to you, make sure your plugins are compatible with the version of WordPress that you are upgrading to. You can do this be searching google on WordPress and the name of the plugin.
- Backup your database. You can do this through cpanel or via the WordPress databases backup plugin. You are already backing up your database, right?
- Test the backup. It should look like a big text file of running together gibberish. If you don’t have that, then stop the upgrade
- Backup your WordPress files – all of them. Backup the wp-admin, wp-content, wp-includes, and all of the files in your blog directory. You can do this via cpanel or via ftp. I use ftp and copy them all over to my hard drive so I have them while upgrading. You should be backing up these files on a regular basis as well. Thinkdave has a great guide to using ftp with Filezilla.
- Test the backup. Spot check and make sure the files are there – especially wp-config.php and your wp-content folder.
- Install and activate the Maintenance Mode plugin. One note here – if you are backing up from a much older version of WordPress, skip this step. I find it can cause unnecessary problems and it’s better for your site to simply be down temporarily then to have to struggle to bring it backup later.
- Deactivate ALL of your plugins, except for Maintenance Mode. Please don’t skip this step
- Logout of WordPress
- Ok – back to FTP or your cpanel file manager.
- Delete WP-Admin – yes, the entire folder
- Delete WP-Includes – if you have language files, keep those. I haven’t upgraded a site that had them so most of you are safe in deleting the entire folder. And remember, we already made backups.
- Delete all of the files in the blog directory such as wp-cron.php, wp-login.php, etc except for wp-config.php (that contains your database information). But if you get delete happy, you already have a backup.
- DO NOT delete wp-content. Some upgrade instructions say to keep some of the files but not all of them. 98% of the time leaving that directory alone is just fine.
- Now we are ready to upload the new WordPress files
- Upload the wp-admin directory
- Upload the wp-includes directory
- Upload the main blog directory files such as wp-cron.php and wp-login.php The upgrade files should not have wp-config.php but, if it does, don’t overwrite yours.
- In your web browser, go to your site http://www.yoursite.com/blog/wp-admin/upgrade.php
- You may be asked to login. Login.
- If it was more than a .1 version upgrade, you may get a message saying your database needs to be upgraded. Click the button and upgrade.
- Activate and upgrade your plugins.
- If all is well, you are done and are now enjoying your freshly upgraded WordPress
A couple of issues that I have run into have been the following:
- Can’t login after upgrade. Clear your cache. Clear your cookies. If you still can’t login, delete the plugins folder. You have a backup so they can easily be replaced. This is in wp-content/plugins/. Those three methods have always corrected this problem for me. If you still can’t login, search the codex or contact someone like me for assistance.
- Scheduled posts no longer work. So far this problem only seems to happen on Windows IIS servers. I have a possible solution here or you can contact me for assistance.
- Main page loads but get 404 errors on all sub pages. This is probably a permalinks problem. Delete your .htaccess file and replace it with the backup.
Out of all the upgrades I have done for myself and for others those are the only problems that I have encountered. So, I trust my system. If you still don’t feel comfortable upgrading, ask someone for assistance.
photo credit: Danny McL
Mike Nichols says
Thanks for the post!
I’ve been letting Fantastico do my upgrades, but I have never been comfortable about everything being backed up and put back properly. So I’ve decided to do things myself from here on out. Your post is an excellent guide!
Mike
Mike Nichols’s last blog post – Mental Illness Awareness Week: A Cause We Can All Support!
BloggerNewbie says
Kim:
I can’t believe you would say that about the directions WordPress has to upgrade?? OMG, I am occasionally somewhat of a techno geek but wow, not user friendly. I used the upgrade plugin to upgrade last time. It was SO easy! However….I have not been able to use the scheduled post feature since. I don’t know if that has anything to do with anything but… I am off to try your suggestion with the cron.php thingy. I’ll let you know…
Kim Woodbridge says
@Mike – You’re welcome. Many people use fantastico and are happy with it. I’ve never upgraded with it but did use it one time for a WordPress installation. Like I said, this is just my way of doing it. Maybe I am a bit of a control freak ;-)
@BloggerNewbie – I’m very interested to find out if the cron.php solution fixes the scheduled post problem that you’re having.
Are you being sarcastic about me saying the directions in the codex aren’t user friendly? I’m not quite sure. They are complicated even for people who like technology. After writing this today, however, I’m not sure if my instructions are any less complicated.
Vered - MomGrind says
Thanks Kim. Bookmarked and stumbled. :)
Vered – MomGrind’s last blog post – Am I The Only One Who Thinks This Is Weird?
Dave says
Thanks for the mention Kim. I agree; while using a plugin to upgrade your WordPress site is a simpler solution, it sometimes fails.
And unless you’ve taken the time to learn how to manually upgrade your site, things may end up getting messy.
Also, it’s worth bearing in mind that once you learn to manually upgrade, you’ve also taught yourself to manually backup. Always remember rule no.1 with any any website activity: YOU CAN NEVER HAVE TOO MANY BACKUPS. Trust me, I’ve lost enough data to know that this is true.
Dave’s last blog post – Local marketing continued
David Bradley says
Maybe I shouldn’t tempt fate, but I’ve never had any serious problems using WPAU to upgrade. The first upgrade I did with it was from 1.5 to 2.5 and it worked first time, not a single glitch, all plugins reenabled perfectly.
David Bradley’s last blog post – Nobel Prize for Chemistry 2008
Kim Woodbridge says
@Vered – Thank you!
@David – Maybe I’m just cursed ;-) I’ve never had any problems on any of my own sites just ones I’ve done for others. It’s hard to tell what other people have already done and what’s going on with their plugins and code. Like I said in the article, I just want control over the process. My way is definitely not for everyone.
David Bradley says
To be sure. What kinds of issues did you see when it failed? I did have a whole spate of 500 internal server errors with one site, but that site gives 500s sporadically regardless of what I do, and I reckon it would have happened with a manual upgrade too.
Incidentally, hope you don’t mind me repeatedly taking inspiration from your words…
David Bradley’s last blog post – Nobel Prize for Chemistry 2008
Kim Woodbridge says
Hi David,
Glad to be inspirational :-) Now I need some inspiration and some time for today’s post :-)
I haven’t used the plugin recently – I don’t get errors that are really any different than ones with manual upgrades but I’m better able to figure out what is wrong with the manual ones – perhaps that is just the way my mind works. There was one instance where someone did an upgrade with the plugin, which just stopped and the site was inaccessible. That ended up being related to redirects to a sub-folder and multiple htaccess files.
I have another small site that I once tried to auto upgrade and it fails repeatedly – I’ve never been able to determine the cause of that one and don’t even try to auto upgrade it anymore. It does have non-standard urls and some wacky php code in it that I cobbled together so maybe that’s the problem.
David Bradley says
Aha! Your mentioning multiple .htaccess files has given me yet more inspiration, although not for a blog post as yet…just checking whether my site with the repeated 500s has a dodgy copy of a .htaccess file, could be the clue I’ve been looking for, thanks!
David Bradley’s last blog post – Nobel Prize for Chemistry 2008
Kim Woodbridge says
David – hahaha – I love British words like dodgy. :-)
David Bradley says
Dodgy is a good one…yes. I once wrote a magazine article back in the very early 1990s about the differences between US and UK words – it was entitled Hickies, Bangs, Lovebites, and Fringes…something like that. Talked about suspenders/braces (lingerie component/trouser support) and vests (singlet and waistcoats), diapers (nappies) and nappies (napkins) etc…it amused me at the time as I’d just spent six months travelling and working in the US.
David Bradley’s last blog post – Nobel Prize for Chemistry 2008
Kim Woodbridge says
@Dave – Sorry I missed your comment earlier – you got stuck in the spam folder – I have no idea why.
I’m glad to see that someone agrees with me about how important it is to learn the process without relying on a plugin.
And your FTP guide is the best – I was thinking of writing one but I just refer to yours instead.
Madhur Kapoor says
Awesome guide Kim . I am bookmarking this post , will refer to it when i upgrade wordpress
Madhur Kapoor’s last blog post – Check and Generate MD5, CRC32, SHA1 signatures with Crypto Helper
Kim Woodbridge says
Hi Madhur,
Thanks! I was afraid I made it too complicated but I think people are finding it useful.
BloggerNewbie says
Kim:
Yeah, I was being sarcastic. I agree, the directions are challenging even for the techy. Your directions are great. My scheduled post problem did not get corrected but I’m not too confident I did it right. I did several other tweaks at the same time and now my RSS won’t work. I am getting a headache!
Kim Woodbridge says
Hi – I wasn’t quite sure :-)
Oh no – you made one of my classic mistakes – changing too many things simultaneously ;-)
BloggerNewbie says
@ Kim
Yeah, then I had to swear never to tweak again! So while I was tweakin this weekend, the only way to fix my RSS was to remove WP 2.6.2 and reload (thx to your great directions-I wasn’t nervous) WP2.5.1! Everything worked fine, RSS is back. BIG YAAAAH! I still can’t publish at a future date! Which I could in the prior version? Tricky huh? Very interesting!
Kim Woodbridge says
I’m glad you got things working again but we’re still back to why your scheduled posts won’t work. Do you know what kind of server you are hosted on?
BloggerNewbie says
by kind of server do you mean who hosts my blog? Yahoo hosts it but I don’t know what ‘kind’? How would I find out?
Kim Woodbridge says
Hi,
Most web sites are hosted on Linux servers although some are on Windows servers that use IIS server software. This is separate from the webhost that you use. People that I’ve fixed the scheduling problem for were using Windows based servers at their webhost.
I took a quick look at Yahoo’s hosting page – they list a lot of offered features but nothing about the type of servers they use. You could ask them if your site is hosted on Linux or Windows – it would help narrow down a solution to the problem.
BloggerNewbie says
I’m kinda searching blind here cause I don’t know what I’m looking for but in the help section when I typed IIS the question:
Which PHP function does Yahoo Support,
No IIS Administration functions
was the only entry I found, I didn’t find anything about Linux…
does any of this point you in the right direction?
BloggerNewbie says
Kim
I wasnt sure if you were aware of the other quirky thing to this problem. when you push publish for your future time, the post clears like it’s gone to pending, however, it’s gone into never never land, never to be seen again, unless of course you use scribe fire. they are listed in the posts as if they are posted! How’s that for quirky!
Kim Woodbridge says
Hi – Can you give me a link to the yahoo help section you were looking at?
I have not experienced the scheduled post feature causing a post to disappear. I do randomly hear people of twitter say that “wordpress ate my post” but I’ve never had that happed to me. I do, however, frequently write my posts in a text editor rather than in the WordPress one.
I’m not sure what is going on with your WordPress installation but you may want to save the data and your theme files, delete the installation and database and start with a fresh install. I’m not sure…
BloggerNewbie says
http://vsp.help.yahoo.com/index.html?lang=us&prop=smallbusiness&query=iis
as far as the fresh install I would save the wp-config file and the theme file and then totally wipe out the root directory, then add all the files for wp?
(sorry, I’m hogging your whole comment section)
Kim Woodbridge says
Hi – I don’t think I should advise you through the comments – I can help to a point.
For a completely fresh installation you would want to backup your database too and then delete it and create a new one.
This might be too much – there might be a less drastic solution.
BloggerNewbie says
maybe I’ll wait until 2.7! Thanks for your thoughts!
Herb Segars says
I tried to use the WordPress auto upgrade plugin and it wreaked havoc on my host’s server. My cgi and php scripts were shut down until I could assure them that I had fixed the offending script. I now upgrade manually and I haven’t done it often enough to remember how to do it correctly. Thanks for posting the information.
Kim Woodbridge says
Hi Herb,
Thank you for visiting and commenting. Sorry you had trouble with the plugin – sounds extreme. I’m glad my guide will be useful the next time that you upgrade.
Daniel PC says
Hi
thank you very much.
I’ve made your step to step and works fine!
Daniel
Kim Woodbridge says
@Daniel PC – Thank you for visiting and commenting. I’m glad the guide was useful – I use it when I upgrade now too :-)
Robert Owen says
Thanks for these directions! They worked like a charm.
Robert Owen´s last blog post – History Lesson
Kim Woodbridge says
Hi Robert – Great! Did you use the instructions to upgrade to 2.8?
Robert Owen says
Yes! I had to upgrade three different WP sites and each failed on the auto upgrade. Your instruction worked perfectly each time.
I don’t think I will bother with the auto upgrade process anymore… This method is just too easy! :-)
Robert Owen´s last blog post – Remote Shutdown, Oh how I love thee…
Tine Reese says
These instructions are so easy to follow and you definitely do a better job of explaining every step in the process than the WordPress site does. I was able to upgrade and have everything working properly on the first try. Thanks for making this available!
Kim Woodbridge says
Hi – Great! I’m so glad the article was helpful. I pretty much know the
steps by heart now but when I’m tired and doing upgrades I refer
to my own article ;-)
Guilherme Caldas says
Great how-to!
Thanks a lot!!!
Kim Woodbridge says
Hi Guilherme – Great! I’m glad it helped.
Donny says
Great post!!!
My first time upgrading will be tonight! I’m on 2.7.1 upgrading to 2.8.1
I will let you know how it goes…
I’m nervous!!!
Kim Woodbridge says
Hi Donny – Just make sure to do the backups and check for plugin compatibility. As long as you do that anything that goes wrong, which probably won’t, can be corrected.
Donny says
Yes! I’ve done that. Thank you!!
One question.. You said not to delete the wp-content folder, how about the cache folder inside?
thanks.
Kim Woodbridge says
Hi – It depends on that the cache folder is for but 99.5% of the time it’s fine to just leave the entire wp-content folder as is.
Donny says
Hi again,
I have to say, it felt good being successful at upgrading wordpress manually, it’s just too easy! If you follow this how-to step by step you should not have a problem.
Word from a newbie.
Thanks Kim!!!
Kim Woodbridge says
Hi Donny – That’s great! I pretty much have it memorized but I use the same guide and it hasn’t let me down yet :-)
HappyTummy says
Thanks so much for this. Just upgraded manually using your tutorial, and it worked perfectly!
Kim Woodbridge says
Hi – Great! It hasn’t let me down yet either :-)
Adi Murvianto says
Thanks Kim.
I’ve try the automatic update and fails.
Then I ask google and find your site, and it works like a charm.
Now I have WP 2.8.3 engine! Great!
.-= Adi Murvianto´s last blog ..Mengatasi Masalah Network Dengan Winsock XP Fix =-.
Kim Woodbridge says
Hi Adi – I’m really glad that my guide worked for you when the auto-upgrade didn’t :-)
Rosie says
Hi Kim :)
I have been hacked and it seems my user/admin/email has been deleted so I cannot get into my blog in the first place. I am terrified that the hack will continue and get everything. So far my posts, archives, and categories are gone – but everything else remains.
I would like to upgrade manually – but when I am asked to login – I will not be able to. I need to get in somehow and add myself back as as the real admin/user etc. and delete all the other users/registrants ….and then figure out how to clean up this hack. I know I need to upgrade and then compare the code to the original code – removing the hacker code – but am a little scared to do this etc… is there anyway you can help? Or at least get me back as admin so I can start this long journey of fixing my blog?
THank you so much – Rosie….:)
.-= Rosie´s last undefined ..If you register your site for free at =-.
Kim Woodbridge says
Hi Rosie – I’m so sorry that this has happened to you. I received your email and will respond to you there.
Alan says
Thanks, this came in very handy. I thought I had corrupted my files and required a manual install! Very easy to follow guide!
Much appreciated.
Regards,
Alan
.-= Alan´s last blog ..Freelance-script.com – PHP script installations =-.
Kim Woodbridge says
Hi Alan – Thanks! This guide hasn’t let me down yet :-)
softize.net says
Hi Kim,
I must say this guide was excellent for everyone. You give detailed instructions and security notices that everyone would love to know.
I haven’t done a manual upgrade to my site yet so this was really helpful, (always is a first time to do things :D ) so thanks for this.
Regards, Altin
Kim Woodbridge says
Hi – Thanks! It still works without any problems :-) I used to use my guide to do upgrades but have done so many now that I have it memorized …
softize.net says
Yeah, I just upgraded my site in just 5 minutes and it was very very easy to do, thanks to this post also. Sometimes we are not too sure when we make something for the first time and this post made things clear. Also thanks for the reply :D
Donny says
I have to thank u again. I’m always coming back to this great post for reference! ;)
Kim Woodbridge says
Hi Donny – Great! I’m glad it helps.
Ari Herzog says
I don’t think I ever commented here, but I bookmarked this post many moons ago — and have followed your steps for the past few iterations of version upgrades. Many thanks!
.-= Ari Herzog´s last blog ..Analyzing and Changing My Online Self =-.
Kim Woodbridge says
Hi Ari – Thanks! I follow the same steps ;–)
April says
I followed your simple (thank you) instructions and am now getting 404 error on sub pages… I can’t find an .htaccess file? Upgrade to 3.0.4.
Kim Woodbridge says
Hi April – Try recreating your permalinks under Settings > Permalinks. Change them to the default and save. See if you can reach the subpages. If you can, change them back to what they were and save again.
It’s possible that you have a httpd.conf rather than a .htaccess file.
Rachel Ramey says
When I deactivate my plugins, will they retain their settings? I have nineteen active plugins, some with a LOT of settings, and I really, REALLY don’t want to have to set them all back up again.
Ari says
Yes, they will, Rachel — if you deactivate and not delete the plugins.
Sitemap plugins would need to be rebuilt; the rest should be fine.
Kim Woodbridge says
Hi Rachel – Ari is correct. Deactivating the plugins won’t remove the settings – that will only happen if the plugin is completely deleted.
Amy says
After getting errors repeatedly when trying to upgrade to 3.0.4 in spite of troubleshooting steps like deleting the upgrade folder and giving it 777 permissions, I found this post through Google. It’s especially helpful since WordPress’ own manual upgrade instructions are basically —
1. Trash WordPress.
2. Upload new WordPress.
I wanted a more step by step approach and you covered it beautifully! Thank you so much for the help. I really appreciate it and upgraded without a hitch.
Kim Woodbridge says
Hi Amy – Excellent!
I wrote this out when I first started upgrading sites all the time. I finally memorized it but I referred to it for quite some time. I should add a note that this is still valid even though the article is over 2 years old.