The real culprit behind delaying page load time is the overuse of CSS and JavaScript. Both are rendering blocking, which means that when they are being processed, nothing else happens.
Remember from the chapters on service workers, the browser uses a single thread to manage all the rendering tasks, including processing CSS and JavaScript. While this thread is doing that processing, no rendering can take place.
Developers are often naïve about the impact CSS and JavaScript has on their pages loading. Often, this comes down to forgetting what devices real users load web pages with, that is, mobile phones.
Developers generally work on high end workstations and laptops. They also load their work on those devices while developing. Therefore, they perceive their pages as loading instantly.
The discrepancy is a combination of no network latency, high...