A slow WordPress website can frustrate visitors, make pages harder to use and put unnecessary strain on your hosting.
The good news is that WordPress performance problems are usually explainable. You do not need to install a collection of optimisation plugins and hope for the best. A better approach is to measure the site first, identify the biggest bottlenecks, fix them in priority order and test again.
This guide explains how to speed up WordPress safely, from hosting and caching to images, plugins, scripts, fonts and Core Web Vitals.
Start by Measuring Your WordPress Performance
Before changing anything, establish how the website performs now.
Otherwise, you may spend time fixing something that was not causing the slowdown, or make several changes at once without knowing which one helped.
A useful starting point is Google PageSpeed Insights. It can show two different types of performance information:
- Real-user data based on how actual visitors have experienced the website
- Lab data generated by Lighthouse under controlled test conditions
These results serve different purposes.
Real-user data is useful for understanding what visitors are actually experiencing across different devices and connections. Lighthouse lab data is useful for diagnosing specific problems and testing changes.
If you want to go further, see our guide to website performance testing and our Google Lighthouse guide.
Do not become too focused on reaching a perfect performance score. The aim is to make the website noticeably faster and easier to use, not simply to turn every score green.
Understand the Core Web Vitals
Core Web Vitals are useful because they focus on parts of performance that visitors can actually feel.
The three current Core Web Vitals are:
Largest Contentful Paint
Largest Contentful Paint, or LCP, measures how quickly the main visible content loads.
A good LCP is 2.5 seconds or less.
The LCP element is often a large hero image, banner, heading or other prominent content near the top of the page.
If LCP is slow, possible causes include:
- Slow hosting or server response
- An oversized hero image
- The main image being discovered too late
- Render-blocking CSS or JavaScript
- Heavy themes or page builders
- Third-party scripts competing for bandwidth
Interaction to Next Paint
Interaction to Next Paint, or INP, measures how responsive the page feels when someone interacts with it.
A good INP is 200 milliseconds or less.
Problems here are commonly associated with JavaScript that keeps the browser busy for too long.
If clicking a menu, button or form feels delayed, excessive JavaScript or a poorly performing interactive feature may be involved.
Cumulative Layout Shift
Cumulative Layout Shift, or CLS, measures how much the page unexpectedly moves while loading.
A good CLS score is 0.1 or less.
Common causes include:
- Images without suitable dimensions
- Banners appearing after other content has loaded
- Fonts changing the size of text
- Embedded content without reserved space
- Pop-ups or notices pushing the page around
Core Web Vitals are helpful targets, but they should not become the only measure of whether a website performs well.
A website also needs to feel responsive, load reliably and allow visitors to reach the content they need without unnecessary delay.
1. Make Sure Your Hosting Is Fast Enough
Hosting provides the foundation for WordPress performance.
You can optimise images, remove plugins and minify files, but there is a limit to what you can achieve if the server itself is consistently slow or overloaded.
Cheap shared hosting can be perfectly adequate for a small website, but problems can appear as traffic, WooCommerce activity, plugins or database usage increase.
Things to consider include:
- Available CPU and memory
- PHP performance
- Database performance
- Server location
- Page caching
- Persistent object caching
- Traffic limits
- How well the hosting platform is configured for WordPress
If the server is regularly struggling, moving to better hosting can have a much greater effect than adding another optimisation plugin.
Our WordPress hosting guide explains what to look for when comparing hosting options.
2. Use Page Caching
Without caching, WordPress may need to run PHP, query the database and build a page every time someone visits it.
Page caching stores a ready-made version of the page so that suitable visitors can receive it without WordPress rebuilding everything from scratch.
This can substantially reduce server work.
Caching may be provided by:
- Your hosting platform
- A server-level cache
- A WordPress caching plugin
- A reverse proxy or CDN
Do not automatically install a caching plugin before checking what your host already provides.
Running overlapping caching systems without understanding how they interact can create unnecessary complexity and make troubleshooting harder.
Dynamic websites also need more care.
For example, WooCommerce baskets, checkout pages, logged-in accounts and other personalised pages should not simply be served from the same full-page cache as ordinary public content.
A properly configured caching system should understand which pages can be cached and which need to remain dynamic.
3. Consider Persistent Object Caching for Busier Sites
Page caching stores complete rendered pages. Object caching solves a different problem.
WordPress frequently retrieves information from its database. Persistent object caching can store reusable results so that WordPress does not need to perform the same database work repeatedly.
Redis and Memcached are common examples.
This can be particularly useful for:
- WooCommerce stores
- Membership websites
- Large WordPress installations
- Sites with logged-in users
- Sites making many database queries
It is not necessary for every small website, and it is not a replacement for page caching.
If your hosting already includes a persistent object cache, make sure it is correctly connected to WordPress before adding another solution.
4. Optimise Your Images
Images are often among the largest files on a web page, so image optimisation can produce meaningful improvements without changing the design.
The first rule is simple: do not upload an image that is much larger than the size it will actually be displayed.
For example, there is usually little benefit in loading a very large photograph if it only appears as a modest image inside an article.
You should consider:
- Image dimensions
- Compression
- File format
- Responsive image sizes
- Whether the image is actually needed
Modern formats such as WebP and AVIF can reduce file sizes compared with older formats in many situations.
WordPress also generates multiple image sizes and provides responsive image information so compatible browsers can choose a suitable version.
For a more detailed process, see our image optimisation guide.
5. Use Lazy Loading Carefully
Lazy loading delays images and other media that are further down the page until they are likely to be needed.
That prevents visitors from downloading everything immediately, even if they never scroll far enough to see it.
Modern WordPress already applies native browser lazy loading where appropriate, so you may not need a separate lazy-loading plugin.
There is an important exception.
Images near the top of the page, especially an image responsible for Largest Contentful Paint, should normally be available to the browser quickly.
Lazy loading the main visible hero image can make LCP worse rather than better.
WordPress includes logic intended to avoid lazy loading likely in-view images and can prioritise a likely LCP image automatically.
This is another reason to avoid adding optimisation tools without first understanding what WordPress, your theme and your hosting platform are already doing.
6. Choose a Lightweight WordPress Theme
Your theme controls much more than the visual appearance of the website.
It may also load:
- Stylesheets
- JavaScript
- Fonts
- Icons
- Sliders
- Animation libraries
- Layout frameworks
- Additional plugin integrations
A theme packed with features may load resources on every page even when only a small number of those features are being used.
When choosing a theme, look beyond the demo design.
Consider how much code and functionality is being loaded, whether the theme is actively maintained and whether it works well with the plugins you actually need.
Our guide to choosing the right WordPress theme covers this in more detail.
If you already have a stable theme, do not change it solely because a speed test suggests there may be opportunities for improvement. A theme change can affect layouts, templates, plugins and customisations.
Any major theme work should be tested away from the live site first.
7. Review Plugins by What They Do, Not How Many You Have
A common WordPress performance myth is that simply having too many plugins makes a website slow.
The number alone tells you very little.
One badly coded plugin can cause more performance problems than several well-built plugins.
Plugins can affect performance by:
- Running slow database queries
- Loading large JavaScript files
- Loading styles on pages where they are not needed
- Making external API requests
- Running background jobs
- Adding tracking scripts
- Creating large amounts of autoloaded data
- Performing work during every page request
Start by identifying plugins that are genuinely being used.
Remove plugins that are no longer needed, but do not disable essential plugins at random on a production website.
If you suspect a plugin is causing a problem, test it properly on a staging site or during a controlled troubleshooting process.
Keeping plugins current is also important. Updates can contain bug fixes, compatibility changes, security fixes and performance improvements.
The same applies to themes. See our guide on how to update a WordPress theme safely.
8. Reduce Unnecessary JavaScript
JavaScript is responsible for much of the interactive behaviour on modern websites.
It can also make a page feel slow when too much work is being performed in the browser.
Common sources include:
- Page builders
- Sliders
- Pop-ups
- Live chat
- Analytics
- Advertising
- Social media widgets
- Cookie tools
- Maps
- Video embeds
- A/B testing software
The solution is not necessarily to combine every JavaScript file into one file.
Modern browsers and web servers handle multiple files far better than they did years ago, and aggressive combining can sometimes create new problems.
Instead, ask whether each script needs to load at all, whether it needs to load on every page and whether it can run later without affecting the visitor.
Reducing unnecessary work is usually more valuable than simply rearranging it.
9. Review Third-Party Scripts
Third-party services deserve particular attention because part of their performance is outside your control.
A page may be well optimised on your own server but still slow down because it waits for scripts or resources from other companies.
Common examples include:
- Analytics platforms
- Advertising networks
- Tracking pixels
- Social feeds
- Review widgets
- Booking systems
- Chat services
- Embedded maps
- Video players
Ask whether each service provides enough value to justify the performance cost.
You may also be able to load some services only after interaction, consent or when they are actually needed.
Be careful when removing tracking or marketing scripts. Performance work should not accidentally break analytics, advertising attribution or other business systems.
10. Optimise Web Fonts
Custom fonts can improve the appearance of a website, but a complicated font setup can result in several extra downloads.
Performance can often be improved by:
- Using fewer font families
- Using fewer font weights
- Removing unused styles
- Serving only the character sets you need
- Loading fonts efficiently
- Using suitable fallback fonts
If your website uses several font families with many weights, ask whether visitors can actually see enough difference to justify loading them all.
Font loading should also be checked when troubleshooting layout shifts, because changing from a fallback font to the final web font can move text and surrounding elements.
11. Use a CDN Where It Makes Sense
A Content Delivery Network, or CDN, can serve cached resources from infrastructure closer to your visitors.
This may help with:
- Images
- CSS
- JavaScript
- Fonts
- Cached HTML
- Traffic spikes
- Visitors spread across different countries
However, a CDN is not a cure for a slow WordPress installation.
If WordPress takes several seconds to generate a page at the origin server, adding a CDN without addressing the underlying problem may simply add another layer of complexity.
Start with the origin website and caching setup. Then consider whether a CDN provides a useful additional improvement for your audience.
12. Keep WordPress, Themes and Plugins Updated
Older software is not automatically slow, but keeping WordPress and its extensions maintained reduces the chance of running outdated code, compatibility workarounds or known problems.
WordPress itself continues to receive performance improvements.
For example, modern versions include better handling for image loading, responsive images and browser resource priorities that older versions did not provide.
Updates should still be performed carefully.
Take a reliable backup, check compatibility and test important functions after significant changes.
Avoid applying a large group of updates to a critical website without a recovery plan.
13. Check the Database When the Site Has Grown
A WordPress database naturally grows over time.
That does not mean you should repeatedly run database cleaning tools in the hope of making the site faster.
The useful question is whether there is an actual database problem.
Examples can include:
- Slow queries
- Large options tables
- Excessive autoloaded data
- Abandoned plugin data
- Large numbers of scheduled jobs
- WooCommerce session or order data
- Plugins repeatedly writing unnecessary information
Database work should be based on evidence.
Deleting revisions, transients or database rows without understanding what created them may produce little performance benefit and can introduce risk.
Always back up the database before making manual database changes.
14. Investigate Background Tasks and WP-Cron
WordPress uses scheduled events for tasks such as publishing scheduled posts, processing plugin jobs and performing maintenance.
Plugins may add their own recurring tasks.
On a busy or complicated website, a poorly behaved scheduled task can consume server resources or run far more often than expected.
If unexplained CPU usage or periodic slowdowns are occurring, scheduled events are worth checking.
That does not mean WP-Cron should automatically be disabled.
The correct solution depends on what is running, how often it runs and how the hosting environment is configured.
15. Do Not Host Large Videos Directly Unless You Have a Good Reason
Video files are large and can consume substantial bandwidth.
For most ordinary WordPress websites, it makes sense to use a dedicated video service and embed the video instead of serving the original video file through standard web hosting.
This reduces the work required from the WordPress server and lets a platform designed for video handle streaming, bandwidth and different playback conditions.
There are exceptions, especially where privacy, membership access or full control over media is important, but direct video hosting should be an intentional decision.
16. Configure Browser Caching Properly
Static files such as images, CSS, JavaScript and fonts do not always need to be downloaded again on every visit.
Browser caching allows suitable files to remain stored on the visitor’s device for a period of time.
This can make subsequent page views faster and reduce requests to the server.
Browser caching is normally controlled through HTTP cache headers.
Do not paste old .htaccess snippets into a website without checking how the server is configured.
Apache, Nginx, managed hosting platforms, CDNs and caching systems can all handle caching differently.
The correct configuration should match the actual hosting environment.
17. Check CSS and Above-the-Fold Content
A browser needs enough CSS to understand how the page should look before it can display it properly.
Large stylesheets or unnecessary CSS can delay rendering.
Possible improvements include:
- Removing CSS from features that are no longer used
- Avoiding entire design libraries for one small component
- Loading page-specific styles only where required
- Reducing theme and plugin duplication
- Making important above-the-fold styles available quickly
Automated tools may suggest removing unused CSS, but treat this carefully.
CSS that appears unused during one automated test may still be required by menus, forms, pop-ups, WooCommerce states or content that appears after interaction.
Always test visually after changing how CSS is delivered.
18. Avoid Performance Plugins Fighting Each Other
Performance plugins often overlap.
Two different plugins might both attempt to:
- Cache pages
- Minify CSS
- Delay JavaScript
- Lazy load images
- Optimise fonts
- Connect to a CDN
- Clean the database
More optimisation does not automatically mean more speed.
Overlapping tools can cause broken layouts, stale pages, missing scripts or difficult cache problems.
A simpler setup is usually easier to maintain.
Know which system is responsible for each optimisation layer and disable duplicated functionality where possible.
19. Test Every Important Change
Performance optimisation should be treated like any other technical website work.
Do not make ten changes and then test once.
A safer process is:
- Record your baseline.
- Identify the most important problem.
- Make one controlled change.
- Clear the relevant caches.
- Test the page again.
- Check the website visually and functionally.
- Keep the change if it helped.
- Move to the next problem.
For significant changes, use a staging environment before touching the live site.
Pay particular attention to:
- Forms
- Navigation
- Search
- WooCommerce baskets and checkout
- Account areas
- Pop-ups
- Analytics
- Cookie consent
- Mobile layouts
A website is not faster if the optimisation breaks something visitors need.
What Should You Fix First?
If your WordPress site is slow, start with the changes most likely to produce a meaningful improvement.
A sensible order is:
- Measure the problem.
- Check hosting and server response.
- Confirm page caching is working.
- Optimise oversized images.
- Investigate the LCP element.
- Remove unnecessary plugins and scripts.
- Review third-party services.
- Check JavaScript responsiveness.
- Investigate database or background-task problems if evidence points there.
- Test the results with both performance tools and the website itself.
Do not try to solve every PageSpeed Insights recommendation simply because it appears in the report.
Some opportunities matter far more than others.
Fix the biggest real bottlenecks first.
Does Website Speed Affect SEO?
Website performance is part of the overall experience visitors have with your site.
Google uses Core Web Vitals within its ranking systems, but speed is only one part of search performance.
A fast page with poor content is not automatically going to outrank a slower page that answers the searcher’s question much better.
That means performance work should support good content rather than replace it.
Aim for a site that loads quickly, responds well, remains visually stable and gives visitors what they came for.
Final WordPress Speed Checklist
If you want to speed up WordPress, work through this checklist:
- Measure performance before making changes
- Check real-user Core Web Vitals where data is available
- Use suitable WordPress hosting
- Configure page caching
- Consider persistent object caching where appropriate
- Resize and compress images
- Use modern image formats where suitable
- Avoid lazy loading important above-the-fold images
- Use a well-maintained theme
- Review plugins based on their actual performance impact
- Reduce unnecessary JavaScript
- Review third-party scripts
- Simplify font loading
- Use a CDN when it genuinely helps
- Keep WordPress, plugins and themes maintained
- Investigate database issues based on evidence
- Check scheduled jobs when server usage is unexplained
- Configure browser caching correctly
- Avoid overlapping optimisation tools
- Test each major change properly
There is rarely one switch that makes a slow WordPress website fast.
The best results usually come from identifying the largest bottleneck, fixing it properly and then working through the remaining issues in order.
If you would rather not experiment with your live website, Newt Labs can investigate the performance problems for you and make the appropriate fixes through our one-off WordPress support service.

