How to Improve Website Speed: Find and Fix the Real Bottleneck
Measure important pages, then improve images, caching, scripts and server response. Use before-and-after evidence instead of a promised speed multiplier.
The short answer
To improve website speed, measure the pages and interactions that matter, identify the slow part and change one thing at a time. Common checks include the main image, caching, JavaScript, layout shifts and application response time. Verify that forms, accounts and checkout still work. No plugin or hosting upgrade guarantees a fivefold improvement.

Reading options
On this page
- 1. Choose the pages and actions that matter
- 2. Understand the three Core Web Vitals
- 3. Fix the main image's loading path
- 4. Check caching without exposing private pages
- 5. Investigate scripts when taps feel slow
- 6. Stop unexpected layout movement
- 7. Check the application and server when the first response is slow
- 8. Verify delivery features instead of assuming they work
- 9. Keep a small before-and-after record
- What to send when asking for help
- Reader questions
- Sources & further reading
Before you start
Access to the website and its performance reports, a backup and preferably staging for configuration changes. Record representative URLs and important user actions before optimizing.
A website can be slow in several different ways. The first page may take too long to appear. The page may look ready while its menu ignores a tap. Or the content may move just as someone tries to press a button. Each problem calls for a different fix.
Start by measuring an important page and identifying the slow part. Improve that part, then repeat the same test and check the site's functionality. Installing another optimization plugin or moving to a VPS without a diagnosis may add cost without solving the problem.
This guide does not promise a fixed speed multiplier. The improvement depends on what is currently slow, which changes are possible and the conditions under which you measure them.
1. Choose the pages and actions that matter
Test more than the homepage. Pick a small representative set, such as a service page, a long article, a product page and the route to an enquiry or checkout.
Record the URL, device, network, login state and time. Note whether you are testing a first visit or a repeat visit. Keep these conditions as consistent as practical when comparing a change.
For an online shop, include search, product options, adding to the cart and the checkout process. For a service business, include opening the mobile menu, tapping the contact button and submitting a test form.
Use PageSpeed Insights for a starting report. Its lab diagnostics help investigate a controlled run, while its real-user data summarizes eligible visits over a trailing 28-day period. A new fix will not instantly replace that whole field-data history. A site with little traffic may also lack sufficient field data.
2. Understand the three Core Web Vitals
Google's Web Vitals guidance defines three user-experience measures:
- Largest Contentful Paint (LCP): when the main visible content appears. The good threshold is 2.5 seconds or less.
- Interaction to Next Paint (INP): how quickly a page responds visually to user interactions. The good threshold is 200 milliseconds or less.
- Cumulative Layout Shift (CLS): unexpected movement of visible content. The good threshold is 0.1 or less.
Assessment uses the 75th percentile and considers mobile and desktop separately. A single fast run is not equivalent to passing the field assessment.
Use these measures to choose the investigation. A late hero image, a sluggish menu and a jumping banner should not all be treated as “the hosting is slow.”
3. Fix the main image's loading path
Identify the actual LCP element in the report; do not assume it is always an image. When it is an image, check whether it is oversized, discovered late or prevented from displaying by other resources.
Google's LCP guide specifically advises against lazy-loading the LCP image. Let the browser discover critical content promptly. Use appropriately sized image variants and suitable compression while checking that quality remains acceptable.
Images farther down the page can often load later. Reserve space for them so they do not push surrounding content around. Avoid replacing a readable product image with an excessively compressed file simply to reduce a number.
For a practical comparison, change one large image on staging, keep the rest of the page the same and repeat the test. That tells you whether image delivery is a meaningful part of this page's delay.
4. Check caching without exposing private pages
Caching can avoid repeating work, but different caches solve different problems. Browser caching stores reusable resources on a visitor's device. Page caching can reuse generated HTML. Object caching can reuse selected application data.
WordPress's optimization handbook discusses caching alongside hosting, configuration and software choices. Treat caching as a configured part of the application, not a switch that makes every page safe to reuse.
Check public pages while logged out and private pages while logged in. Ensure customer-specific content is not served to another visitor. Cart, checkout, account pages and personalized API responses need appropriate handling for the specific application.
On a compatible installation, our LiteSpeed Cache setup guide provides a starting workflow. Use one clear owner for each optimization feature. Overlapping plugins can make troubleshooting harder.
After a change, verify an update appears when expected and that private content remains private. Clear or purge the relevant cache when necessary to test the new version.
5. Investigate scripts when taps feel slow
If the page is visible but typing, menus or product filters respond poorly, inspect JavaScript and rendering work. Google's INP guide explains how long tasks, event handlers and subsequent rendering can delay the next visual response.
Review third-party chat widgets, advertising tags, analytics and page-builder features. Remove tools the business no longer uses. Developers can reduce unnecessary work and split long tasks so the browser can respond sooner.
Do not blindly defer every script. A script needed for navigation, consent or checkout may have ordering requirements. Make targeted changes in staging and test the affected feature on a phone.
A useful question is: “Which action feels slow, and what runs when it happens?” That is more actionable than “The performance score needs to be 100.”
6. Stop unexpected layout movement
A page that loads quickly can still be frustrating when buttons move. Google's CLS guidance identifies missing image or embed dimensions, injected content and fonts among common causes.
Reserve appropriate space for images, video and embeds using dimensions or an aspect ratio. Check late banners and widgets, particularly above content a visitor is reading. Review font-loading behaviour if text changes shape after it appears.
Test the page while scrolling and interacting, not just at the first screenshot. Watch the actual customer journey: a layout problem around a purchase button deserves attention even if the top of the page looks stable.
7. Check the application and server when the first response is slow
If waiting for the initial HTML is the main problem, inspect the request path. Compare relevant cached and uncached pages, application logs, database work and the host's resource history.
Look for a correlation with a scheduled import, backup, traffic burst or recent plugin change. Ask the host whether an account limit was reached at the same timestamp. A plan's storage capacity or disk technology does not tell you whether its CPU, memory or concurrency allocation fits the application.
Avoid changing the theme, caching configuration and hosting plan simultaneously. You will lose the ability to tell which change helped.
A VPS may be appropriate when you need a different resource allocation or software configuration, but it also needs competent management. Our VPS sizing guide explains what to measure before choosing one.
If you use Cloudflare monitoring, our LCP and INP diagnostic guide gives a more detailed way to narrow the investigation.
8. Verify delivery features instead of assuming they work
A control-panel checkbox is not enough to establish that a particular response is compressed or cached. Inspect the actual response and the route serving it.
Use our Gzip and Brotli verification guide for compression checks, and our static-file Cache-Control guide when working on browser caching.
Be careful with long-lived caching during deployments. Visitors need a reliable way to receive updated resources when files change. Apply settings to the intended resource types, not indiscriminately to everything the application returns.
9. Keep a small before-and-after record
For each change, record:
- The page or action that was slow.
- The evidence pointing to a cause.
- The single change made.
- Repeated results under comparable conditions.
- Functional checks and any new errors.
- How to revert the change if needed.
For example, replacing an oversized hero image is successful if the page displays its main content sooner under comparable conditions, the image still looks good and the layout remains stable. A score improvement that breaks checkout is not a successful optimization.
After deployment, watch real-user data as new visits accumulate. Keep working on the largest remaining customer-facing delay rather than chasing small score changes with no clear practical benefit.
What to send when asking for help
Provide the affected URLs, the slow action, test time, device and network, report links and recent changes. Include whether the problem affects logged-in users, first visits or everyone.
That evidence lets a developer or hosting engineer start with the right part of the system. It is also the best way to decide whether the next step should be an image change, application fix, configuration adjustment or hosting upgrade.
Reader questions
Can a plugin make every website five times faster?
No fixed multiplier is reliable across websites. A plugin may help with a specific bottleneck, but the result must be measured under comparable conditions and checked for functional regressions.
Should I lazy-load every image?
No. Do not lazy-load the image responsible for the main visible content when that delays LCP. Lower-page images may be suitable for lazy loading; also reserve their layout space.
Does a perfect Lighthouse score guarantee good real-user performance?
No. A lab score describes a particular simulated run. Real visitors use different devices and networks and may encounter interactions that the run did not exercise.
When should I upgrade hosting?
When evidence shows the application requires resources or capabilities the current plan cannot provide. Compare timestamps, resource limits and application behaviour before buying a larger plan.
Why have field results not improved immediately after a fix?
PageSpeed Insights field data represents a trailing 28-day collection period. Fresh visits gradually change that history, while lab tests can help check the deployed change sooner.
Was this guide helpful?
Help us make the next update better.
Sources & further reading
What changed
Replaced the unfinished draft and unsupported five-times-faster claim with a complete measured optimization workflow. Updated Core Web Vitals terminology, removed arbitrary visitor-count thresholds, and added primary sources, FAQs and original cover artwork.
Originally published . About our editorial updates.


