Skip to content
WordPress 4 min read Sajid Aslam

How to Make a WordPress Website Faster and More Reliable

The changes that move the needle, ordered by impact — and the ones that get recommended constantly but rarely help.

Ordered list of WordPress performance improvements by impact

Short answer

In order of impact on a typical business site: fix the images, cut the plugin stack, put real caching in front of it, move to hosting that fits, then clean the database. Most sites get the majority of their available improvement from the first three.

Speed advice tends to arrive as an undifferentiated list of twenty things. Some of those twenty are worth hours; most are worth minutes. This is ordered by what actually changes the number on a typical WordPress business site.

1. Images

Almost always the largest single win, and almost always the last thing anyone checks.

  • Serve images at the size they are displayed, not at the size they were uploaded
  • Use modern formats — WebP or AVIF — with a fallback
  • Compress properly; most photographs lose nothing visible at 80% quality
  • Set explicit width and height so the browser reserves the space and the layout does not jump
  • Lazy-load images below the fold, and never the hero image

That last point reverses a common mistake: lazy-loading the largest image on the page delays the exact element Largest Contentful Paint measures. How images affect website speed and SEO goes further.

2. The plugin stack

Every plugin loads code. Many load it on every page regardless of need — a slider plugin used on the homepage shipping its CSS and JavaScript to your contact page.

Audit properly:

  1. List everything installed
  2. For each, write down what it does and where it is used
  3. Deactivate anything you cannot justify *(on staging first)*
  4. For anything used on one page, check whether it can be conditionally loaded
  5. Delete deactivated plugins — do not leave them sitting there

Deactivated plugins still occupy disk, still need updating, and are still a vulnerability if they contain one.

3. Caching

Page caching serves a pre-built HTML file instead of running PHP and querying the database for every visitor. On an uncached WordPress site this is a large, immediate difference.

Layers worth having:

  • Page cache — the big one
  • Object cache — for repeated database queries; matters more on complex sites
  • Browser cache — correct headers so returning visitors re-download less
  • CDN — serves static assets from somewhere geographically nearer

WordPress caching explained covers what each layer does and how they interact, including why they sometimes make each other useless.

4. Hosting

At some point optimisation stops and you are simply on a plan too small for the site.

Signs you have hit it:

  • Server response time consistently above ~600ms even with caching on
  • The site slows noticeably under normal traffic
  • The admin is sluggish even when the front end is cached
  • You are on shared hosting with a WooCommerce store

WooCommerce in particular is a poor fit for cheap shared hosting, because cart and checkout pages cannot be cached and hit PHP and the database on every request.

5. The database

Lower impact than the four above, but it accumulates.

  • Limit post revisions rather than storing every draft forever
  • Delete expired transients
  • Clear spam and trashed comments
  • Remove orphaned metadata left by plugins you have deleted
  • Ensure tables are indexed sensibly if the site is large

What matters for reliability

Speed and reliability are separate problems and get conflated.

Backups that are tested. A backup nobody has ever restored is a hypothesis. Restore one to staging on a schedule.

Staging. Update there, look, then repeat on live. This single habit prevents most "the site broke after an update" incidents.

Uptime monitoring. You should learn the site is down from a monitor, not from a customer.

Update discipline. Security updates promptly, feature updates deliberately, with a backup taken first.

Fewer dependencies. Every plugin and theme is something that can break. The most reliable sites are the ones running the least code.

This is the routine covered by the website maintenance service, and in more detail in WordPress security and maintenance.

  • Switching PHP version for speed alone. Staying on a supported version matters for security. The performance difference between recent versions is small.
  • Minifying everything aggressively. Modest gains, and a frequent cause of broken JavaScript.
  • Removing jQuery. Rarely possible without breaking something, and rarely the actual bottleneck.
  • Adding a second caching plugin. Two caching layers fighting each other is worse than one configured correctly.
  • Chasing a 100 score. The last few points routinely cost more than they are worth. Real-world load time is the goal, not the number.

How to know whether it worked

Measure before and after, in the same conditions:

  • Use field data where you have it — Search Console's Core Web Vitals report reflects real users
  • For lab tests, use a mid-range mobile profile over a throttled connection
  • Test the same three or four URLs each time, including your heaviest page
  • Change one thing at a time, or you will not know what worked

Core Web Vitals explained covers what the metrics mean, and the speed optimisation checklist is the condensed working version of this article.

Worked examples

Related services

Related reading