How should WordPress caching be set up?
One page-caching plugin, not three, because multiple caching plugins conflict in ways that are very hard to diagnose. Exclude cart, checkout, logged-in sessions and form confirmation pages, and configure cache clearing on content changes so an edited page actually appears.
Measure the server first
Before touching anything on the page, find out how long the server takes to respond:
curl -s -o /dev/null -w 'connect %{time_connect} ttfb %{time_starttransfer} total %{time_total}\n' \
https://example.com/
Time to first byte above about 600ms means the problem is server-side, and no front-end work will get you below it. That points at hosting, at a plugin doing expensive work on every request, or at an overloaded database.
This measurement decides where the rest of your effort goes, so take it before assuming anything.
Audit the plugins properly
Most slow WordPress sites are carrying plugins nobody uses. Go through the list and sort into three groups:
- Essential — the site does not work without it
- Useful — worth its cost
- Forgotten — installed for something that no longer matters
Deactivate and delete the third group. Deactivating alone is not enough; some plugins leave scheduled tasks and database tables behind.
Then check what the remainder actually load. A plugin used on one page frequently loads its scripts and stylesheets on every page. Several such plugins together add hundreds of kilobytes to every request.
Use a profiling plugin on a staging copy to see where the request time goes. It usually names one or two clear offenders.
Look hard at the theme
Multipurpose themes with visual page builders are the second common cause. They ship enormous amounts of CSS and JavaScript to support features you do not use, and they generate deeply nested markup that is slow to render.
The options, in increasing order of effort:
- Turn off the theme's unused modules — many have a settings panel for this
- Stop loading the page builder's assets on pages that do not use it
- Replace the theme with a lightweight one and rebuild the templates
The third is disruptive and often the correct long-term answer, but it is a project rather than an afternoon.
Get the hosting right
Cheap shared hosting places a hard ceiling on how fast a WordPress site can be, because you are sharing processing capacity with many other sites and have no control over their behaviour.
For a business site that generates enquiries, managed WordPress hosting at roughly $20 to $60 a month is proportionate and usually produces a bigger improvement than a week of tuning. Check that PHP is on a current version while you are there — older versions are meaningfully slower as well as unsupported.
Clean the database
WordPress accumulates weight over years:
- Post revisions, sometimes hundreds per page
- Expired transients
- Spam and trashed comments
- Tables left by deleted plugins
- Orphaned metadata
Back up first, then clean. On a long-running site this alone can noticeably improve admin and query performance.
Then measure again
Re-run the timing check and a page-speed test on mobile, and compare against the numbers you took at the start. Work in one change at a time where you can — stacking five changes and testing once tells you nothing about which one helped.
Frequently asked questions
What should I measure first?
Time to first byte from the server. Above about 600ms the problem is server-side and no front-end work will get you below it, which points at hosting, an expensive plugin, or an overloaded database.
How do I audit plugins?
Sort them into essential, useful and forgotten, then deactivate and delete the third group — deactivating alone leaves scheduled tasks and database tables behind. Then check which of the rest load assets on every page.
Is my theme the problem?
Often. Multipurpose themes with page builders ship large amounts of CSS and JavaScript for features you do not use. Turn off unused modules, stop loading builder assets where they are not needed, or replace the theme as a project.
Does hosting really matter that much?
Yes. Cheap shared hosting sets a hard ceiling because you share capacity with sites you do not control. Managed WordPress hosting at roughly $20 to $60 a month often beats a week of tuning.
What database cleanup helps?
Removing post revisions, expired transients, spam and trashed comments, tables left by deleted plugins, and orphaned metadata. Back up first — on a long-running site this noticeably improves query performance.