Joomla-WordPress migration made easy

Eric WestonWebsite DIYLeave a Comment

Info type:
Applies to: WordPress and Joomla websites hosted with SiteGround.
Good for: When you don't have the knowledge and tools of a professional web developer, but you need an easy way to test and convert your website from Joomla to WordPress (or WordPress to Joomla).
Assumes: You have — or are prepared to upgrade to — 'GoGeek' level on your SiteGround hosting account, so you can access the staging tools.

Think you might like to switch your website from Joomla to WordPress (or vice-versa)? Without specialist help or going offline for more than a few minutes? Here’s how to use a GoGeek account on SiteGround Web Hosting to easily build and test a replacement site (and then switch over fast).

Joomla-WordPress migration for dummies

Professional developers will likely scoff at my method; but we’re talking about things that are not obvious to the rest of us. This method provides an easy way for you to build your replacement site at leisure, and a mechanism for doing the switch-over very quickly.

But, I’m assuming you have a relatively simple site and you’re happy with a do-it-yourself approach. No specialist data migration or other complex needs here. If you have any doubts, and especially if you have anything that is business-critical, seek professional help.

I’ve found that SiteGround’s tools make amateur web development much easier. However, you make any changes to your website at your own risk. I’m just sharing what worked for me.

Why SiteGround GoGeek

I use SiteGround Web Hosting with the GoGeek package for a number of reasons. But the biggest reason is the tools that make it easy for non-experts to get a WordPress or Joomla website up and running and then:

  1. Make multiple separate copies of the live site on demand.
  2. Make and safely test changes on these copies.
  3. Once happy with changes to a copy, choose to push it to the live site.
  4. …all whilst being able to recover from automated backups if necessary.

It is also possible to use these same tools to change things around if you’re not happy with your choice of Joomla or WordPress, without having to take your live site offline whilst you work on it (except very briefly when you’re ready to do the switch-over).

During early development I was developing Tips Unzipped in Joomla. But I’m an amateur and, much as I like Joomla, I found it too hard to create the experience I wanted. Since originally writing this post I also switched from Joomla to WordPress for my company website.

Start staging with your alternate CMS

This example assumes you are switching from Joomla to WordPress. Simply switch the names around if you’re going the other direction.

Create a staging copy

  1. Log in to your SiteGround Users Area and go to cPanel.
  2. Go to JOOMLA! TOOLS→Staging. Find the website you plan to replace and click the Create Staging Copy button.

    ‘Create Staging Copy’ button in the SiteGround Staging management tool.

  3. Follow the on-screen prompts and wait for the copy process to complete. You’ll now have a duplicate of your live site — if you had no prior staging copies then this will be Staging: 1 (otherwise, substitute as appropriate in the steps that follow). But we’re really just interested in the staging ‘container’ in which we’ll create the replacement site.

Empty the staging copy

  1. Return to cPanel Home, then go to File Manager.

    File Manager icon in cPanel.

  2. Browse to the staging folder and find the sub-folder that corresponds to the staging copy you just made. So for Staging: 1 you want sub-folder staging/1.
    Don’t get confused by similar-looking folder names — you want staging/1, not .staging/1.

    Staging 1 folder in File Manager.

  3. Delete everything in that folder. That’s right — delete every file and sub-folder you see within staging/1.
  4. Return to cPanel Home, then go to DATABASES→MySQL® Databases.

    MySQL Databases icon in cPanel.

  5. Scroll down to Current Databases and find the database that corresponds with your staging copy. It’ll look like {your username}_joom###_st1, where _st1 corresponds to Staging: 1. Delete this database.

    Deleting the unwanted staging copy database.

Now you have an empty staging container into which you can install WordPress. (If it is not empty then the installer in the next steps will abort with an error because it detects and existing installation)

Install new CMS in the empty staging copy

  1. Return to cPanel Home, then go to AUTOINSTALLERS→Softaculous.

    Softaculous icon in cPanel.

  2. Find the WordPress script (if it isn’t on the first page then you’ll find it on the left-hand menu under Portals/CMS).
  3. Install the WordPress script, choosing the correct staging copy location at Choose Domain. For example, if your staging copy is in the first slot choose

    Choosing the right staging domain in the Softaculous installer.

    Take care to choose the correct staging sub-domain
    Be sure you are selecting the correct staging domain that looks like, and not your live site domain Otherwise you’ll overwrite your live site! (Though at least with the GoGeek account you can easily restore from a recent automated backup)
    Obviously, you should also note down any important details such as the username and password you choose for the administrator account for your new site.
  4. When you’re ready, click Install to run the script. All being well, you’ll see a progress bar and soon have a fresh copy of WordPress.

Build your replacement site

  1. Edit your new WordPress staging site as you wish, building it up and testing until you have a version you are happy with as a replacement for your live Joomla site.
    You can duplicate any staging site to the next available number  (Staging: 2, Staging: 3, etcetera). This simple way of creating new ‘branches’ as you go is great for experimenting without messing up your main efforts.
    As normal, when cross-referncing items within your own site try to avoid ‘hard coding’ your the site address into them. Otherwise you’ll find things will break when you switch between staging and live sites. Instead, use a relative URL wherever possible. For example, instead of… use /wp-includes

Deploy your new site

Ready to replace your old Joomla live site with your newly developed WordPress staging site? Well, the Push to Live feature won’t work because we’re not using it the way it was intended — it will detect the mismatch in CMSs and abort. But we can get around this easily using the tools in SiteGround and cPanel as follows.

  1. Go to JOOMLA TOOLS→Joomla Toolkit.

    Joomla Toolkit icon in cPanel.

  2. Pick your live site domain and click Manage.

    Choosing the live site domain to manage.

  3. At Delete Application, click the Destroy button and follow the prompts to delete the Joomla live site.

    Deleting the Joomla live site.

  4. Using File Manager again, browse to the root folder of your live site and clean up any redundant files that won’t serve a purpose with your new WordPress version of the site. Take care not to delete any nested folders containing other sites in your account.
  5. Return to cPanel Home and go to WORDPRESS TOOLS→WordPress Toolkit.
  6. Pick your staging site domain and click Manage.
  7. At Move Installation, click the Move button and follow the prompts to move the WordPress instance from staging to the live site.

    Moving the WordPress instance from staging to the live site.

  8. You have now replaced your old Joomla site with your new WordPress replacement. Check your live site URL to see if things are working properly, and troubleshoot any small issues you find. If it has gone badly wrong somehow, restore from your latest backup and do some research before you try again.
  9. Now to tidy up the loose ends: Go back to the staging management and Destroy the staging copy (it is just an empty shell now, as you moved the contents a few moments ago).
  10. Done — reward yourself with a nice cup of tea or a treat!

Try it, you might like it!

I love SiteGround’s staging features for Joomla and WordPress. If you want to find out more and perhaps give them a go yourself, visit SiteGround Web Hosting now.

SiteGround Web Hosting