A site that loads instantly on office wifi can take eight seconds on a four-year-old Android on patchy 4G. That second number is the real one.
Most sites are built and tested on a fast laptop over a fast connection, then used on a mid-range phone over a connection that drops to 3G in a lift. The gap between those two experiences is where enquiries are lost, and it almost never shows up in the handover meeting.
Images are usually the whole problem
A single unoptimised hero photograph straight from a camera can be four megabytes. Served as a properly sized WebP it is closer to two hundred kilobytes for the same visible quality. If a page is slow, measure the images before touching anything else.
Fonts block the text
Every custom font is another file the browser waits for before it paints a word. Two weights of one family is a reasonable budget. Six weights of three families is a design decision with a performance invoice attached.
Third-party scripts are not free
Chat widgets, heatmaps, pixels and review carousels each load their own JavaScript from someone else's server. Four of them can cost more than the entire site. Audit them yearly and remove whatever nobody has looked at.
Test on the device that matters
Open the site on a real mid-range Android over mobile data, not on a desktop with the network throttled. The difference between simulated and real is larger than people expect, and it is the version your customers have.