TTLS AND PROPAGATION

The Field Guide

5 chapters · last updated 21 September 2026 · free to read

Nothing propagates. Caches expire, at different times, on different resolvers, and the difference between those two descriptions explains almost every confusing DNS change.

This is the short version: what a TTL controls, why the number you set is not the one that matters, and how to plan around it.

Chapter 1 of 5

What a TTL controls

How long a resolver may keep an answer.

A TTL is a number attached to every DNS record, measured in seconds, that tells any resolver how long it may keep the answer before asking again.

That is the entire mechanism. A record with a TTL of 300 may be cached for five minutes. One with 86400 may be cached for a day. Nothing more complicated is happening.

What it is not. A TTL is not a delay before your change takes effect. Your change takes effect immediately at your nameservers. The TTL governs how long other people's caches are permitted to keep ignoring it.

Chapter 2 of 5

The value that matters

The one already cached, not the one you just set.

Here is the part that catches almost everybody. When you change a record, the TTL that governs how long the old value survives is the one that was already published, not the one you just set.

If your record had a TTL of 86400 and you change both the value and the TTL to 300, resolvers that cached the old answer are still entitled to hold it for up to a day. They cached the old value along with the old instruction.

Which is why the trick is to lower it first

Lower the TTL a day before you plan to make the change. Wait for the old TTL to expire everywhere. Then make the actual change, which now propagates within minutes because the currently cached instruction is short.

Raise it again afterwards, once you are confident, because a permanently low TTL means more queries and slightly slower lookups for no benefit.

Chapter 3 of 5

Why it looks uneven

Caches expire independently. That is all propagation is.

The reason a change appears to reach some people and not others is not that it is travelling. It is that different resolvers cached the old answer at different moments, so their copies expire at different moments.

Your machine may see the new value in seconds because it had never looked before. A colleague's may take an hour because theirs looked forty minutes ago. Neither is more correct.

What "propagation" actually describes

Nothing propagates outward from your nameservers. Resolvers pull, they do not receive. The phrase describes the period during which independently-timed caches happen to still be holding old answers, which is why nobody can give you an exact completion time.

The upper bound is knowable, though, and it is the previous TTL. Past that, every resolver that follows the rules has discarded the old value.

Chapter 4 of 5

Planning a change

Lower a day ahead, change, raise afterwards.

The full sequence, for any change that matters:

For mail records especially. MX and SPF changes are worth planning this way even when they feel minor, because the failure mode is silent. A web change that goes wrong is visible within minutes; a mail change that goes wrong looks like a quiet week.

Chapter 5 of 5

When it is actually stuck

What to check when time has passed and nothing moved.

If more than the previous TTL has passed and the old value is still appearing, the problem is almost certainly not caching.

Check these, in order

In roughly nine cases out of ten the answer is the first one: the zone being edited is not the zone being served.

Check yours

See where your own domain stands.

Everything above, checked on your domain in about ten seconds. Free, no account.