SolidStartloading="lazy" fetchpriority="low" decoding="async" to the images and putting the JS in <head> but the problem seems to boil down to the fact that whilst the first JS files are loading, all the other connections get filled up with images so when the JS then requests subsequent modules, they are "pending" and have to wait for some of the images to finish. On a slow network this can be a long time. So the only solution I can see is having all (or as much as possible) of the JS in a single file. I don't care about any performance benefits from only loading the JS needed for a given route.