After years of exeprience, I’ve found that when bypassing cache, cloudflare properly uses the closest pop/edge for website visitors especially on free plan.
Most of websites I setup including clients’, I set to bypass cache for the best performance as using cloudflare adds additional time. For example, if a visitor is in Tokyo, viewing a website hosted in Tokyo, cloudflare uses Singapore first, then access Tokyo.
But sometimes, even bypassing cache, cloudflare keeps using Singapore server than Tokyo server, and I have no idea how to tell cloudflare to always use NRT than SIN. I thought purging everything could solve, but it just keeps serving from SIN.
On the other hand, my other sites with the same setup are always served from NRT. I wonder what exactly keeps these two same configured sites act differently.
For the ISP, here’s my findings from my experiments.
If page rule is set even before changing domain’s NS to cloudflare records, it uses NRT which is the closest to visitors, no matter what ISP (my home network or pingdom tool’s ISP or not) the access is from.
If cloudflare is enabled before the page rule set, cloudflare uses SIN or other than NRT (but mostly SIN).
And I’m not sure if ISPs are understanding the use of cloudflare cache status to route traffic. I’m thinking there’s something else other than ISP that decides where to route traffic.
The IP address in cdn-cgi/trace is your home IP address.
You said routing was dependent upon the Page Rule. I misunderstood earlier and thought both sites had the same IP address. It could just be coincidence, unless you can demonstrate a routing change due to the Page Rule.