- Serve less data. The best speedup is when there's no more data to download and if the throughput for clients is maxed out, then decreasing page weight helps.
- Use async bootstrap JS code to load in other scripts once images are done loading or other page load events have fired.
- Load less images in parallel, use JS to load one row of images at a time.
- Use HTTP/2 push (which CloudFlare offers) to push some of the images/assets with any other response. Push images with the original HTML and you'll start getting the images to browser before it even parses the HTML and starts any (prioritized) requests.