DNS propagation is one of those techy things that rarely comes up in conversation but is important to understand if you ever move your website to a new hosting company. It’s the whole reason your site is ‘down’ for a few hours during the move. It’s not the files, those can be copied to the new server rather quickly. It’s the DNS propagation.
In order to understand DNS propagation, you must first understand a little about how DNS works. When you set up your website with your new hosting company, they create a master DNS record in their domain name servers. Your domain registrar, the company you bought your domain name from, points to your web host’s DNS server as being the master authority of your domain.
When anyone types your domain name into their browser, the request is sent to the registration database to find out who the DNS authority is for your website. The request is then passed to your hosting provider’s DNS servers to find out what the IP Address is for your domain name, and from there your audience can now view your website.
This handy tool will give you the status of your nameservers across the globe, https://www.whatsmydns.net
The problem with this whole scheme is that in order to speed up the rate at which their customers can view websites, each Internet Server Provider caches (creates a local copy) their DNS records. They read from them locally instead of looking them up on the Internet each time someone wants view any website. This actually speeds up web surfing quite a bit, by reducing the time it takes for a web browser to request a domain lookup and get the reply and reducing internet traffic in the process speeding things up for everyone.
The downside to this caching scenario and what makes it take so long for your website to be visible to everyone, is that each company or ISP that caches DNS records only updates them every few hours. There is not any kind of standard and they each set their own time frame anywhere from an hour to several days. The slow updating of the servers cache is called propagation, since your websites DNS information is now being propagated across all DNS servers in the world. When this is finally complete, everyone can now visit your new website. Being that the cache time is different for all servers, as mentioned above, it can take anywhere from 1 to 48 hours for DNS propagation to fully complete for everyone.
If you’d like an analogy, this is one I’ve used for the non-technical. Think of a DNS change like moving to a new house. When you move, you submit a change of address card to your post office. Your local post office then routes all your mail to your new address. It’s simpler because there is only one place that routes your mail. There are several DNS servers on the internet. When you change your DNS, it takes some time for the new address to get passed to all the others. It’s as if your local post office has to notify all post offices with your new address. During the time this update is happening, some will have your old address and mail (or internet traffic) will go to the old address.