Why Your WordPress Site Is Slow — and What Actually Fixes It
Installing another caching plugin is the most common response and the least effective one. The real causes are usually three, and none of them is solved by adding more code.
When a WordPress site is slow, the usual response is to install a speed plugin. It occasionally helps a little. It never addresses the cause, because the cause is almost always one of three things, and all three are about removing rather than adding.
One: too many plugins
Every plugin loads its own scripts and styles, usually on every page rather than only where it is needed. Sites we inherit commonly run thirty or more; almost all of them need fewer than ten. Half are typically doing something a few lines of theme code would do, and several are no longer used at all.
Auditing and removing them is unglamorous, takes an afternoon, and is reliably the single largest speed improvement available. It is also free.
Two: images nobody resized
A photograph straight off a phone is four to eight megabytes. Dropped into a page that displays it 600 pixels wide, the browser still downloads the whole thing. A homepage with six such images is a 30 MB page, and on a mobile connection that is the entire problem on its own.
The fix is to resize images to the size they are actually shown, serve them in WebP, and load below-the-fold images lazily. Modern WordPress does some of this; it does not undo an oversized original.
Three: hosting sold on price
Shared hosting at a few hundred rupees a month puts hundreds of sites on one machine. When a neighbour gets busy, you get slow, and nothing you do inside WordPress changes that. If your server takes over a second to send the first byte, no amount of caching plugin will save you.
How to tell which one you have
- Run the site through PageSpeed Insights and look at Time to First Byte. Over 800ms points at hosting.
- Check the total page weight. Over 3 MB usually means images.
- Count your active plugins. Over twenty is worth a serious look.
Fix the cause you actually have. A caching plugin on top of a 30 MB page and an overloaded shared server is a plaster on a broken bone — and it adds one more plugin to the pile you were already carrying.