I’ve been messing with site speed these past couple of days. At first I focused mainly on the CDN side, but I got stuck on one practical problem: I couldn’t get the CDN cache to refresh automatically. In the end, I had to settle for a 10-minute page cache, which means more origin fetches and noticeably slower access for cold resources.
DNS
A post from a fellow blogger made me think there might also be room to optimize domain resolution, so I bought the cheapest Alibaba Cloud DNS plan I could find. The story around it is that the original price was 48 yuan, then Alibaba cut the price hard and limited it to one per person, so it ended up at 19.9 yuan per year.
Alibaba Cloud’s paid DNS also comes in three tiers. The cheapest one is the personal plan mentioned above. Its features are pared down and it is very close to the free version. From what I checked, the most useful upgrade is simply that the free plan’s 4 domestic DNS nodes become 6. The free plan has no overseas nodes at all, while the paid plan includes 15. Most of the other added features are not really useful for a personal blog, so they are mostly decoration.
If the free version has no overseas nodes, does that mean foreign requests have to be resolved through mainland China? If so, that could add quite a bit of lookup time. Since I have several domains, I used Alibaba’s built-in DNS testing tool to compare the resolution speed of the free and paid plans.
For domestic resolution, there was basically no difference. Both averaged around 60 ms. The free plan did seem to have more individual requests taking over 600 ms, while the paid plan also had such cases, just less often.
For overseas resolution, the difference was much clearer. The paid plan was faster, averaging 170 ms, while the free plan averaged 390 ms. As with the domestic test, the free version had more long-tail delays overseas, while the paid one was more stable.


In short, the paid plan is more concentrated in terms of resolution time, while the free plan is more spread out and has a larger share of slow responses. If you do not care about overseas visitors, there is basically no difference.
CDN
Once a CDN is involved, domain resolution becomes more complicated. I spent some time looking things up and finally got a clearer idea of how DNS affects resolution speed in a CDN setup. Here is a simplified diagram and explanation.
Browser request flow without a CDN

- The browser asks the local DNS server to resolve the domain.
- If the local DNS server already has the answer cached, it returns the IP address directly.
If it does not have the result, it recursively queries the DNS system and then returns the answer to the user. The same thing applies in CDN DNS resolution.
- After the browser gets the resolved IP address, it requests content from the server.
- The server returns the requested content to the browser.
Browser request flow with a CDN

- The browser asks the local DNS server to resolve the domain.
- The DNS server returns the address of the CDN’s NAS server.
- The browser requests the content distribution server IP from the CDN NAS server.
- The CDN NAS server looks up the nearest file distribution server.
- It stores that server’s IP in the CDN NAS server.
- The CDN NAS server returns the file distribution server IP to the browser.
- The browser requests content from the file distribution server. If the content is not cached there, it will go back to the origin, and that origin fetch effectively means one extra resolution step.
- The file distribution server returns the content to the browser.
With a CDN, steps 3 through 6 are extra. If the CDN does not have a cache hit, step 7 adds an origin fetch as well, which is another extra round. So if the origin server were powerful enough, had plenty of bandwidth, and responded quickly, skipping the CDN would actually be faster. But personal blog servers are usually close to free-tier quality and not particularly strong, while a CDN is generally much better in bandwidth and stability. That is the main reason to use one.
What I ended up with
- If you only serve mainland China, there is basically no difference between free and paid DNS.
- DNS only handles the part where the browser resolves your domain to your server IP, or to the CDN hostname you use. Once traffic reaches the CDN hostname, the CDN takes over and your DNS can do nothing else. From that angle, if you are already using a CDN, the value of paid DNS is even more limited; most of the impact shifts to the CDN side.
- For mainland use, if your resources can be static and there is not much origin traffic, using a CDN can make things faster, and paid DNS adds only a very small extra benefit.
- Paid DNS is clearly faster overseas. If you also use a globally distributed CDN, static resources can load quickly around the world. I do wonder whether a purely static blog could use this setup to speed up global access. The catch is that if the site has little traffic, cold resources may be purged by the CDN automatically, and even setting the expiration to one year will not necessarily help.
- If you just want to tinker, DNS does not offer much room to play with. It is probably better to spend that effort on the CDN side.
- For a personal blog, I think the priority order for speed improvements is:
reduce page elements and size > static generation > server configuration > CDN > NAS and other services
For the difference between Alibaba Cloud’s paid and free DNS plans, you can check the relevant comparison page yourself. I would guess other cloud providers are similar, though I have not compared them directly.