To speed up a WordPress website, start by finding what makes visitors wait. Large images, slow server responses and unnecessary scripts each need a different fix. Installing another optimization plugin before checking the cause can leave you with more settings and the same slow page.

This guide covers ten practical improvements, from page caching and image compression to fonts and hosting. Start with a baseline test, make one change at a time and keep the changes that improve the pages people use.

10 Effective Tips to Boost Page Speed for Your WordPress Site

Before you change anything: measure the problem

Test your homepage, an important service or product page, and a typical blog post in PageSpeed Insights. Check mobile and desktop results. Run each test a few times under the same conditions, since individual results vary.

The report separates real-user data, when available, from a simulated Lighthouse test. Real-user data describes visitors’ experiences over time. The lab test helps you investigate a specific page now. A site without enough visitors may have no field data; that does not mean it passes or fails.

  • Largest Contentful Paint (LCP): how soon the largest visible content appears. Aim for 2.5 seconds or less.
  • Interaction to Next Paint (INP): how quickly the page responds to interactions. Aim for 200 milliseconds or less.
  • Cumulative Layout Shift (CLS): how much content moves unexpectedly. Aim for 0.1 or less.

These Core Web Vitals thresholds are assessed at the 75th percentile of visits. Use the diagnostics below them to decide what to work on. For example, a late hero image points toward image delivery, while long JavaScript tasks suggest too much work in the browser.

Keep a backup and use a staging copy for changes to scripts, plugins or server settings. Record the page, device setting and result so you can compare the same test after each change.

1. Check hosting and server response time

Time to First Byte (TTFB) measures how long the browser waits for the first byte of the response. If that wait is long, everything that depends on the HTML starts later. Hosting can contribute, but so can uncached pages, database queries and external services called by a plugin.

Compare a cached public page with an uncached request before buying a larger hosting plan. Ask your host whether page caching is active, whether the account reaches resource limits and whether slow requests can be traced. A low PageSpeed score alone does not establish that you need a VPS.

If the server remains slow after those checks, compare hosts using your actual site and audience location. Look for reliable response times, adequate resources and support that can investigate WordPress performance.

2. Enable page caching

Page caching saves generated HTML so WordPress can serve eligible visits without repeating all the PHP and database work. It is especially useful for public pages whose content is the same for everyone.

Check your host’s caching first. If you need a plugin, the WP Fastest Cache setup guide explains the available controls. Use one coordinated page-cache setup and learn how its cache clears when you update content.

Keep personalized pages out of a shared cache. Test carts, checkout, account pages and booking flows separately. After changing settings, visit important pages while logged out and confirm that new content appears correctly.

3. Resize and compress images

A photograph prepared for print can be several megabytes even when it appears as a small image on your website. Resize the source for its intended use, then compress it and check the result at the displayed size. Allow enough resolution for larger screens and sharp displays without uploading more pixels than you need.

WordPress generates multiple image sizes, but your theme or page builder must select a suitable one. Check the file the browser downloads, particularly for background images and full-width banners.

Tools such as TinyJPG can compress files before upload. An image plugin can process an existing library and automate future uploads. Our guide to compressing images in WordPress covers that workflow in detail.

WebP and AVIF can reduce file weight, depending on the image and quality settings. Check whether your host or CDN already delivers these formats. There is no universal 200 KB limit: choose the smallest file that looks right for its purpose.

4. Reduce heavy embeds and unnecessary media

Videos, maps, social feeds and chat widgets can load scripts from several external services. Even a visually simple page can become expensive once those requests start.

Replace a video embed with a preview that loads the player when clicked. Consider a directions link where a live map adds little value. Put extensive galleries on a dedicated page, and load chat or other widgets only where customers use them.

Check the network report after removing an embed. The useful result is fewer downloads and less browser work while retaining the information visitors came for.

5. Find plugins that add unnecessary work

Plugin count tells you little on its own. One plugin that runs expensive queries or loads a large script on every page can matter more than several small plugins used only in the dashboard.

On staging, disable a suspected plugin, repeat the same test and check whether its requests or server work disappear. If you need the feature, look for settings that limit it to the relevant pages before replacing the plugin.

Remove unused plugins after checking whether uninstalling them deletes data you want to keep. Avoid running overlapping tools for caching, minification or image delivery unless you know which tool owns each feature.

6. Defer nonessential JavaScript

Some scripts interrupt HTML parsing or keep the browser busy when a visitor tries to use the page. Deferring suitable external scripts lets the browser continue parsing HTML while they download, then execute them after parsing finishes.

Deferring and delaying scripts are different. A delay feature may wait for a click, scroll or timer before loading a script. That can help with optional widgets, but can also postpone a menu, consent tool or booking form that needs to work immediately.

If you use Autoptimize or another asset optimizer, enable one option at a time. Test navigation, forms, search, sliders and purchases on mobile. Revert the latest change and clear generated assets if something stops working; do not keep a setting solely because it raises the score.

7. Lazy-load off-screen images

Lazy loading postpones images until they approach the visible area. It is useful for photographs further down an article or gallery, where downloading everything immediately would compete with the opening content.

WordPress already adds loading optimizations to many images. Inspect the output before installing an additional tool such as a3 Lazy Load. Avoid having two tools rewrite the same images.

Keep the main hero image out of lazy loading if it is the page’s LCP element. Google’s LCP guidance recommends making that resource discoverable early. Also give images width and height attributes, or reserve their aspect ratio, so the layout does not jump when they appear.

8. Host fonts locally with the WordPress Font Manager

WordPress 7.0 lets you manage local fonts directly from Appearance → Fonts, including on classic themes. You can upload your own font files or install fonts from Google Fonts. WordPress stores the installed files on your server, so visitors can load them from your site.

Our QreativeThemes themes support this workflow. After installing a font, go to Appearance → Customize → Typography and enter its family name in the relevant Font Family field. Under Typography → Settings, enable “Disable Google Font Connection” to stop the theme from also requesting its default fonts from Google.

For the full walkthrough, see how to use the WordPress 7.0 Font Manager to add local fonts. Installing a font and applying it are separate steps; the guide covers both.

Some themes have not integrated the Font Library into their typography controls yet. If your theme still loads Google Fonts remotely, the Local Google Fonts plugin can be a useful fallback. Check that it detects and serves the fonts your theme uses.

Whichever method you use, load only the font weights and styles your design needs. Local hosting removes the external font connection, but file size and caching still affect speed. After switching, clear the cache and check that the fonts display correctly without duplicate local and remote requests.

9. Trim CSS and minify assets where useful

Minification removes unnecessary characters from CSS and JavaScript. It can reduce transfers, although many themes and plugins already ship minified files. Use your existing optimization tool for this job and avoid applying the same transformation twice.

Removing unused CSS can save more than minifying it, but automated tools may remove styles needed by menus, popups or other interactive states. Test those states, including mobile layouts, after generating optimized CSS.

Combining files is a separate setting. With modern HTTP connections, fewer files do not automatically mean faster loading. Leave combination off unless a measured test shows an improvement and the site still behaves correctly.

10. Keep PHP and WordPress software supported

Check your PHP version under Tools → Site Health → Info → Server. Ask your host for a supported version compatible with your installation, then test the change on staging before switching the live site.

Keep WordPress, your theme and plugins updated too. Updates can fix inefficient code as well as bugs, but performance gains vary. Test important functions after the update and keep a working backup in case an incompatibility appears.

Check the result before moving to the next fix

Repeat your original tests with the same page and device settings. Warm the page cache consistently when comparing cached results, and inspect the actual timings as well as the score. Then use the site: open the mobile menu, submit a form and complete any important customer journey.

Save a short note of the change and its result. Field data reflects a rolling history, so it will not immediately match a faster lab test. Keep monitoring after publication to see whether visitors benefit too.

Does WordPress page speed affect SEO?

Google confirms that Core Web Vitals are used by its ranking systems. Good scores do not guarantee a top position. Relevant, useful content still matters, and a performance score cannot tell you whether a page answers the searcher’s question.

If you are also improving the content and navigation of a business website, see our guides for dental websites, physiotherapy websites, moving company websites and landscaping websites.

When evaluating WordPress themes, test a representative page with your own images and features. The result gives you more useful evidence than a demo score measured under different conditions.

About Barry de Jong

I'm the founder and developer of QreativeThemes. I've spent over 15 years building WordPress themes for small businesses, with more than 11,000 websites built using my themes, many ranking at the top of local search results in their area. I build practical solutions that business owners can manage themselves.