Almost always one of seven things, and they are not equally likely. Below they are ordered roughly by how often they turn out to be the real culprit in the sites we audit — along with how to check each one yourself, so you can find your own answer without paying anyone.
Before you start: measure first. Run the site through PageSpeed Insights and WebPageTest, and note the Largest Contentful Paint and the server response time. Changing things without a baseline means you will never know whether you helped.
Worth knowing: The most common mistake is installing a caching plugin as the first move. Caching hides slowness on cached pages; it does not remove the cause, and it makes diagnosing the real problem harder because your test results now depend on whether you happened to hit a cached page.
By far the most common. A 4MB photo straight from a phone camera, displayed at 600px wide, wastes almost all of that download. Check: open DevTools → Network → filter by Img and sort by size. Anything over ~300KB deserves attention. Fix: resize to actual display dimensions, convert to WebP or AVIF, and lazy-load anything below the fold.
It is not the count, it is what each one loads. A single social-sharing plugin can add its own CSS and JavaScript to every page on the site for a feature you use on one. Check: deactivate plugins one at a time on a staging copy and re-measure. Fix: remove what you do not use, replace heavy plugins with lighter ones, and load the rest only where needed.
If Time To First Byte is over ~600ms, the server is thinking too long and no front-end work will fix it. Check: PageSpeed Insights reports initial server response time. Fix: move to hosting with proper PHP and object caching. Cheap shared hosting oversells its servers, which is why it is cheap.
Some builders emit enormous nested markup and load their whole framework on every page. Check: view source and look at the sheer volume of wrapper divs, and check total CSS/JS payload. Fix: this is the hardest one — it usually means rebuilding on a lighter foundation, which is why we build in Next.js rather than page builders.
The browser stops rendering to fetch and parse them, so the visitor stares at nothing. Check: PageSpeed Insights flags "Eliminate render-blocking resources". Fix: inline critical CSS, defer non-essential JavaScript, and load fonts with font-display: swap.
Years of post revisions, expired transients, spam comments, and tables left behind by plugins you removed in 2021. Check: look at your wp_options table size and the autoloaded data total. Fix: clean revisions and transients, remove orphaned tables, and limit stored revisions going forward.
Analytics, chat widgets, heat maps, pixels, embedded video. Each one is a request to someone else's server, and you are at the mercy of how fast they respond. Check: DevTools → Network → sort by domain and count what is not yours. Fix: remove what nobody reads, load chat widgets on interaction rather than on page load, and use facades for embedded video.
Aim for Largest Contentful Paint under 2.5 seconds on mobile, which is Google's threshold for a good Core Web Vitals score. Server response time should be under 600ms. Judge on mobile figures rather than desktop — most visitors are on a phone, often on a worse connection than yours.
It helps, but it is rarely the cause. Caching serves a stored copy of the page, which masks the underlying problem on cached pages while doing nothing for uncached ones, logged-in users, or dynamic pages like carts and checkouts. Most slow sites we audit already have caching installed.
Yes. Core Web Vitals are a confirmed ranking signal. The larger effect is usually on conversion though — visitors leave slow pages, and a visitor who leaves before the page renders cannot convert regardless of where you rank.
Often, yes. Images and unused plugins are the two biggest wins and both are manageable without a developer. Back up first, change one thing at a time, and re-measure after each change so you know what actually worked.
Work down the list in order — it is roughly ordered by how often each turns out to be the culprit. If you would rather skip the guesswork, our free audit tells you exactly which one it is and what fixing it would involve.
A free audit with the real bottleneck, the evidence, and what it would take to fix. Plenty of people take the report and fix it themselves — that’s fine.