🛰️ How to Check DNS Propagation (What Is TTL?)

Understand TTL and check propagation after a nameserver change

After changing a domain's DNS settings, you'll often hear you need to "wait for DNS propagation." That phrase doesn't really describe what's happening under the hood. This article explains what DNS propagation actually is, what role TTL plays, why changes can take up to a day or two to show up everywhere, and how to check what's actually being served right now.

"Propagation" is really just cache expiry

Many people picture DNS propagation as some kind of signal physically spreading out to servers around the world. That's not how it works. When you update a record on your domain's authoritative nameserver, the change itself is applied almost instantly. The real issue is that dozens of DNS resolvers (caching servers) sitting between you and your visitors have already cached the old value. ISPs, corporate networks, and public resolvers (1.1.1.1, 8.8.8.8, etc.) all keep their own separate caches, and each one keeps returning the old IP until its own cache entry expires. So "propagation" isn't a wave rolling outward — it's just a bunch of independently-timed caches around the world expiring and re-querying on their own schedules.

TTL is what controls the timing

The value that controls how long a cache entry stays valid is the TTL (Time To Live). TTL is set in seconds alongside each record. A TTL of 3600, for example, means a resolver will hold onto that record for one hour before it's willing to ask the authoritative server again. A lower TTL (say, 300 seconds = 5 minutes) means changes propagate faster, at the cost of more frequent queries hitting your authoritative server; a higher TTL (say, 86400 seconds = 24 hours) reduces query load but slows down how fast changes take effect. That's why it's common practice to lower a record's TTL a few days before a planned change, like a server migration, then raise it back afterward. Not every resolver honors TTL exactly either — some enforce a minimum cache time, so values can occasionally stick around a bit longer than advertised.

Why guides say "up to 24-48 hours"

The common advice that "DNS changes can take up to 24-48 hours" accounts for two things: the old record may have had a long TTL set before the change, and if you're changing the nameservers (NS records) themselves — like moving registrars — the parent TLD servers' own cached NS records come into play too, and those are often set with a longer TTL, commonly up to 48 hours. If you'd lowered your A record's TTL to 300 seconds ahead of time, most resolvers pick up the new value within 5 minutes — but caches at some networks, your own local DNS cache, or even your browser's cache can stack on top of that and make it feel slower.

Checking the current values yourself

Instead of just waiting, the most reliable approach is to query a DNS server directly and see what it's returning right now. Looking up A, AAAA, NS, MX, or TXT records lets you see the current value and the remaining TTL immediately, so you're tracking real progress instead of guessing.

🛰️ Try it yourself with the tool

How to Check DNS Propagation (What Is TTL?) — Understand TTL and check propagation after a nameserver change

More guides

🔁
How to Find a Domain's IP Address
Find the real server IP a domain points to
📡
The Easiest Way to Find Your IP Address
Public vs private IP, and how to check yours
📐
CIDR Notation and How to Calculate a Subnet Mask
Convert CIDR notation like /24 into a subnet mask
🩺
How to Check an SSL Certificate's Expiration Date
Check a certificate's expiry without opening a browser
🪪
Understanding JWT Structure and How to Decode It
The Header, Payload & Signature — explained
🗝️
How to Create an Apache .htpasswd File for Basic Auth
Generate an APR1-MD5 hashed .htpasswd file
🔑
What Makes a Strong Password (and How to Generate One)
Length, character sets & entropy explained
🔐
What Is Base64 Encoding and When to Use It
Why it's used in email attachments & data URIs
📘
Using a JSON Formatter to Read API Responses
Turn minified JSON into something readable
🗓️
How to Convert a Unix Timestamp to a Date
Turn seconds-since-1970 into a readable date
🗃️
How to Format Messy SQL Queries
Break a one-line SQL statement into readable clauses
🎨
Converting Between HEX, RGB, and HSL Color Codes
The difference between the three formats
🔠
camelCase, snake_case & Other Naming Conventions
When to use each naming style
🆚
How to Compare Two Text Files (Diff Checker)
Quickly spot differences between two versions