How to Transfer a Website to Another Host ... with NO Downtime
A common question from website owners is how to transfer their website when they want to move to another hosting provider, particularly with ZERO downtime.
Nobody likes an unavailable website, least of all a business owner who relies on his or her website! π€
In this article I'll show you the steps you need to take to migrate your website to make it a seamless move which your users will not even notice.
What Exactly is Being Transferred?
Firstly, be very clear on what you are actually trying to transfer when you say you want to "transfer your website".
There are usually several different "layers" which work together to display your website, and you can change your provider for each of these layers separately (if at all).
The Typical Layers of a Website
Here are the common layers your website is based on:
A Domain Registrar, which is where you originally purchased your domain name.
Your NameServers, which is where you configure addresses for your website. This might be a configuration for your email addresses, or having a subdomain like blog.mysite.com.
Web Hosting, which is where any files making up your website are kept.
Email Host, which is where you receive emails like john@mysite.com.
HOWEVER π§ ... it can be confusing because you could either :
have the same company performing all of these roles
have multiple companies performing one or more of these roles
Example Website Architecture
Here is a hypothetical example:
Domain Registrar (Google Domains)
NameServers (Google Domains)
Web Hosting (Duda)
Email Host (Google Workspace / Gmail)
(We'll be using this example throughout this article.)
Since Google Domains shut down in mid-2023, a common question might be "how do I transfer my website from Google Domains"?
Since you read the previous section πͺπͺπͺ, you now know that only two layers need to be transferred - the Domain Registrar and the NameServers.
Read on to learn how to do this without your website being unavailable.
Break Down Your Migration into Independent Stages
Remember those different layers we spoke about previously?
It would be a terrible mistake to try to move all the layers at the same time. Don't do it!
You don't want to move more than one layer at a time because ...
There are often delays when migrating any layer. If you move multiple layers at the same time, you will have no idea where your problem is!
So:
Move your Domain Registrar separately to moving your NameServers
Move your NameServers separately to moving your Web Hosting
Move your Web Hosting separately to moving your Email Host
and so on.
It doesn't matter too much which order you make these changes in, but I prefer to follow the order listed above.
βββ Finish each stage and verify it's working before starting the next stage.
If you try to migrate everything all at once, something will probably be screwed up and you'll waste a lot of time looking at the wrong layer to fix it.
Transferring NameServers
To move nameservers, you simply go to your Domain Registrar and change the nameservers from old to new.
However if you do this before your new Name Servers have the same records as your old nameservers, you'll have downtime.
Only Point to Your New NameServers AFTER Copying Your DNS Settings
So when moving Name Servers, the key thing to remember is: only point to your new Name Servers once your new Name Servers are exactly the same as your old Name Servers.
Exactly the same means all the DNS records are the same (A, CNAME, MX, etc).
Two Common Gotchas When Transferring NameServers
Two gotchas to watch out for:
A common problem is that only some nameservers handle what's called "apex cname flattening" (basically pointing mysite.com to some.other.domain.com ). If you move from nameservers which can handle this to nameservers which can't handle this - your site will go down.
Nameservers affect your DNS routing and there is often a delay for these to "propagate" across the entire internet (it's not owned by a single organization). So if you really want to be safe, create your DNS records in your new nameservers, then wait 24 hours, then point to your new nameservers. Usually not necessary though.
Example: Transferring Name Servers from Google Domains to GoDaddy
If you do transfer your Name Servers successfully, your architecture will change from:
Original (hypothetical)
Domain Registrar with Google Domains
Nameservers with Google Domains
Web Hosting with Duda
After Moving NameServers
Domain Registrar with Google Domains
Nameservers with GoDaddy
Web Hosting with Duda
Transferring Website Hosting
To move to a new website, you go to your nameserver and point the DNS record to your new website's servers.
If you do this before your new website's servers are configured correctly / same as your old website, you'll have downtime.
So when moving websites, the key thing to remember is: only change your nameservers to point to your new servers once your new servers are confirmed to be working as you expect.
Usually wherever you are hosting your website will give you a "hidden" test url where you can preview your website. It might look something like somethingrandom.godaddy.com for example, rather than mysite.com (which is what you want).
Example: Transferring Web Hosting from Duda to GoDaddy
If you move your web hosting successfully, your architecture will change from:
Original (hypothetical)
Domain Registrar with Google Domains
Nameservers with Google Domains
Web Hosting with Duda
After Moving NameServers (the section above)
Domain Registrar with Google Domains
Nameservers with GoDaddy
Web Hosting with Duda
After Moving Web Hosting
Domain Registrar with Google Domains
Nameservers with GoDaddy
Web Hosting with GoDaddy
Transferring Domain Registrars
I usually do this step last.
Transferring your domain from one registrar to another registrar usually requires a domain transfer request - may take several days for the registrar to process.
If you do this after the other stages I described above, your final architecture will be:
Final Architecture
Domain Registrar with GoDaddy
Nameservers with GoDaddy
Web Hosting with GoDaddy