TTL (Time to Live)

TTL is a value on every DNS record that tells resolvers and clients how long they may cache it before fetching a fresh copy from the authoritative nameserver. It is specified in seconds and is the primary mechanism governing how quickly DNS changes take effect globally.

How TTL Controls Caching

When a recursive resolver fetches a record from an authoritative nameserver, it stores the result in its cache along with the TTL. It serves this cached answer to clients without querying the authoritative server again until the TTL countdown reaches zero. At that point, the resolver discards the cached entry and fetches a fresh copy on the next request.

A TTL of 3600 means the record can be cached for one hour. A TTL of 300 means five minutes. The value is decremented as it passes through intermediate resolvers — if a record with a 3600-second TTL was fetched 900 seconds ago, the next resolver to receive it will see a TTL of 2700 and cache it for only that long.

TTL and DNS Propagation

"DNS propagation" is commonly misunderstood as DNS changes spreading outward from a central point. What actually happens is simpler: each resolver that has cached your record holds onto it until its TTL expires. After that, the resolver fetches the new value. There is no active push — resolvers simply stop serving stale cache entries as their TTLs run out.

This means the maximum time for a change to reach all resolvers is equal to the TTL that was set on the old record at the moment you made the change. If your A record had a TTL of 86400 (one day) when you changed it, some resolvers may serve the old address for up to 24 hours. Resolvers that happened to cache it recently will hold it the longest.

The Low-TTL Migration Pattern

When planning a change that needs to take effect quickly — such as moving a service to a new IP address or switching DNS providers — lower the TTL well before you make the change. A recommended approach:

  1. Lower the TTL on the record you intend to change to a short value (e.g., 60 or 300 seconds) and wait for at least the old TTL's duration. This ensures existing caches expire and pick up the short TTL.
  2. Make the record change. It now propagates within the new short TTL window.
  3. After confirming the change is working correctly, raise the TTL back to its normal value.

This pattern eliminates most of the propagation delay associated with DNS changes. It does increase the query load on your authoritative nameservers during the low-TTL window, since resolvers must re-query more frequently.

Negative TTL via the SOA Record

Standard record TTLs cover positive answers — records that exist. For negative answers (responses to queries for names that do not exist), the caching duration is controlled separately by the Minimum TTL field in the zone's SOA record. When a resolver receives an NXDOMAIN response, it caches the nonexistence for the duration specified there. Setting the SOA Minimum TTL too high means newly created records may not be visible to resolvers that recently cached an NXDOMAIN for that name.

Look up DNS record TTLs for any domain

Open DNS Lookup

See record TTLs with the DNS tool →