How to Speed Up a WordPress Site: 15 Fixes in Priority Order

A diagnose-first guide to WordPress speed: read your PageSpeed Insights field data, match the failing metric to its cause, then work through 15 fixes from hosting and PHP to images, Elementor and scripts.
Navy card with a WordPress logo beside a speedometer needle in the green zone and a stack of cached web pages

To speed up a WordPress site, measure first, then fix the slowest layer. Your PageSpeed Insights field data shows whether the server, the images or the scripts are holding pages back. Then apply the fixes below in order: hosting and PHP, caching and CDN, images and fonts, Elementor settings, plugins and scripts, and finally the database.

Instead of a random list of tips, this guide maps each symptom to the fix that addresses it, with the real settings in WordPress, Elementor and your hosting panel. Re-test after each change so you know what helped.

For the Core Web Vitals thresholds themselves, read our guide to why slow Core Web Vitals cost you customers.

Key takeaways

  • Diagnose before you optimize: PageSpeed Insights field data shows whether the server, images or scripts are the bottleneck.
  • WordPress.org recommends PHP 8.3 or greater, and PHP 8.1 no longer receives security fixes.
  • The WordPress handbook names page caching as the quick fix with the biggest benefit for the least effort.
  • Never lazy-load the hero image: give it priority and serve it as a correctly sized WebP or AVIF file.
  • Elementor’s Performance tab has image, background and font settings worth enabling, but simpler layouts matter more than any setting.

How do you find out what is slowing down your WordPress site?

Run your key pages through PageSpeed Insights and read the field data at the top before you look at the score. Google explains that field data comes from real Chrome users over the previous 28 days, while the Lighthouse score underneath is a simulated test meant for debugging.

Test the templates that earn money, such as a service page, a product page and the contact page, not only the home page. Low-traffic pages fall back to domain-level data, or show none.

Match the symptom to the fix

What you seeLikely causeStart with
Slow Time to First Byte (TTFB) in field dataUnderpowered hosting, old PHP, no page cache, distant serverFixes 1 to 5
Slow Largest Contentful Paint with a quick TTFBHeavy hero image, late fonts, render-blocking CSSFixes 6 to 10
Slow Interaction to Next PaintToo much JavaScript from plugins, builders and third-party tagsFixes 10 to 13
Slow admin, cart or checkout while cached pages are fineHeavy queries, bloated autoloaded options, no object cacheFixes 14 and 15
Where to start, based on what the data shows

Two free tools narrow it down. Tools > Site Health flags a missing page cache, a missing persistent object cache and oversized autoloaded options. The free Query Monitor plugin lists slow database queries and names the plugin or theme behind each one; it’s a developer tool, so run it on staging.

How to speed up a WordPress site: the 15 fixes in order

Work from the server outward. The table shows each fix, the metric it mainly improves and the typical effort.

#FixMainly improvesEffort
1Move to hosting that fits your trafficTTFBMedium
2Run a current PHP versionTTFBLow
3Turn on full-page cachingTTFB and LCPLow
4Enable compression and browser cachingLCPLow
5Put a CDN in front of the siteTTFB and LCPLow to medium
6Resize images and serve WebP or AVIFLCPMedium
7Prioritize the hero imageLCPLow
8Lazy-load everything below the foldLCPLow
9Load fewer fonts, fasterLCP and CLSLow
10Trim page-builder bloatLCP and INPMedium to high
11Remove or replace heavy pluginsTTFB and INPMedium
12Defer non-critical JavaScriptLCP and INPMedium
13Delay or drop third-party scriptsINPMedium
14Clean up the databaseTTFB on uncached pagesLow
15Add a persistent object cacheTTFB on uncached pagesLow to medium
The 15 fixes in priority order

Fixes 1 to 5: How do you speed up the server side?

If TTFB is slow, fix the server first: no amount of image work makes up for a late first byte.

1. Move to hosting that fits your traffic

Crowded shared hosting is a common cause of slow response times. Managed WordPress hosting or a VPS gives your site dedicated resources and usually includes server-level caching. Location matters too: the WordPress handbook notes that the distance between server and visitor affects speed.

2. Run a current PHP version

WordPress.org recommends PHP 8.3 or greater. Check your version under Tools > Site Health > Info > Server, test the upgrade on staging, then switch it in your hosting panel (MultiPHP Manager in cPanel). PHP 8.1 stopped receiving security fixes at the end of 2025, and PHP 8.2 follows on December 31, 2026.

3. Turn on full-page caching

Without a page cache, WordPress runs PHP and database queries to build every page for every visitor. A cache stores the finished HTML and serves it directly. Use your host’s server cache if it offers one, or a single plugin such as WP Super Cache, W3 Total Cache, WP Rocket, or LiteSpeed Cache on LiteSpeed servers.

Never run two page caches at once, and exclude cart, checkout and account pages on WooCommerce stores. Site Health reports whether it detects a page cache and whether server response time is under its 600 ms threshold.

4. Enable compression and browser caching

Ask your host to confirm Brotli or Gzip compression for HTML, CSS and JavaScript, and long Cache-Control headers on static files. Most caching plugins and CDNs can set both. Returning visitors then load images, stylesheets and scripts from their own browser instead of your server.

5. Put a CDN in front of the site

A content delivery network serves copies of your images, CSS and JavaScript from locations near each visitor, and some also cache whole pages at the edge. Whether you use Cloudflare, Bunny.net or your host’s CDN, confirm it purges its cache when you publish changes.

Pakistan note

If most of your customers are in Pakistan but your server sits in the US or Europe, every uncached page request travels between continents. Pick a data center nearer your audience if your host offers one, put a CDN in front, and test on a local mobile connection. Selling mainly to the UK or the UAE? Host near those customers instead.

Fixes 6 to 9: How do you make images and fonts load faster?

Once the server is quick, images and fonts usually decide Largest Contentful Paint. The goal is to send the hero image first, at the right size, and everything else later.

6. Resize images and serve WebP or AVIF

Upload images at the size they display, not straight from a camera or design tool. A 4,000-pixel photo shown in an 800-pixel column wastes data on every phone. WordPress creates smaller copies on upload and serves them with responsive srcset markup, supports WebP, and since version 6.5 accepts AVIF when your server’s image library supports it.

To convert an existing library of JPEGs and PNGs, use an image optimization plugin or the WordPress Performance Team’s Modern Image Formats plugin. Check the output quality on a few images before converting everything.

7. Prioritize the hero image

The LCP element on most business pages is the hero image or main headline. Since WordPress 6.3, core adds fetchpriority="high" to the image it judges most likely to be the LCP element and avoids lazy-loading images near the top of the page.

Page builders and sliders can undo this. A hero set as a CSS background image is discovered late, and a slider may download several large images before showing one. Use a single, real image element for the hero wherever you can.

8. Lazy-load everything below the fold

WordPress adds native loading="lazy" to content images and iframes by default, so a separate lazy-loading plugin is often redundant. The gaps are background images, sliders and video embeds. For YouTube and map embeds, show a static preview that loads the real player only when clicked, a pattern known as a facade.

9. Load fewer fonts, faster

Each font family and weight is another file to download before text looks right. Stick to two families and only the weights you use, serve WOFF2 files, and set font-display to swap (text appears at once in a fallback font) or optional (fastest, though the web font may not show on slow connections).

Self-hosting fonts removes a connection to Google’s servers, but web.dev notes it isn’t automatically faster in practice. It pays off most when you serve files through a CDN, or when privacy rules make third-party font requests a problem.

How do you speed up WordPress with Elementor?

Turn on Elementor’s built-in performance settings, then simplify the layouts themselves. Settings help, but a page built from deeply nested sections and a dozen add-on widgets will stay heavy whatever you toggle.

10. Trim page-builder bloat

SettingWhereWhat it doesRecommendation
Optimized Image LoadingPerformance tabAdds fetchpriority=”high” to the LCP image and lazy-loads images below the foldEnable
Lazy Load Background ImagesPerformance tabLazy-loads every background image except the firstEnable, then check hero sections
Optimized Gutenberg LoadingPerformance tabDequeues unused block editor scripts and stylesEnable if pages are built only in Elementor
Load Google Fonts LocallyPerformance tabServes Google Fonts from your server; disabled by default since Elementor 3.32.1Enable when you have a CDN
Google Fonts LoadAdvanced tabSets how fonts display while loading: Swap, Optional and othersSwap or Optional
Element CachingFeatures tab (experimental), then each widget’s Advanced tabStores rendered widget HTML to reduce server workOnly for static widgets without dynamic tags
Elementor settings worth checking (WP Admin > Elementor > Editor > Settings)

Beyond settings, rebuild old section-and-column layouts with Flexbox containers, which Elementor says use one wrapper element instead of two. Also drop add-on packs you keep for one or two widgets: Elementor loads assets only for widgets on the page, but some add-ons load theirs everywhere.

If a theme or builder setup is past saving, a lean rebuild by our web development team can cost less than months of tuning. Choosing a builder for a new site? Our comparison of Elementor and the block editor covers the trade-offs.

Fixes 11 to 13: How do you stop plugins and scripts slowing WordPress?

What each plugin loads matters more than how many you have. One heavy slider or social feed can cost more than ten small utility plugins, so measure before you delete.

11. Remove or replace heavy plugins

The WordPress handbook calls deleting unnecessary plugins the first and easiest performance step. On staging, deactivate plugins one at a time and re-test, or check Query Monitor for the slowest queries, and replace all-in-one plugins you use for one feature. Our list of essential WordPress plugins for business sites shows what most sites actually need.

12. Defer non-critical JavaScript

Scripts in the page head block rendering until they download and run. WordPress 6.3 added defer and async loading strategies for developers, and most caching plugins can defer JavaScript or delay it until the visitor interacts. Afterwards, test menus, sliders, forms and cookie banners, which delayed scripts often break.

13. Delay or drop third-party scripts

Chat widgets, heatmaps, ad pixels, review badges and embedded feeds run other companies’ code and often drag down Interaction to Next Paint. List every tag in your theme, plugins and Google Tag Manager, remove duplicates and tools nobody checks, and load the rest after the page is interactive or after consent. A chat widget rarely needs to load before someone clicks it.

Fixes 14 and 15: How do you speed up the WordPress database?

Database work matters most on pages that can’t be cached: the admin area, WooCommerce carts and checkouts, site search and member areas. Clear out clutter first, then add an object cache.

14. Clean up the database

  • Autoloaded options: WordPress loads these on every request. The WordPress handbook suggests keeping them under 800 KB, and since WordPress 6.6 Site Health raises a critical issue above that. Large entries often belong to plugins you removed long ago.
  • Post revisions: cap them with define( 'WP_POST_REVISIONS', 5 ); in wp-config.php, then delete old revisions with a cleanup plugin.
  • Expired transients, spam and trash: clear them with a cleanup plugin or WP-CLI, for example wp transient delete --expired.

Back up the database before any cleanup, since a plugin that deletes the wrong option can break the site. Recurring cleanups belong in your WordPress maintenance checklist rather than being a one-off job.

15. Add a persistent object cache

A persistent object cache such as Redis or Memcached keeps the results of repeated database queries in memory, so WordPress doesn’t fetch the same options on every request. The handbook says this shortens TTFB and protects the database during traffic spikes. Your host must provide the cache server; you then install the matching object cache plugin.

How TechZone can help

TechZone builds and speeds up WordPress and Elementor sites for businesses in Pakistan, the UK, the UAE, the USA, Canada and Australia. We start from your field data and a staging copy, find the metric that fails, fix the biggest bottleneck first and show you before-and-after measurements. If tuning won’t be enough, we’ll tell you plainly. Our WordPress maintenance plans cover this work every month. Explore our WordPress design and development services, or book a free 30-minute consultation to walk through your PageSpeed Insights report together.

Frequently asked questions

Which caching plugin is best for WordPress?

The best WordPress caching plugin depends on your server. On LiteSpeed servers, LiteSpeed Cache uses the server’s own cache. Managed WordPress hosts often include server caching, so an extra plugin may conflict with it. Elsewhere, WP Super Cache and W3 Total Cache are free options and WP Rocket is a paid one. Whichever you choose, run only one page cache at a time.

Why is my WordPress site slow only when I’m logged in?

A WordPress site is often slow only for logged-in users because page caches skip logged-in sessions, so every admin page is built fresh with PHP and database queries. Heavy plugins, a bloated autoloaded options table and the admin toolbar add to the load. A persistent object cache and a database cleanup usually help most with a slow logged-in experience.

Can a speed optimization plugin break my WordPress site?

Yes, a speed optimization plugin can break a WordPress site. Settings that delay JavaScript, combine files or remove unused CSS often stop menus, sliders, forms or cookie banners from working. Enable one setting at a time on a staging copy, test your key pages and forms after each change, clear every cache, and keep a recent backup before touching the live site.

Does a lightweight theme make WordPress faster?

A lightweight theme usually makes WordPress faster, because it loads less CSS, JavaScript and markup on every page. The WordPress handbook says a fast, lightweight theme performs much more efficiently than a heavy, graphics-laden one. Before switching, check what your current theme loads in PageSpeed Insights, since a theme change also means rebuilding layouts and retesting the whole site.

How much does WordPress speed optimization cost?

WordPress speed optimization costs depend on whether the problem is configuration or structure. Configuration fixes, such as caching, PHP upgrades, image settings and a CDN, are usually the smaller job. Structural problems, such as a heavy theme, nested page-builder layouts or plugins the site depends on, can take far longer. Ask for a written scope that lists the fixes and includes before-and-after measurements.

Sources and further reading

Written by

TechZone Team

TechZone is a digital agency in Islamabad, Pakistan. We design and build websites, online stores, mobile apps and AI automation for businesses in the UK, UAE, USA, Canada, Australia and Pakistan, and mentor interns through our virtual internship program. On this blog we share what we use in that work every day.

Last updated

Keep reading

Related articles

Branded navy card with the headline beside a 90-day calendar, a rising search results chart and a map pin

SEO

A week-by-week SEO plan for small businesses with limited time: what to set up first, which pages to fix, what to publish, how to earn reviews and links, and how to tell if it’s working.

13 min read

Navy card with a ticked checklist beside a map pin and a local results panel listing three nearby businesses

Local SEO

Thirty local SEO steps in seven phases, from your Google Business Profile and location pages to citations, reviews, local links and tracking, each with why it matters, how to check it and what to do first.

13 min read

Navy card with the headline beside a search results page showing a sponsored ad, a budget dial and a checklist for keywords, ads and tracking

Google Ads & PPC

A plain-English guide to running Google Ads as a small business in 2026: how the auction works, why Search usually comes first, how to set up keywords, ads and tracking, and what to do in the first 30 days.

14 min read

Want expert help putting this into practice?

Tell us what you’re working on. We’ll reply with honest advice, clear next steps and a written quote.