When I bought VentureHarbour.com two years ago, I had no idea how popular this website would become.
Over the past six months, our traffic has increased tenfold. We’ve seen our bandwidth usage go from 22gb/month to 320gb/month (and back down to 90gb after installing a CDN).
Bandwidth logs for VentureHarbour.com.
Of course, with more traffic comes slower page loading times. While I had done my best to counter this by making page speed improvements, we eventually hit a wall. We had done virtually everything we could to reduce page speed, except changing host.
Until recently, VentureHarbour.com was hosted with Bluehost.
Now, don’t get me wrong, BlueHost are an awesome hosting company who I wholeheartedly recommend. We still host all of our portfolio websites with them, and they’re very fast and reliable. For this website though, we needed something more powerful.
Choosing a web host (MediaTemple vs. Rackspace, Synthesis, WPEngine)
After several hours of research in forums and on Twitter, I decided that MediaTemple was the best bet for us. Many page speed experiments confirm that their hosting is faster than the others recommended above, and they’re also well-renowned for their good customer support.
To be totally honest though, you can’t really go wrong with any of these options.
If you haven’t chose your web host yet, I would thoroughly recommend MediaTemple. The migration that we’re about to walk through has been the most painless migration i’ve ever worked on.
After making my decision, I paid for MediaTemple’s premium WordPress hosting package and waited for my account to be activated.
#1 Backing Up and Preparing for the Migration
The first step in any kind of site migration is to backup everything. Be sure to have a backup copy of the following.
- Do a full FTP backup of the whole site. You may want to do a separate backup of everything in your /wp-contents/ folder, as this is where your plugins, theme, and uploads are stored.
- Export all of your databases from PHPmyAdmin. I’d recommend exporting these in a few different formats (e.g. XML, SQL) to prevent any potential formatting or cross-compatibility issues.
- From within your WordPress dashboard, click on tools, export, and export all content (posts, pages, comments).
As i’m borderline OCD with this stuff, I’d recommend uploading a copy of all of these to cloud storage, such as Dropbox or Google Drive. This just ensures that (god forbid) if anything happens to your computer during the migration, you have a backup of your backup!
Before moving on, ask yourself:
If your current website was totally wiped, would you have everything you need in your backups to recreate it with ease?
#2 Taking before & after speed measurements
Now, there are many reasons why you may want to migrate your website, but the likelihood is that you’ve outgrown your old hosting company.
In that case, it makes sense to take before and after measurements to check that your migration improved your website’s performance. To do this we’re going to analyse out page speed using a variety of free tools:
The reason for using all three is that, as you’ll see, they all provide different responses due to the range of variables involved in measuring a page’s loading time.
I recommend creating a table to chart your page speed times. In mine I decided to record both the DNS response time (the time it takes for the browser to load the first byte), as well as the time it takes for the page to fully load.
Bluehost DNS Response Time
WebPageTest.org – 0.21
Pingdom Test #1 – 0.09s
Pingdom Test #2 – 0.32s
Pingdom Test #3 – 0.10s
GTMetrix Test #1 – 0.21s
GTMetrix Test #2 – 0.34s
Bluehost Fully Loaded
WebPageTest.org – 3.78s
Pingdom Test #1 – 0.81s
Pingdom Test #2 – 0.86s
Pingdom Test #3 – 1.22s
GTMetrix Test #1 – 1.51s
GTMetrix Test #2 – 1.05s
We’ll fill out the times for MediaTemple later so that we can compare how the migration impacted our site’s loading times.
You may also want to capture screenshots from some of the services for a more detailed comparison.
Once you’ve recorded your current page loading times it’s time to start your migration. To demonstrate this process, i’m going to be using MediaTemple. Of course, it will be slightly different if you use another host, but hopefully it will make sense.
#3 Transferring your files to MediaTemple
With MediaTemple you have three options for transferring your files:
- Pay $150 to have their team do it all for you.
- Use their (free) automatic WordPress migration tool.
- Transfer the files manually.
Options #1 is fairly self explanatory, so let’s look at how to transfer your files manually or using their site migration tool.
Having worked on a few nightmare migrations in the past, I was pleasantly surprised by the simplicity of MediaTemple’s migration tool. The concept of migration a website from one server to another in the click of a button just seemed too easy.
But, it worked!
To use the one-click file migration tool, you just need to go to your website’s dashboard and scroll down to the option that says ‘Import a Site’.
This will lead you to a page where you just need to upload your FTP and WordPress login credentials. Once you’ve done this, you just click ‘migrate my site’ and wait up to two hours for the migration to complete.
If you’re not using MediaTemple, or for some reason the migration tool doesn’t work for you, you’ll need to transfer your files manually via FTP and PHPmyAdmin. Instead of explaining how to do this, I’d recommend reading this great guide on how to do this here.
Once you’re happy that your databases and website files have successfully been transferred, it’s time to test that the website works on our new server.
#4 Checking your website on the new server
If, unlike me, you sensibly created an account on MediaTemple under a (temporary) different domain name, you should be able to go to that domain and see whether your new website is working.
If not, there are a few options for testing your website:
- Using the access domain
- Using the staging site functionality
- Editing your computer’s host file
Testing your website with the access domain
In your website’s dashboard you should see an access domain that looks something like e20.e93.myftpupload.com.
For some reason, when I visited my access domain it didn’t display my website. However, when I called the MediaTemple customer support team they mentioned that visiting the domain through Kproxy.com seemed to work.
Weirdly, Kproxy was the only proxy service that I could find that did show my website from the access domain. I imagine this is either a caching or routing issue that would fix itself if left for a day or two.
My experience aside, this is the easiest way to test whether your website is working on the MediaTemple servers before switching your DNS records.
Using a staging site
Another method of checking that your website has transferred correctly is using a staging site. MediaTemple allow you to create two staging sites with every website you create for free. You can then sync your staging sites with your production site in one click.
By creating a clone of your main website, you can then test whether it works under a different domain. If it looks okay, you can simply sync it with your production site, and then you’re ready to go.
Editing your computer’s host file
This method is a last resort and should only be attempted if you know what you’re doing. By editing your computers host file through the terminal you can change the IP address that your browser visits when your domain name is entered.
MediaTemple have a good walkthrough on how to do this for both PC and Mac here.
#5 Updating your email MX records
By now, you should hopefully have confirmed that your website has successfully been transferred onto MediaTemple. The next step is one that is easily forgotten during a site migration: updating email records.
How you do this depends on how you host your email. First of all, you need to add all of your email addresses under the email tab.
If you use something like Google Apps to host your email, there’s a handy button that says ‘point mail to Google’ at the bottom of the page called ‘edit DNS zone-file’. One click of this button will add the correct MX records for routing your email onto Google’s mail servers.
MediaTemple have a handy DNS checklist here for ensuring that your MX records are set up correctly.
#6 Changing your nameservers
At this stage, you should be confident that you can change your domain’s nameservers with no hassle. Providing that you’ve tested your website on the new server and are happy that it’s working, you can go ahead and make the switch.
To do this, go to your domain registrar and find a section that says ‘change nameservers’. You will need to enter your new nameservers, which will likely be:
Once this is done, all that’s left to do is wait. It can take up to 48 hours for your nameservers to propagate fully, so don’t worry if you see intermittent switching between the old and the new version.
You may want to make a small change to the new version of your site via PHPmyAdmin (such as adding an extra letter in the page title), so that you know whether you’re looking at the new or old version of your website.
#7 Testing that your migration was successful
Before you crack open the post-migration beers, you should probably check that everything is working in order. Testing the website should be fairly straight forward if you made a unique identifying mark on one of the versions.
Once the update has propagated, I recommend running a full site scrape using Screaming Frog SEO Spider to double check that the new version of the site doesn’t have any broken links or 404 errors.
Providing this is okay, you just need to do a quick test of your email addresses. After migrating VentureHarbour.com I came across a handy website called IsMyEmailWorking.com which allows you to check that both inbound and outbound email is working correctly.
And, that’s it! So, how did moving to MediaTemple impact Venture Harbour’s page loading times?
Results from our migration to MediaTemple
Depending on which page loading speed tool you use, moving VentureHarbour.com from Bluehost to MediaTemple improved our site speed by somewhere between 20-55%.
Below are some before an after screenshots from Pingdom and GTmetrix.
All in all, this migration was one of the smoothest that i’ve ever worked on, thanks to MediaTemple. I hope this walkthrough has been useful. As always, if you have any questions or thoughts to add, feel free to comment below and i’ll do my best to respond.