1 - I started share free stock photos at pixexid.com but at this moment we don't have too many variations but I'm working on V2 and i have a lot of free images to upload when it's ready. Also, you can use pexels.com, unsplash.com or pixabay.com
2 - the images should complement the copy, separate it i some text blocks, use alignment left and right
3 - if you are using WordPress i suggest use optimole plugin or imagekit.io they have a good free quota, both compress and deliver the images on the right size of the user screen
4 - i don't have in mi mind right now.
I’m pretty sure the browser tries to do this by default unless the server tells it not to.
Just found this neat article, maybe can shed some light.
I am quite convinced it's something to do with lazy load. In this article, it says:
>In this technique, we use event listeners on the scroll, resize, and orientationChange events in the browser. The scroll event is an obvious one to check when the user scrolls the page. The resize and orientationChange events are equally important for lazy loading. The resize event occurs when the size of the browser window changes. The orientationChange event gets triggered when the device is rotated from landscape to portrait mode, or vice versa. In such cases, the number of images that become visible on the screen will change. Therefore, we'll need to trigger a load for these images.
So something is interfering with the lazy load. Just one more thing to check (perhaps a long shot), I noticed you disable the ability to inspect your codes. Can you disable that and see if this could solve it.
Backbkaze S3 is reliable and inexpensive. But make sure to use proper cache headers or visitors will continue to see old images after changes (https://imagekit.io/blog/ultimate-guide-to-http-caching-for-static-assets/)
your blazor wasm is just like any other static file, subject to all the standard concerns and mechanisms for invalidating the cache with things like ' Cache-Control' headers or etags etc. there is a good guide here - https://imagekit.io/blog/ultimate-guide-to-http-caching-for-static-assets/
I found links in your comment that were not hyperlinked:
I did the honors for you.
^delete ^| ^information ^| ^<3
The CDN will help but it might not be your biggest choke point.
I’d take a look at loading in CSS, images, fonts, etc asynchronously.
The package critical-css
has a Rails gem. It will split your CSS up. Inlining “above the fold” CSS in your head. Then loading in all your other CSS w/ JavaScript.
Lazy loading images is supported by more browsers. You can add a polyfill so it’s backwards compatible. CSS Tricks article.
Awesome guide on loading web fonts.
If you can. Move your JS to your footer or set it to “defer”.
Add dns-prefetch to any 3rd party scripts.
Just a semantic issue; http2 doesn't "do" anything itself. It's a standard, not an implementation. And like I initially said. "Instead of waiting for the client to request for assets like JS and CSS, the server can “push” the resources it believes would be required by the client" ( https://imagekit.io/blog/http2-vs-http1-performance/). Absolutely nothing to do with Wordpress. If it's not being pushed it's either not cached to be sent and is generated every time or just not properly implemented on the server
Hey, appreciate your kind words. Well, we wrote a complete article around this a while back, here you go - https://imagekit.io/blog/lazy-loading-images-complete-guide/
Why don't you try any Cloud image optimization service? I mean their quite a lot of options available out there. And to be honest if you are handling multiple clients, and have been doing all the stuff manually then this could be step towards efficiency.
Also, while optimization is super important, delivering those images seamlessly is equally important(in some case more), while bringing that load time. To which, CDN enabled service would play a huge role here.
I would recommend, ImageKit.io. Give it a try!