Conversations about speed usually start with numbers. But visitors do not count seconds. What stays with them is what they were looking at while they waited. Two people can wait the same length of time and come away with entirely different impressions — one stared at nothing, the other started reading.
WordPress is not a disadvantage here. Caching, image handling and asset management are all well provided for. Trouble tends to come from a stack assembled on defaults, and that is a fixable kind of problem.
There are two kinds of waiting
The first is a blank screen. You tap a link and white space continues. When this stretches, people conclude the site is broken and go back.
The second is a shifting screen. Content appears, then a late image pushes the paragraph down, then the real font arrives and a heading grows from two lines to three. You lose your place, and the button you were reaching for moves so you tap the wrong thing. The second is worse for the impression than the first — people tolerate slow, but instability costs trust.
What is spending that time
Images dominate. Upload what came straight off a camera or a phone and visitors receive a file several times larger than the space it is displayed in. Resize to the displayed dimensions, save in a modern format, and let anything below the first screen load later — those three steps resolve most of it.
Scripts behave differently. Multipurpose themes full of sliders and animations frequently load those assets whether the features are used or not. If drawing a single page pulls down a stack of scripts, your visitors pay that cost on every visit.
Web fonts are heavier on sites in Korean, Japanese or Chinese, where the character set makes the files large. Arriving late, they swap the fallback for the real face and line counts change underneath the reader. Splitting the font so the first screen’s characters arrive first helps, and matching the fallback’s metrics to the real face reduces the jolt when the swap happens.
Measuring it yourself — fix the conditions
Speed varies enormously with the conditions you measure under, so without fixed conditions your numbers cannot be compared to each other. Four rules are enough.
Be especially wary of repeatedly reloading your own site and judging from that. Caches on both the browser and the server mean that from the second load onwards you are not seeing what a visitor sees. It only means something measured as a first-time arrival.
The order to work in
Change everything at once and you will never know what helped. Work through images, then unused features, then caching, remeasuring under the same conditions after each step. That order exists because the earlier items are the ones you can do alone and undo easily.
And record what did not change. Knowing which things had no effect is what makes the next decision quick.
The specifics of measuring and improving are collected in the Performance archive, and if you want to check your own site’s current state, the diagnostic plugin in our free tools is a good starting point. To hand the whole job over — server and caching included — our optimization program comes with before and after measurements.