IPv6 Support: Is Your Site Reachable Over IPv6?
The internet runs on two address systems. IPv4 addresses (203.0.113.10) ran out years ago; IPv6
addresses (2001:db8::10) are their long-term replacement, and today a large share of traffic,
especially from mobile networks, uses IPv6. Google’s
IPv6 statistics put it at over 40% of its
users, varying a lot by country.
Does it matter if my site has no IPv6?
For most visitors, no. Networks that run IPv6 almost always keep a way to reach IPv4-only sites, usually through translation at the mobile carrier (NAT64) or a dual-stack connection. Your site still loads.
It matters at the edges:
- Some networks are IPv6-only behind translation, which adds a hop and can add latency or break in unusual setups.
- Shared IPv4 addresses (carrier-grade NAT) put many users behind one address; rate limits and blocklists that work per IP can then hit innocent visitors. Over IPv6 each user has their own address.
- Future-proofing. IPv4 addresses are expensive and getting more so; IPv6 is where networks are heading.
That’s why this is a low-severity check: worth doing, rarely urgent.
What we check
We look up the site’s address records in public DNS:
- A records give the IPv4 addresses.
- AAAA records give the IPv6 addresses.
If there is at least one AAAA record, the check passes. If there are only A records, it needs attention. If we couldn’t resolve the site at all, the check doesn’t count.
We only check that the record exists. We don’t connect to the site over IPv6, so a record that points at a server not listening on IPv6 would still pass. Test that from an IPv6 network or with an online IPv6 checker after you turn it on.
How to turn it on
Behind a CDN. This is the easy case. Cloudflare serves IPv6 on proxied records by default (Network → IPv6 Compatibility). Most other CDNs have a similar switch. The CDN answers visitors over IPv6 and can reach your server over IPv4, so your server doesn’t need IPv6 at all.
Your own server or VPS. Most cloud providers (Hetzner, DigitalOcean, AWS and others) give each server an IPv6 address, sometimes as an option you enable. Then:
- Make sure the web server listens on IPv6. In nginx that’s
listen [::]:443 ssl;next tolisten 443 ssl;. - Open port 443 (and 80 if you redirect) for IPv6 in the firewall, which is often a separate rule set.
- Add an AAAA record for the site and
wwwwith the server’s IPv6 address. - Check that your TLS certificate and redirects work the same way over IPv6.
Shared hosting. Ask your host whether they offer IPv6. Many do, and some enable it on request.
Don’t add an AAAA record until the server really answers on that address. A broken IPv6 path is worse than none, because browsers that try IPv6 first may wait before falling back to IPv4.