Images are almost always first
A single unoptimised photograph can be larger than the rest of the page combined. Most slow WordPress sites have a homepage carrying several megabytes of images.
Resize to the dimensions actually displayed, compress properly, use modern formats, and lazy-load anything below the fold.
Hosting is the second
Cheap shared hosting means your site shares a server with hundreds of others. No amount of optimisation compensates for a server that takes two seconds to respond.
Decent managed hosting costs a little more monthly and it is the single most effective change on many sites.
Then plugins and scripts
- Plugins that load their assets on every page whether needed or not
- Page builders adding large stylesheets and scripts
- Third-party embeds — chat, analytics, maps, fonts, tracking pixels
- Sliders, which are almost always the slowest element on a page
Caching, done properly
- Page caching so pages are not rebuilt for every visitor
- Object caching where the host supports it
- A CDN for static assets, particularly if your audience is spread
- Browser caching headers set sensibly
Installing a caching plugin and never configuring it is common and does relatively little.
Measure the right thing
Test the pages that matter — your homepage, your main service page, your busiest landing page — on a mobile connection, not on your office fibre.
And measure again after each change rather than making six at once and hoping.