Start with a repeatable baseline
Use a consistent page, test region and connection profile. Repeat measurements instead of relying on one run. Record whether the cache was warm or cold so changes can be compared fairly.
Distinguish server delay from page weight
The server’s response is only part of loading a page. Large images, scripts and fonts can slow down the experience after HTML arrives. Inspect the network waterfall to see which requests take the most time or transfer the most data.
Make images fit the job
Resize images for their display size and choose an appropriate compression level. Give images dimensions to reserve space. Load below-the-fold media lazily, while allowing the main visible image to load promptly.
Reduce unnecessary work
Remove scripts and plugins that do not serve a clear purpose. Third-party widgets add network requests and execution time. Test the core user journey after every change so an improvement does not break functionality.
Use caching deliberately
Cache reusable public content where appropriate. Avoid caching private account pages or personalized responses as public content. A CDN may reduce delivery distance, but it does not eliminate application bottlenecks.
Retest before upgrading
Compare the new measurements with your baseline. If server response remains a bottleneck after reasonable application improvements, evaluate hosting resources. Repeat the same workload on a trial or staging environment rather than assuming a larger plan will solve every issue.