When I first started writing this post, my plan was to create a single post as it is one task at the end but I soon realized that I am having around 70 images used for illustration purposes without writing any single word.
There are few affiliate links, if you click a link and make a purchase, I may receive a commission at no extra cost to you
Imagine waking up one day and logging on to your WordPress website for writing a new post where you find a new WordPress,plugins or themes updates, you click on the update button and all of the sudden you get everything messed up.
This issue happened to me so many times and so I decided to create this post as a series of posts to cover this topic of how to update WordPress safely in details (I will do my best here to make it as easy as possible) and you will able to update your WordPress site without any hassle.
I am going to provide you with step by step free guide on how to update WordPress safely but with the following assumptions.
- I am showing you here how to do everything for free but I highly recommend to at least invest in buying either UpdraftPlus, Duplicator or DesktopServer as the premium version of any one of these really helps a lot in saving your time by automating the processes.
- I am not showing you here how to test your local copy of your cloned WordPress site, I assume here you have enough knowledge on how to verify that for example all plugins’ functionalities are working fine, widgets are all in place and your current theme is not affected.
- I am assuming that you are testing your cloned WordPress copy on your local PC on all browsers, don’t blame me for browsers incompatibilities as sometimes this happened before to have your WordPress layout inconsistent between different browsers and you will not notice this as you are testing on one single browser and not on all the others.
- I am assuming that even testing all browsers successfully will not help you to detect any issues on mobile devices (assuming your are using responsive theme design) as you will not be able to test on mobile devices as your are hosting a local copy of your cloned WordPress site on PC, again don’t blame me on that. (hint: if you really want to cover this area of testing then you can invest in another domain name for testing and have all your testing carried on your web hosting and remember to remove your testing WordPress website from Google indexing).
If you are OK with all my above assumptions then I will discuss the following topics
Introduction to WordPress updates
WordPress usually gets a new release every 120 days which means 4 times a year, if they are planning to make an exception then they will announce
it, due to the fact that most WordPress developers are volunteers and few of them are getting paid by Automattic (the company behind WordPress.com), they work continuously to improve the WordPress and to bring to you new features.the software has no known bugs, therefore it has not been updated. (Wietse Venema) Click To Tweet
Then why we have to update our WordPress sites, well we have 3 reasons to consider
- Security: When new WordPress version comes, older versions are not longer supported and are susceptible to malicious attacks
- New features: WordPress team is always working on adding new features and usually they come in major releases (I will discuss it below)
- Plugins and themes: Most of WordPress plugins and themes are developed by developers in WordPress community so they have to update their code to comply with the new WordPress releases
Minor release vs Major release
Minor release (as knows as point release) always increments the number version by one decimal or two e.g. from 3.0 to 3.0.1 so you don’t need to worry about this release as it is most probably released to fix a minor bug or to clean up a source code.
Major release jumps a whole number when adding new features, e.g. from 2.9.2 to 3.0, this is a sign of new features added to the release and that is what you need to properly test to make sure you can proceed with the new major WordPress updates.
Upload your backup to Google drive using UpDraftPlus plugin
Assuming you know how to install plugins on your WordPress site, go ahead and install UpdraftPlus plugin then go to Settings on your left hand side menu and select UpdraftPlus Backups, under the UpdraftPlus Backup/Restore page on the first line with tiny font you will see a hyperlink notice that says
WordPress makes it drop-dead easy to start a site. Take my advice and go do it. (John Battelle) Click To Tweet UpdraftPlus notice: Follow this link to authorize access to your Google Drive account (you will not be able to backup to Google Drive without it)
Log on to your Google account, I suggest to create a new account with your site name e.g. [email protected] to start using 15 GB under Google Drive
After you create your Google account (or use your existing account if you would like), UpdraftPlus plugin will ask you to allow the installed plugins to access your Google account, click on Allow button as shown below
A confirmation screen will be displayed indicating that Google authorization is in place, click now on the Complete setup button as shown below
Now you can click on the blue Backup Now button, no other settings are required.
All these checkboxes listed below are checked for you by default, don’t change anything, just click on Backup Now button
A progress bar will show up indicating the percentage of completion, just wait for a while
Now switch to your Google Drive account to verify that all the 5 files are completed backup successfully
Creating your WordPress backup using Duplicator plugin
Search for duplicator plugin, it should be the first one to show up on search results, click on Install Now button as shown belowMy powers are ordinary. Only my application brings me success. (Isaac Newton) Click To Tweet
Then click on Activate button, it will take you to the Plugins screen.
On the plugins screen, under Duplicator click on Manage button.
Duplicator will show up the Packages screen with No Packages Found message in the middle of the screen, click on Create New button
Duplicator plugin will create the backup name as today’s date followed by underscore and your website name, on the first package you will create you want to make sure not to check Archive Only the Database option under Archive folder shown below as you want to backup files and database, on the next backup you can select this option assuming you did not update your WordPress (no new plugins or images uploaded)
On the scan screen, you just sit and wait, no action from your end.
After the scan gets completed, click on the blue Build button.
Building your package will start, again no action from your end.
After your package gets completed, you should download 2 files, first file is called Installer (full filename is Installer.php) and the second file is a zip file which contains all the WordPress folder from your web hosting account.
You can also click on the One Click Download hyperlink but remember you have to first select Always allow pop-ups and redirects from your website as shown below, you have to click on the little icon with red dot on upper right corner.
Finally make sure to save your files under a known location as you will use it later.
Downloading and setting up DesktopServer
Now it is time to download an application on your PC or laptop called DesktopServer, just go to ServerPress website, this application will let you run WordPress on your local PC without internet connection, it comes as Premium version and a free one, I will use the free version here
Scroll down all the way to end of page and click on Free – Add to Cart button
This will take you to the checkout page as shown below, type your information as all fields marked with asterisks are mandatory, check the Agree to Terms checkbox and then click on the Free Download
This will download a file called dsl-win-v391 as of writing this post (new versions may be released later)
Double click on the Install DSL v391 to start the installation process
Click on the Continue button to proceed, you may get a message like the one I got during my installation, it says something like port 80 is being used by another application or service
Anyway I opened Services and I suspected that the World Wide Web Publishing Service was causing this issue and I was right
Other solution is to download the cPorts application from ServerPress itself as a zip file, extract it to a folder and run the cPorts.exe, this will help you detect Port 80 used by which application
After installation of DesktopServer gets completed, it will create a folder called C:xampplite, go to this folder to make sure that you got files there, I recommend to create an icon for DesktopServer application on your desktop.
Also I downloaded an add-on from ServerPress called Database-Archive, it creates files which contains all your databases and their configuration, in case you want to run it on multiple PCs or to restore it later in case of PC crash.
When you extract the files, copy the inner folder which is called database-archive as it comes with MAC (_MACOSX) and Windows versions and paste it under C:\xampplite\ds-plugins, remember to make sure that the database-archive folder which you are going to copy does not contain sub-folders but only the required files only.
Now run the DesktopServer exe from inside C:\xampplite or from your Desktop icon.
DesktopServer starts with 2 options, by default Yes, Start Apache and MySQL services is selected by default, notice that the Database Archive is there, this is the one which we copied earlier to C:xamppliteds-plugins.
Note: when I did not find it for the first time I ran DesktopServer application and I realized that when I copied the folder, it was [database-archivedatabase-archiveall files] so I only copied [database-archiveall files], just pay attention to this.
Next step, it will notify you that Start web and database services are completed, click Next button as shown below.
By default, the Create a new development website is selected, click Next.
It will ask you for the site name, I always recommend to create the exact domain name without the extension as shown below.
Note: Blueprint is a drop down list which contains WordPress versions, you can download latest version and add it to Blueprint drop down list if you want to (DesktopServer has WordPress-4.9.6 at the time of writing this post, while WordPress was on 4.9.8 version)
Anyway to update the Blueprint, download your WordPress version (whatever, it can be before 4.9.6) and copy the zip folder to C:xamppliteblueprint, in this case you have to close DesktopServer and start it again to refresh the Blueprint drop down list
When you click Create button as shown above, you will notice a list of steps taken to prepare your local copy of WordPress site then the word Done! right below, click Next button as shown below.
After installation gets completed, you will see a URL as shown below, I always ignore it as I don’t want to setup my WordPress from scratch, I just want to copy my existing WordPress site to my local.
For now to verify that everything is in place, open any web browser and type localhost in the URL, you should see the page loads something similar to the screen below.
Cloning an exact copy of your WordPress website to your local PC
Now before I start, I will delete all the files installed under my local WordPress site which was created by DesktopserverWe've had cloning in the South for years. It's called cousins. (Robin Williams) Click To Tweet
Why I am doing this, simply because the Duplicator plugin created a complete package of my WordPress website and it contains all the files required to get a cloned copy of my hosted WordPress so I don’t really care about the new blank WordPress site
So first, I will start by getting the local path of my new blank WordPress site, I searched under C:Usersmy_profileDocumentsWebsitename_of_website.dev.cc where my_profile is the name of the Windows’ user, in Mac OS I think it is under Documents folder, then I will delete all files under name_of_website.dev.cc, now I will copy the Installer.php and the zip file which I downloaded earlier from Duplicator plugin to my local WordPress site folder.
Now open any web browser and type the following URL name_of_website.dev.cc/Installer.php in my case, I went to DoYourBlogWithMe.dev.cc/Installer.php and press Enter (Return in Mac)
The screen above and below is one long screen listing all the prerequisites before you start the cloning process, click Next button as shown below.
Duplicator will start running the deployment process and it extracts the zip file into the local copy of your WordPress folder.
After extraction gets completed, Duplicator will display the local copy of database, it is not created yet as Duplicator is not responsible for creating databases, it has to exist to it can copy only your web hosted WordPress database to the local MySQL database.
In order to create a local copy of MySQL database, open any web browser and type localhost, it will load all the current DesktopServer websites (remember you are only allowed 3 websites with the Free copy of DesktopServer), click on Database button.
This will load a local copy of phpMyAdmin with Username = root and password is blank, click Go button.
Now phpMyAdmin starts with all local databases, I suggest to use the existing one which was created earlier by DesktopServer, select this database on the left by just clicking on it, click on Privileges menu as shown below then click on Add user account.
Type the new user name and select all privileges and then hit Go as shown below.
Now click on operations to rename database to something easy to remember and click on Go.
Now I will switch back to the Duplicator screen and type the database name, username and password then click on Test Database button, I can click on Yes button to start the update data process.
Duplicator on this step it will display the URL, Path and Title (I believe Title was picked up from Duplicator original database), click on Next button as shown below.
Duplicator will start updating the database by copying all records to the local MySQL database which I specified on the steps above.
Duplicator completes with a screen showing Site Login or Show Report, click on Site Login button as shown below
Congratulations, you now have an exact copy of your web hosted WordPress site for you to test and play around.
Installing the new WordPress core, plugins and themes updates on your local PC
Now you are running your WordPress site on your local but how can you update your local copy of WordPress with plugins, themes and cores (updates to WordPress itself)
First, you need to know that all plugins, themes and cores exist as a zip file although you install them from inside WordPress dashboard but you can still get a copy of the zip file and download it on your local PC
For plugins, click on More Details link under the plugin (Image 1) as it will load the plugin details with the location of the file on WordPress.org (Image 2) and you will be able to click on Download button (Image 3)
For themes, go to Appearance menu and click on themes, on the Themes page click on button, this will load the Add Themes screen, take a note of the theme name which you want to download then go to WordPress.org and type the theme name in the search section on top of the screen, this will display the link to this particular theme, click on the link (in my scenario, Viable Blog) and it will load the Viable blog theme page on WordPress.org with the Download button to the right.
For WordPress cores, go to https://wordpress.org/news/category/releases/ to find your WordPress release.
Testing and applying the new WordPress core, plugins and themes updates on your WordPress siteThe one size fits all approach of standardized testing is convenient but lazy. (James Dyson) Click To Tweet
This topic can be a separate post by itself, I am planning to do that but for now I want you to pick my brain on this
I will display below a simple concept which you can take it from there and work on that but If you are testing for minor releases then don’t put much effort.
Now for major releases, create an excel sheet as shown below with row A2 going all the way down to row An as list of items to test, you can add to this list going forward when new things pops up and column B to column n as list of different browsers.
Finally if you like this post, please share it using social media to the left hand side or bottom (mobile)