WordPress

How to Speed Up a Slow WordPress Site: A Practical Order of Attack

A slow WordPress site usually has a handful of fixable causes. Here is how to measure, find the bottleneck and fix it in the right order without wasting time.

By Zebra Hosting Cloud

A slow WordPress site rarely has one single cause. It is usually a stack of small problems: a heavy theme, unoptimised images, no caching, an old PHP version and a hosting plan that is short on resources. The good news is that most of these are fixable, and fixing them in the right order saves a lot of wasted effort. This guide walks through that order.

Measure first, then separate server slowness from page weight

Guessing is the most common mistake. Before touching a setting, record a baseline so you can tell whether a change helped. Run the page through a free testing tool such as PageSpeed Insights or WebPageTest, and note three things: how long the server takes to send the first byte, how long the main content takes to appear, and how many requests and how many kilobytes the page loads.

Test your home page and one or two important inner pages, such as a product or a contact page. Test more than once, because single results vary. Keep the numbers in a note. You will compare against them later.

Separate server slowness from page weight

There are two broad kinds of slowness, and they need different fixes.

  • Slow server response. The browser waits a long time before anything arrives. This points to missing page caching, slow database queries, heavy plugins or an overloaded hosting account.
  • Heavy page. The server answers quickly, but the page is large: big images, many scripts, web fonts, sliders and third-party widgets. This points to front-end work.

If the first byte takes a long time, start with the server side. If it is quick but the page still feels slow, start with images and scripts.

The fixes, in order of impact

WordPress runs on PHP, and newer supported PHP releases are generally faster than old ones. Check which version your site runs and switch to a currently supported one in your control panel. Test on a copy first if you use older plugins, because abandoned code can break on newer PHP. The knowledgebase is a good place to look up the exact steps in Plesk.

Turn on page caching

Without caching, WordPress builds every page from scratch for every visitor: it loads PHP, runs database queries and assembles the HTML. A page cache stores the finished HTML and serves it directly. For most brochure sites, blogs and shops with mostly static pages, this single change makes the largest difference to server response time.

Use one caching plugin, not several. Enable page caching, browser caching and compression, and exclude pages that must stay dynamic, such as the cart and checkout in a shop.

Fix your images

Images are usually the heaviest part of a page. Common problems are photos uploaded straight from a camera at several thousand pixels wide, and images displayed far smaller than their real size.

  1. Resize images to the largest size they are actually shown at.
  2. Compress them. Modern formats such as WebP are usually smaller than JPEG at similar quality.
  3. Lazy-load images below the fold. WordPress does this by default for most images, but check that your theme does not undo it.
  4. Do not lazy-load the main image at the top of the page, because that delays the part visitors see first.

Audit plugins and your theme

The number of plugins matters less than what each one does. A small plugin that adds a shortcode costs almost nothing. A plugin that runs heavy queries on every page, loads large scripts everywhere or calls external services can slow a site on its own.

Deactivate plugins one at a time on a staging copy and re-test to find the expensive ones. Remove anything you do not use. Look at your theme too: multipurpose themes that bundle sliders, animations and page-builder libraries often load files you never use.

Reduce third-party scripts

Chat widgets, tracking pixels, embedded maps and social feeds all add requests to servers you do not control. Keep the ones that earn their place, load them after the page is usable, and remove the rest. Embedding a video as a click-to-play preview instead of the full player also saves a lot of weight.

Use a CDN

A content delivery network serves your static files, such as images, CSS and JavaScript, from locations closer to the visitor. It helps most when your audience is spread across countries. Cloudflare's CDN is available on sites hosted with us; see the CDN page for what it covers.

Look at the database

Over time, WordPress databases collect post revisions, expired transients, spam comments and leftovers from deleted plugins. A bloated options table, especially with many auto-loaded entries, slows every request. Clean up carefully, with a backup, and consider limiting revisions in wp-config.php.

When the hosting itself is the limit

If you have done the steps above and the first byte is still slow, the plan may be too small for the site. Signs include slowdowns at busy times, memory limit errors and timeouts during imports or backups. Moving from shared hosting to a plan with more resources, or to a VPS for larger sites, can solve what no plugin can. For a closer look at when that moment arrives, read our VPS options.

Re-test and keep a record

After each change, run the same tests again and compare with your baseline. Change one thing at a time so you know what worked. Performance work is also not a one-off: a new plugin or a batch of large images can undo your gains, so re-check after major changes.

How Zebra Hosting helps

Our WordPress hosting plans are set up automatically within minutes of payment, come with Plesk for managing PHP versions and databases, and include free SSL. Cloudflare CDN is available on hosted sites, and if your site is already slow elsewhere our team can move it for free.