Cloudflare has many, many, caches on its edge nodes. The first visitor at any edge node location will get a MISS. The second visitor to that same node might get a hit. Each edge node has many servers, and they don’t all share the same cache.
In short, it takes a while for Cloudflare to cache data for everybody. That’s why super high-traffic sites have high cache rates: Lots of frequent hits from all over.
That’s what I don’t like about Cloudflare. When you have a website on Cloudflare PRO, with a global but low-volume audience, and your cache HIT ratio is extremely low. You might use <1% of the bandwidth of other CF websites (even on FREE), yet they get a much higher cache hit ratio. Just because my website has a low hit ratio, doesn’t mean I don’t want those few resources served as-fast-as-possible.
I do wish Edge Cache TTL was biased a little (lot) more toward paid accounts, so paid accounts don’t have their static assets ejected from the cache so early. I don’t know what the algorithm is, but it’d be nice to get a hint as to what it is. Something along the lines of (how “full” your Edge Cache is) * (how often that resource is hit at that datacenter) * (plan multiplier: 1 for free, 2 for pro, 5 for business, 10 for enterprise) divided by some magic number.