The browser keeps scripts, stylesheets, fonts and images after the first visit, so the first load carries the whole theme. Look at the first load's waterfall in a private window. In order:
- One bundle for the whole site. The checkout's or a form library's code loaded on the home page (Bundle size).
- Images at their uploaded size on the first page people land on, usually the home page and its hero (request the size you display).
- Every font weight preloaded, or fonts from several families (loading fonts).
- Third-party scripts from a tag manager, which are downloaded on the first visit and often run again on every page (the tag manager problem).
Two first-load effects are expected and pass. After every deploy, asset URLs carry the new version and are downloaded again, once. And the first request for a new image size, and the first visit to a page after its cache was cleared, wait for the image to be generated or the page to be rendered; the next visitor does not.