Making a WordPress site faster

Performance 4 min read

A theme gives you an optimized foundation. The result you actually get depends on your hosting, your content, your caching and your plugins, which are the four things this page is about.

#Measure first

Test a real page, not the homepage of an empty install. A page with your images, your content and your plugins active is the only measurement that means anything.

PageSpeed Insights and WebPageTest both do this for free. Note the number before you change anything, because without a starting point you cannot tell whether a change helped.

#Caching

Page caching is the largest single win on most sites, because it serves a finished page instead of building one per visit.

Set up page caching, browser caching, and a habit of clearing the cache after you change settings.

Never run two systems doing the same job.

Two page caches, or two lazy loading mechanisms, conflict rather than compound, and the symptom is usually something intermittent that nobody can reproduce on demand.

#Images

Usually the heaviest thing on the page, and usually the easiest fix.

  • Serve the right size, so a thumbnail slot does not download a full resolution original
  • Use a modern format such as WebP or AVIF
  • Compress what you upload
  • Let responsive images pick the size per device
  • Lazy load what is below the fold

The single most common waste on a WordPress site is a full size photograph rendered into a small card.

Image placeholders and lazy loadingInstead of an empty rectangle where an image will be, the reader sees a blurred miniature of it, which then resolves into the full photo. The miniature is a tiny copy of the image, small eno...Performance

#Server and CDN

Current PHP, because each version is measurably faster than the last. Adequate memory and execution limits. Fast storage. A data center near most of your audience.

A CDN helps when your audience is spread across continents, and helps very little when it is not.

Choosing hosting for a WordPress themeThe theme installs on any host that runs a current WordPress. Trouble usually starts with a limit the host will not lift, so this is the list to work through before you pay for a plan. PHP l...Installation

#Scripts and plugins

Every integration has a cost. That is not an argument against using them, it is an argument for knowing which ones cost what.

Measure the effect of one component at a time rather than enabling everything and hoping. A plugin that adds a hundred milliseconds is fine. Six of them are not.

#The theme performance module

There is a small performance module in the product that strips out minor WordPress resources you may not need.

Treat it as a last optional step. It is not a substitute for caching, image optimization or a decent server, and enabling it while ignoring those three will not produce a number worth having.

#Measure again

Same page, same tool. Then keep this priority order in mind for next time:

  1. Images
  2. Caching
  3. The server
  4. Third party scripts
  5. Small toggles

Most people work that list backwards.

An evening spent on the small toggles moves almost nothing while an unoptimised hero image is still being downloaded at full resolution on every visit.

#Common questions

Will a caching plugin break my site?

It can, briefly, when it caches something dynamic, which is exactly why you clear the cache after configuration changes and check the result in a private window.

Do I need a CDN?

If your visitors are mostly in one country and your server is in that country then the gain is small, while for a genuinely global audience it is significant.

My score is high and the site feels slow

Scores measure a page in a lab, so test on a real phone on a real connection and trust that over the number.

Should I minify everything?

Minification is a small win with a real risk of breaking scripts, so do it after the four items above and walk the site afterwards rather than assuming it was free.

Nothing I try moves the number

Look at the server, because a slow response before any content is sent points at hosting rather than at anything on the page, and no amount of front end work fixes that.

#Still stuck

Open a support ticket with the page you tested and the report link.

Last updated

Was this article helpful?

Related articles

FIND THE ONE THAT FITS YOUR PROJECT

Import a demo, swap the content, adjust the layout. Modern WordPress under the hood, fast even when the site fills up.