What is DNS caching and how does it affect testing?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

You've just published a new SPF record, gone to check it, and it still shows the old one. You refresh. Still old. You ask a colleague to check and they see the new one. What's going on? That's DNS caching at work.

DNS (Domain Name System) caching is when a server stores the result of a recent lookup so it doesn't have to ask the original source again. Your browser does it. Your operating system does it. Your internet provider's resolver does it. Every layer caches results for a set amount of time, called the TTL (Time to Live).

So when you update a record, not everyone sees the change at the same moment. Your colleague's resolver might have fetched a fresh copy while yours is still holding the old one. Both are behaving correctly. They're just working from different snapshots.

This causes real confusion during testing. You might check your record ten times and see ten identical old values, panic that something went wrong, then find out the change was actually live everywhere else for hours. Or you might see the new value and assume all is well, not realizing some corners of the internet are still serving the old one.

A few things that help when you're trying to verify a DNS change actually took effect:

  • Query the authoritative server directly. This skips all the caching layers and asks the source itself. If it's live there, the change is real. It'll reach everyone eventually.
  • Use a public DNS checker that polls multiple resolvers. Seeing the new value from 10 different locations worldwide is much more reassuring than checking from your own machine once.
  • Try a different DNS resolver. You can temporarily switch your device to use 8.8.8.8 (Google) or 1.1.1.1 (Cloudflare) to see what they've cached.
  • Flush your local DNS cache. On most systems this clears what your computer has stored, so the next lookup fetches fresh.

The one thing you can't rush is other people's resolvers. Once a record is live on the authoritative server, caches around the world will update on their own schedule as TTLs expire. That's what DNS propagation actually means.

If you want to check your live DNS records across multiple resolvers at once, our free Email Header Analyzer is a good starting point, or ping us on the SOS hotline if something looks genuinely broken.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Paste your situation above and get a clear answer on whether your DNS change is live or still stuck in a cache somewhere.

I updated my SPF / DKIM / MX / DMARC record at my domain registrar but when I check it I still see the old value. Sometimes one tool shows the new value and another shows the old one. My record change was hours / days ago. I think this might be DNS caching. Can you help me figure out if my change actually went through, how to verify it properly, and how long I should expect to wait before every resolver sees it?

Edit the yellow boxes, then send to the AI of your choice.