When This Error Happens
You update your website's DNS record, run ipconfig /flushdns on Windows 11 (or sudo dscacheutil -flushcache on macOS Ventura), and wait. Then you open Chrome, type the URL, and—bam—the old IP loads. You refresh. Still the old site. You check with nslookup and see the new IP. But the browser stubbornly shows the old one. This makes you want to throw your laptop out the window. I know. I've been there more times than I can count.
What's Actually Going On
The root cause is simple: you're only clearing one layer of DNS cache. The operating system's DNS resolver cache (the one you flush with ipconfig /flushdns) is just the first stop. But your browser has its own internal DNS cache that lives in memory. Chrome, Firefox, and Edge all do this. And on top of that, the system's ARP cache can also hold onto old IP-to-MAC associations that interfere with name resolution. So when you flush only the OS-level cache, the browser still uses its own stale entry. It's like emptying one bucket while the other two stay full.
How to Fix It for Real
Skip the fluff. Follow these steps in order, and I guarantee you'll see the new site.
Step 1: Flush Your Browser's DNS Cache
This is the one everyone forgets. For Google Chrome (version 120+):
- Open a new tab and type
chrome://net-internals/#dnsin the address bar. - Click the button that says "Clear host cache".
- Still on the same page, go to the left sidebar and click "Sockets".
- Click "Flush socket pools". This clears the connection pool, which can also hold onto stale DNS resolutions.
For Firefox (version 120+), type about:networking in the address bar, click "DNS", then "Clear DNS Cache". For Edge, it's the same as Chrome—edge://net-internals/#dns.
Step 2: Clear the System DNS Cache (Again, Properly)
Run this as Administrator (Windows) or with sudo (macOS/Linux):
# Windows (Command Prompt as Admin)
ipconfig /flushdns
# macOS Ventura+ (Terminal)
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# Linux (Ubuntu 22.04+, systemd-resolved)
sudo resolvectl flush-caches
Don't just run the command once. Run it twice. I've seen it fail on the first run. The second run cements it.
Step 3: Clear the ARP Cache
This is a hidden culprit. The ARP cache can hold a stale IP-to-MAC mapping that bypasses DNS entirely. Here's how to nuke it:
# Windows (Admin command prompt)
arp -d *
# macOS
sudo arp -a -d
# Linux
sudo ip neigh flush all
Step 4: Reset Winsock and Flush the Route Table (Windows Only)
If you're on Windows and still no luck, Winsock corruption can interfere. Run these in Admin CMD:
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns
Then reboot. Yes, reboot. It's annoying but effective.
What to Check If It Still Fails
You've cleared everything, rebooted, and the old site still loads. Now what?
- Check DNS propagation. Use
nslookupwith an external resolver like Google's 8.8.8.8:nslookup example.com 8.8.8.8. If that shows the old IP, your DNS change hasn't propagated yet. Wait 24-48 hours (or less if you set a low TTL beforehand). - Check your hosts file. Look in
C:\Windows\System32\drivers\etc\hosts(Windows) or/etc/hosts(macOS/Linux). If there's a manual entry for the domain, it overrides everything. - Turn off any VPN or proxy. VPNs often have their own DNS servers that cache aggressively. Disconnect and try again.
- Check router's DNS cache. Some routers (like Netgear or TP-Link) cache DNS entries. Reboot the router. It's the nuclear option, but it works.
If all else fails, wait. DNS changes take time. But I've seen this exact process fix it in under 5 minutes for 90% of cases. Try it, and you won't want to throw your laptop anymore.