On the surface, changing a theme, might seem harmless. It’s so easy, it’s hard to imagine it can do any harm. You can even do it from within the dashboard these days, without any manual FTP upload required. It’s quick, painless and perfectly safe, right? Depends on how you’ve set up your site.
The thing about WordPress sites is that they often become more of a puzzle, or jenga tower, over time. You have your theme, added plugins and any small (or major) edits you might have done. These all come together to create a beautiful functional site that suits your needs.
And that’s why it’s important to be careful when you change your theme (or even update WordPress on your site for that matter). If you pull out the wrong piece, the whole structure might collapse. And then you’ll end up having to go through a long (and with some webhosts, costly) retrieval process. Or you may end up having to replace many of the plugins you’ve grown to know and love.
But, there is a way you can make changing the theme a 0% risk endeavor, and luckily, it’s covered in detail below. Let’s get started!
Step 1. Select A New WordPress Theme
If you haven’t already, find a new theme you love. If you’re not a developer, try to find a theme that looks more or less how you want it to. A great place to look for premium themes is Themeforest. Here you’ll find lots of WordPress themes that have plenty of color options, added features, and even drag & drop page builders (like our Total WordPress Theme) to make it easy for even non-coders to customize their WordPress theme.
Of course if your budget doesn’t allow for a premium theme, have a look at our WhoClick Free WordPress Themes or at WordPress.org’s massive repository where new free themes are added all the time.
When selecting a new theme it’s important to make sure that your new theme supports the plugins you deem necessary. If you’ve built an entire store with WooCommerce, you’ll probably want to continue using WooCommerce with your new theme. So just double check plugin compatibility and main theme features before committing.
Of course, if you’re a developer you don’t have to worry about finding the “perfect” theme. You probably have the knowledge to create or customize a theme yourself. Once you find a theme that meets your needs, move on to step two.
Step 2. Create A Backup Of Your WordPress Site
It’s a good idea to backup your WordPress website before changing your theme, and there are quite a few ways to go about it. In this post we’re going to focus on two different methods: using backup plugins, and backing up your WordPress site manually. Both are fairly easy processes (even for new users).
Method 1: Using A Plugin To Backup WordPress
The best backup plugin (in our opinion) is VaultPress. It’s easy to use and takes a complete backup of your website. Plus it starts at just $39 per year (for a JetPack Personal plan). A low price considering it offers automated backups, 30 day backup archive, and 1-click restoration. But wait… there’s more! Because VaultPress is a part of JetPack plans, you’ll also have the option to enable Akismet and JetPack premium features on your site.
The biggest benefit of having a plugin do your backups, is that you don’t have to worry about it.
A couple other solid premium options are WPvivid and BackupBuddy. If you want to learn more about either, checkout our full WPvivid review and BuddyPress review.
And if your budget is limited, a standout free alternative is Updraft Plus. Updraft not only backs up your site, but uploads it to multiple locations “in the cloud”, all with a single click. And it also lets you to do a simple 1 click restore if something has gone horribly wrong.
That said, if your website is a big part of how you make your income, or incredibly important to you in other ways, you would do good to make a manual backup as well every now and again. Just to cover all your bases.
Method 2: Manually Backup WordPress
While backing up your WordPress site manually might seem like a big, complicated, even, overwhelming task to a newer user, it’s really quite straight forward.
#1 Log into your webhosts control panel for your site (whether that’s cPanel or something else).
Most webhosts have the option to either log into your account, or into the control panel through their website, so go to your webhosts site and log in.
#2 Find FTP login information, or create a new account.
To do this, click one of the options inside the control panel menu that says something like “FTP users/accounts” or “FTP access” or “FTP settings”. If you don’t see any users, or you don’t know the password, you can quickly create a new user by clicking “add new user”, then creating one.
#3 Login, and copy all relevant files from the right directory.
Now, at this point many people would advise you to get an FTP client like FileZilla, but you can actually access your site through ftp with your web browser, or even good old Windows Explorer (or finder/nautilus if you don’t use Windows).
To do this, simply type “”ftp://yoursite.com” into explorer, or the other one, and log in with information you found, or the user you just created. I like to use my file browser because it makes backing up as easy as copying and pasting into the desired location, then making the folder into a zip archive.
#4 Go back to the control panel, and open up phpMyAdmin.
For many control panels this involves a fair bit of scrolling downwards (look for the logo pictured below).
#5 Choose the right database.
If you have a lot of WordPress sites running on the same hosting a lot of databases will be in the same phpMyAdmin. So you need to double check that you’re choosing the right table to back up. One way of doing that, is simply going into the databases and checking what’s written in the posts under the “wp_posts” section.
Another way to find out, is by checking your wp-config.php file on the relevant site. You can do this either through the WordPress Dashboard, or by opening the backup copy of the file in a text editor. (Be careful not to edit it.) Simply search for ‘db_name’ and you’ll find it instantly.
#6 Export the database
Simply click custom, and select the right database when choosing which one to export, scroll past the other custom options, and click go. It’s exactly as simple as it sounds. Another piece of good news is that it’s just as easy to import a table. If something goes wrong… and you already know how to do it!
Step 3. Clone Your Website For Testing
There are two easy ways to clone your website for testing, either by using a staging site that comes with your hosting plan, or by setting up a local server.
Cloning Your WordPress Website To A Staging Site
Many WordPress hosting plans include access to one-click staging such as GoDaddy and WPEngine. These are great options since they’re online, so you can login to test the theme on various devices (something you can’t do with your localhost since it’s confined to your computer).
If you’re using WPEngine this process is extremely simple (as it is with most hosts). All you have to do is log into the WordPress website you want to duplicate, click on the WPEngine menu item at the top of your dashboard, click on the staging tab and the click the big blue button to “Copy site from LIVE to STAGING.” And that’s it (another reason why we love WPEngine so much).
Cloning Your WordPress Website To A LocalHost
Setting up a localhost is also a great option, since a local version is accessible even without an internet connection (making it extra useful). And just like backing up your website, you can either use a plugin to help or manually clone your website.
Method 1: Using A Plugin To Clone Your WordPress Site
Depending on your desktop operating system there are a few options to setup a localhost server.
#1 Install local server software & WordPress.
You can choose from XAMPP, WAMP, MAMP and others. What this software does, is recreate the environment of a webserver on your very own computer. Not only does this allow you to test new themes, plugins, and WordPress updates out on your WordPress site. It allows you to make completely ready-to-post drafts in WordPress, when you don’t have an internet connection.
Remember to activate Apache and mySQL after installation is complete. Once your localhost is ready, you’ll also need to install WordPress locally.
#2 Install plugin on original site and export.
As an example, we’re going to be using All-in-one-migrate here. But you can use any plugin that you prefer. Among the other free plugins, Duplicator seems to be the most raved about. Simply add and activate your plugin of choice, and then export your website accordingly.
#3 Install plugin on local hosted WordPress and import.
This is fairly straight forward. Log into your locally hosted WordPress site, install and activate the plugin, then import.
#4 Wait and enjoy your new clone.
Wait a while as the plugin imports the copy of your site (this can take a quite a while, depending on the size of your site). Then open it up and enjoy once it’s finished. It’s that easy.
Method 2: Manually Cloning Your WordPress Site
Manually copying your live site just includes a few extra steps.
#1 Prepare your local server or staging site.
Whether you’re using a plugin or not, this step is still the same. You will still have to setup your localhost and install WordPress locally.
#2 Copy and paste backup copy of WordPress
If you plan on creating the local clone manually (and you’re already halfway there) you just need to copy the backup copy of the files you took earlier. Just paste them into the appropriate folder ( ampps/www/ folder if using AMPPS, or the mamp/htdocs if you’re using MAMP). Make sure to place the files in a separate folder. This is to avoid trouble with the ‘server simulator’ software (should be placed in for example ampps/www/wpclone/ if using AMPPS). If you didn’t take a manual backup copy already, follow the steps laid out above.
#3 Open up phpMyAdmin and import the database.
First open up the local server dashboard. From here open the phpMyAdmin (if you’re using AMPPS you could also simply enter ‘localhost/phpmyadmin’ into your web browser instead). Click import. Then select the sql backup file you saved earlier, during the manual backup (again, if you didn’t do the manual backup, follow the steps listed above).
#4 Find correct database user/password info and create a user in phpMyAdmin.
First, open up your backed up wp-config.php file in a text editor, like notepad, and search for DB_USER and DB_PASSWORD. Then take those values (located where I blacked out), and make a new user with that username and password by going to databases in phpMyAdmin, and then clicking check privileges next to the right database,then finally clicking add user.
#5 Replace Some Urls
So your new local site doesn’t go crazy thinking it’s located somewhere else, you need to edit two fields in the database. The siteurl and home, under wp_options (if it’s only displaying 25 rows per page, home will be shown on the 2nd page). Edit them to https://localhost/wp or whatever you chose to name your folder, and your cloned site will be ready to use.
Step 4. Testing & Troubleshooting Your WordPress Theme On Your Clone Site
This is as easy as logging into the admin area on your local clone or staging site. Install and activate the theme to see what happens. All of these steps are not required. They are just some of the many theme features you might want to test if you switched themes.
This is a great way to test if there are any errors in your theme. To enable wp_debug , open up your wp-config.php file and set wp_debug to true, like so:
This will show all of your php errors and notices on the front end of your WordPress site. Keep in mind that not every notice displayed will break your site, but it’s still a good idea to fix them.
Custom Post Types
If your old theme used one or more built-in custom post types and your new theme doesn’t have theme it may look like you lost all your content. But don’t worry, it’s still in your database.
You can use a third party plugin, like Post Types Unlimited, to register your old custom post types in your new theme. If you aren’t sure what the names of your custom post types are you can ask the old theme developer, or search the old theme for the register_post_type function and locate the names of your old custom post types.
It’s a good idea to look over the widget options, ad spots, footer columns and the sidebar width in addition to any other widget ready areas. This way there are no surprises later.
Double check the menu locations and formats in your new theme. Perhaps there are more menu locations, or a vertical navigation. Just look the theme over so you know where all of your menus will be when you activate the theme on your live site.
A lot of themes use custom fields. So if you’re using one to define a specific video/audio/gallery/etc you might have to alter the output of your post formats in your new theme. This can be done via child theme so you can continue using the old meta on old posts, or you might be able to use the add_post_meta( )
We mentioned before that if you’re not a developer you should find a new theme that’s compatible with all of your required WordPress plugins. Just to be sure it’s a good idea to test your plugins to make sure they really do work with your theme.
If you are a developer who has created or customized a theme, now is also a good time to make sure that your tweaks haven’t effected plugin compatibility.
Check Browser Console
Here are links to where you’ll find your console for various browsers:
Check Featured Image Sizes
You might have to upload or tweak your featured images when you switch over to your new theme. Once you’ve cleaned house, you’ll want to re-crop all of your images with their correct dimensions.
Some themes like Total crop images dynamically, so you don’t have to do anything. But, if you theme doesn’t do this for you, use the Regenerate Thumbnails WordPress Plugin to regenerate all your images in the proper sizes.
Unfortunately there are themes with built-in SEO options, and if you are currently using them you most likely will not be able to carry them over to your new theme. Instead you should install an SEO plugin on your live site and fill out the options before updating.
If you chose to create an online staging site via your WordPress host then you have the option to do some real mobile testing of your own. Grab your tablet and phone to see how your new theme looks. Or, if you chose to install your new theme on your local host, you can try an online responsive simulator like the Responsinator or Cross Browser Testing.
Make sure to visit your posts, pages, and check that everything is in working order. Once you’ve confirmed that there are no issues, it’s time to move on to the final step.
Step 5. Install & Activate Your New WordPress Theme On Your Live Site
Now that you’ve thoroughly tested your new WordPress theme, login to your WordPress dashboard install it on your live site. Before you activate the theme just do a quick double check using the Live Preview option. You can use this to click through a few of your pages just to be sure that everything looks good.
An optional step would be to install a coming soon plugin on your site before activating your new theme. This way if you have to make any tweaks to your live site after activating your new theme, your visitors will see a pretty under construction or coming soon page. Two plugins we really like are WP Maintenance Mode and the Coming Soon Plugin by SeedProd.
Once you’re ready to go, simply navigate to Appearance > Themes and click the button to “Activate” your new WordPress theme.
To someone who hasn’t experienced the nightmare of a website train wreck, this might seem like overkill. A complete over-complication of something that’s supposed to be simple. Trust me – it’s not. Think of this like having great health insurance on top of eating healthy and exercising, but for your WordPress site. Working hard to troubleshoot your theme locally minimizes your risk of something bad happening on your live site.
Did you find this guide helpful? Or do you have anything to add? Let us know in the comments section!