Most WordPress speed articles hand you a list of plugins. Yet plugins are frequently the cause of the problem rather than the cure. The right approach is to measure where the problem lives and fix the layers in order.
Measure first, then change things
An improvement made without measurement is a guess you cannot evaluate. Record these three numbers before you begin:
- TTFB (time to first byte): How quickly the server responds. Under 200 ms is good; over 600 ms is a problem.
- LCP (largest contentful paint): The moment a visitor considers the page loaded. It should be under 2.5 seconds.
- Total page weight and request count.
PageSpeed Insights and WebPageTest give you these for free. Always repeat the measurement on the same page under the same conditions.
A high TTFB means the problem is server-side; a high LCP with a low TTFB means it is in the front end. That distinction tells you which layer to work on.
1. The hosting layer
Everything else rests on this layer. No plugin rescues a weak server.
- PHP version: PHP 8.2 and above is markedly faster than 7.4. Upgrade from your hosting panel, testing on a staging copy first.
- OPcache: Keeps compiled PHP in memory. If it is off, turn it on — the gain is substantial on its own.
- NVMe storage: Makes a visible difference on database-heavy sites compared with SATA SSDs.
- Object cache (Redis): Stops the same database queries running over and over. Close to mandatory for WooCommerce and membership sites.
- Server location: If your visitors are in Türkiye, a server in Türkiye lowers network latency directly.
2. Page caching
Caching serves ready-made HTML instead of running PHP for every visitor. It delivers the single largest gain.
If your server runs LiteSpeed, LiteSpeed Cache is by far the best option and it is free. On Apache or Nginx, WP Rocket, W3 Total Cache or Cache Enabler will do the job.
What matters is not which one you choose but that you run only one. Multiple caching plugins interfere with each other and produce faults that are hard to diagnose.
Remember to exclude cart, checkout and account pages from the cache.
3. Images
Images make up most of the weight of an average page, and they are the easiest win.
- Correct dimensions: Do not display a 3000-pixel photograph in an 800-pixel slot. Resize on upload.
- WebP format: Noticeably smaller than JPEG at comparable quality. WordPress supports WebP natively now.
- Lazy loading: WordPress does this by default; do not add a plugin to repeat it.
- Declare dimensions: Image tags need
widthandheight, otherwise content jumps while the page loads and your CLS score suffers.
4. Reduce plugin overhead
Every active plugin runs code on every page request. So:
- Delete unused plugins, do not merely deactivate them. A deactivated plugin is still a security liability.
- If two plugins do the same job, remove one.
- Page builders add real weight. For simple pages the block editor is enough.
- Query Monitor shows which plugin produces slow queries — disable it once you have your answer.
5. Database maintenance
Databases bloat over time and queries slow down.
- Post revisions: A long-running site accumulates thousands. Limit them and clear the old ones.
- Autoloaded options: Rows marked
autoload = yesinwp_optionsload on every request. Large leftovers from deleted plugins collect here. - Transients: Clear expired entries regularly.
Always take a backup before touching the database.
6. CDN
If your visitors are geographically spread out, a CDN serves static files from a point near them. If all your traffic comes from Türkiye and your server is in Türkiye, a CDN adds little — put your effort into caching and images instead.
Verify
After the changes, measure those three numbers again. Changing one layer at a time is what lets you see which step actually helped.
If you want to assess server-side bottlenecks together, write to us and we will look at your setup.
