If the images isn’t yet been cached, it will be MISS.
Therefore, there is a difference if your file extension is JPG or JPEG.
In terms of WebP, are they served from origin as WebP, or rather using Cloudflare Pro Plan and Polish so it converts/optimizes to WebP (the selected ones)?
Otherwise, maybe you have HTTP vs HTTPS, so “double work” to cache?
By default, by using “standard” JPG and JPEG should be cached:
From the screenshot above your Page Rule, kindly consider adding Edge Cache TTL - so they would keep for example at least a month at the Cloudflare Edge and therefore being served from the Edge, meaning Cloudflare will display HIT, rather than if it won’t have one, will display MISS and ask the origin again to serve/cache it:
Browser Cache TTL tells the user/visitor how long should the image be keept in users/visitor’s local Web browser cache and use it that way (not needing to ask the origin/server to serve it).
I did some more digging on the subject and noticed that even though the Edge Cache TTL is set for a month, CF actually keeps many pictures only about a day. Meaning one day one picture might have status HIT, the next day it is MISS:
This is normal. Low-use files get evicted from the cache early.
The Edge Cache TTL setting is a maximum amount of time it’s safe to cache a file. Sites with frequent changes would want that TTL low so as to not serve stale content.
Is there a way to keep those pictures in cache for longer period of time?
It just so happens that many of those files directly influence LCP, if they are served from cache - LCP is better (lower) wich is very important to me. If they are served from origin via CF proxy it increases LCP lowering site performance…
Anyway cache missing 84% of site content is also poor cache performance…
As a note, every Cloudflare data center has an independent cache. And it may take a few visits through that data center to start getting HITs. With that in mind, you might run a WebPageTest from Chicago a few times and start getting HITS. Run it again from Chicago and you’ll get a better score. But then run it from Frankfort (if that’s one of the locations), and that’s a different cache.
So keep that in mind when looking at cache stats. A HIT for one person isn’t necessarily a HIT for another. Since you have a local audience, that helps focus traffic through the closest data center.
If you want to warm up the cache (preload it), you’d have to write some sort of script on a local server in Poland that requests your images, and run it every 12 hours or so.