neonency®
Independent. By design.Book a call ↗

How to speed up a WordPress website: the complete guide

Hosting, caching, images, plugins, page builders and scripts, in the order that actually moves your PageSpeed score.

Samiul Islam
By Samiul Islam
Founder, Neonency7 min read
Violet paper plane flying through a WordPress website window with a speed gauge, showing a faster website
Quick answer

To speed up WordPress, work in this order: measure with PageSpeed Insights, move to better hosting on a current PHP version, add a caching plugin, convert and resize images to WebP, remove plugins you do not need, reduce page builder and font bloat, then delay third party scripts like chat widgets and trackers. Hosting, caching and images usually give the biggest wins.

Speed work is a big part of what I do, and I can tell you something that might save you a weekend: most slow WordPress sites are slow for the same handful of reasons. You rarely need fifteen plugins and a secret trick. You need to fix the right things in the right order.

This guide is that order. Start at the top, test after each step, and stop when your site is fast enough for your visitors.

Step 1: measure before you change anything

Run your homepage and one important inner page through PageSpeed Insights. Always look at the mobile result first.

You will see two kinds of data. The top section, if your site has enough traffic, shows real visitor data from Chrome users. That is what Google uses for Core Web Vitals. The lab test below it is a simulated run, which is useful for finding problems but jumps around from test to test.

The targets for a good experience are:

Metric What it measures Good
LCP (Largest Contentful Paint) How fast the main content appears Under 2.5 seconds
INP (Interaction to Next Paint) How quickly the page responds to taps and clicks Under 200 ms
CLS (Cumulative Layout Shift) How much the layout jumps while loading Under 0.1

Google judges these at the 75th percentile of visits, so most of your visitors need a good experience, not just the lucky ones on fast Wi Fi. If these three still feel abstract, I explain them in plain English in Core Web Vitals explained.

Step 2: fix your hosting first

No plugin can fully rescue bad hosting. If your server takes more than a second just to start sending the page (look for "server response time" or TTFB in the report), the problem starts there.

Things to check with your host:

  • PHP version. Use a currently supported PHP 8 release. Old PHP versions are slower and no longer get security fixes.
  • Server type and caching. LiteSpeed servers and hosts with built in server caching make a big difference.
  • Resources. Very cheap shared plans put hundreds of sites on one server. If your site is your main sales channel, it deserves better.

Step 3: add page caching

Without caching, WordPress builds every page from scratch for every visitor. With caching, it serves a ready made copy, which is far faster.

My usual picks:

  • LiteSpeed Cache if your host runs LiteSpeed. It is free and very complete, but its page cache only works on LiteSpeed servers.
  • WP Rocket on other servers. It is paid, but the defaults are sensible and it rarely breaks things.
  • Your host's own caching, if you are on managed WordPress hosting. In that case, check with the host before adding another cache plugin, because two caches fighting each other causes strange bugs.

After turning caching on, test logged out, in a private window. When you are logged in, you are usually seeing the uncached version.

Speed gauge with the needle in the green zone next to a laptop showing a fast loading website
Aim for green on real visitor data, not just a perfect lab score.

Step 4: sort out your images

Images are usually the heaviest part of a page. Three fixes do most of the work:

  1. Resize before uploading. A hero image does not need to be 5,000 pixels wide. Around 1,600 to 2,000 pixels is plenty for most full width images.
  2. Use modern formats. WordPress has supported WebP since version 5.8 and AVIF since 6.5. An optimization plugin can convert existing images automatically.
  3. Lazy load below the fold, not above it. WordPress lazy loads images by default, which is great for images further down the page. But your main hero image should load immediately. Lazy loading the hero is one of the most common reasons for a poor LCP.

Step 5: audit your plugins

Every plugin can add database queries, CSS and JavaScript, sometimes on every single page. Go through your list and ask of each one: do we still use this? Does it need to load on every page?

The free Query Monitor plugin shows which plugins slow down page generation. Deactivate anything you do not need, test, and delete it if nothing breaks. Fewer plugins also means fewer security risks.

Step 6: tame the page builder

I build a lot with Elementor, and I like it. (If you are still choosing, see Elementor vs custom theme.) But page builders generate more code than a hand coded theme, so they need some discipline:

  • Use fewer nested containers and sections. Every extra layer adds to the page size.
  • Turn on Elementor's performance features under Elementor, Settings, Features, then test each change.
  • Avoid loading a dozen widget add on plugins when you use two widgets from each.
  • Keep sliders, carousels and animations to places where they actually help.

Step 7: be strict with fonts

Each font weight is another file to download. Pick one or two font families and only the weights you really use. Host fonts locally instead of loading them from external servers, and use font display swap so text shows right away instead of waiting for the font.

Step 8: delay third party scripts

Chat widgets, heatmaps, social embeds, ad pixels and some analytics tools can slow your site more than WordPress itself. Most caching plugins, including WP Rocket and LiteSpeed Cache, can delay JavaScript until the visitor interacts with the page. That one setting often fixes a bad INP score. Just test forms and menus afterwards, because delaying the wrong script can break them.

Step 9: clean up and add a CDN

Two last tasks:

  • Clean the database. Old revisions, spam comments and expired transients pile up over the years. Most optimization plugins can clean them on a schedule. Always take a backup first.
  • Use a CDN. A content delivery network like Cloudflare serves your files from servers close to each visitor. It helps a lot if your audience is spread across countries.

What to do first if you only have an hour

If you only have time for a few fixes today, do these: check your PHP version, enable page caching, compress and convert your biggest images, and make sure your hero image is not lazy loaded. Those four alone often move a site from red to orange or green.

My take

Chasing a perfect 100 is a trap. I have seen sites stripped of useful features just to gain three points in a lab test. What matters is that real visitors get a fast, stable page, and that your Core Web Vitals pass. Fix the big things, measure, and then get back to running your business.

Planning a redesign anyway? It is the best moment to fix performance properly, and my redesign checklist shows how to do it without losing rankings. Or if you would rather hand it over, our speed and technical SEO service covers everything in this guide. Send us your URL and we will take a look.

Frequently asked questions

Why is my WordPress website so slow?

The most common causes are cheap or overloaded hosting, no page caching, large uncompressed images, too many plugins, heavy page builder output, and third party scripts like chat widgets, sliders and tracking pixels. Usually it is a combination of three or four of these.

Which caching plugin is best for WordPress?

If your host runs a LiteSpeed server, LiteSpeed Cache is free and very effective. On other servers, WP Rocket is a reliable paid option that is easy to configure. Many managed WordPress hosts also include their own server caching, so check that first.

Does Elementor slow down WordPress?

Elementor adds more code than a hand coded theme, but an Elementor site can still pass Core Web Vitals. Use fewer widgets and nested containers, enable Elementor's performance features, limit fonts, and pair it with good hosting and caching.

What is a good PageSpeed score for WordPress?

Focus on the Core Web Vitals from real visitors: LCP under 2.5 seconds, INP under 200 milliseconds and CLS under 0.1. A lab score in the 80s or 90s on mobile is a good sign, but passing Core Web Vitals matters more than hitting 100.

Book a call with Neonency

Loading available meeting times…