Opens in a new tab
Updated on:

How We Improved Our Website PageSpeed Score to 90+

WRITTEN BY
Talk to our Expert
Website performance score showing high ratings for performance, accessibility, best practices, and SEO.

A Good-Looking Website Can Still Feel Slow

Polished design, strong copywriting and clear buttons count for very little if a page takes ages to appear. Visitors rarely wait around; they leave before they ever reach your contact form.

Speed is therefore a business concern as much as a technical one. A sluggish page delays the information people came for, breaks their momentum and quietly reduces enquiries.

We decided to stop trusting our own impressions. Pages feel quick on a fast office laptop and connection, which tells you little about a visitor on a mid-range phone. So we tested our site with Google PageSpeed Insights and Lighthouse, found out what was dragging it down, and checked how much our fixes changed.

The Lighthouse performance scores moved like this:

  • Mobile: 50 to 90
  • Desktop: 54 to 99

Below, we walk through how we worked, which technical areas deserve the most attention, and what other businesses can copy when they want to improve their website PageSpeed score.

1. Starting With a Baseline

No optimisation should begin until you know where you stand. We ran the site through Google PageSpeed Insights on both mobile and desktop. The tool pairs Lighthouse, which runs a controlled lab test, with data from real visitors whenever enough of it exists.

Our first Lighthouse run flagged several weak spots:

Metric

Starting value

What it told us

Mobile performance

50

Plenty of room to improve

Desktop performance

54

Even desktop was underperforming

Largest Contentful Paint (LCP)

9.5 s

Main content took far too long to appear in the mobile lab test

First Contentful Paint (FCP)

6.8 s

Visitors waited a long time to see anything

Total Blocking Time (TBT)

370 ms

Scripts were tying up the browser and slowing response

Speed Index

6.8 s

The page filled in visually at a slow pace

Cumulative Layout Shift (CLS)

0

No layout movement in that particular run

Numbers like these turn the vague statement that the site is slow into something you can act on. A high LCP often points to a heavy hero image, a late-loading headline or some other large element. A high TBT usually means JavaScript is hogging the browser’s main thread and holding back interaction.

Takeaway: The overall score tells you how big the problem is. The individual metrics and diagnostics tell you where to look.

2. The Metrics Worth Understanding

Before touching any code, it helps to know what each major metric actually captures.

Largest Contentful Paint (LCP)

LCP records the moment the biggest image or block of text in the visible area finishes rendering. It is the closest single number to how quickly a page feels loaded.

Google’s guideline is 2.5 seconds or better, judged at the 75th percentile of real visits.

Typical reasons for a poor LCP:

  • A slow server response
  • Large hero images that have not been optimised
  • CSS and JavaScript that block rendering
  • Key resources that the browser finds too late
  • Web fonts that load inefficiently

First Contentful Paint (FCP)

FCP counts the time between starting navigation and the browser drawing its first piece of content, whether that is text, an image or an SVG.

If FCP is late, a page can look broken or frozen before anything useful shows up. A faster server, fewer render-blocking files and leaner critical CSS all help.

Total Blocking Time (TBT)

In Lighthouse lab tests, TBT adds up the time that long tasks keep the main thread busy between FCP and Time to Interactive.

Heavy JavaScript components, surplus third-party scripts and demanding browser-side work push it up. Trimming unused code, splitting bundles and deferring scripts that are not urgent are the usual remedies.

Remember that TBT is a lab measurement. It cannot replace Interaction to Next Paint (INP), which reflects how responsive the page feels to real people.

Cumulative Layout Shift (CLS)

CLS tracks how much the content jumps around while the page is open. A typical example is text being pushed down because an image without set dimensions has just loaded, or a banner appearing above what you were reading.

A score of 0.1 or lower is considered good. Setting image dimensions, reserving room for dynamic elements and handling fonts carefully all keep layouts steady.

Interaction to Next Paint (INP)

INP looks at how quickly the page reacts visually after users click, tap or type during a visit. Aim for 200 milliseconds or less.

TBT and INP both relate to responsiveness but are not the same thing. A page can post a healthy TBT in the lab and still feel laggy for real visitors.

3. How We Approached Website Speed Optimisation

Speed rarely comes from one magic setting. The server, page structure, images, stylesheets, scripts, fonts, caching and third-party services all interact, so we worked through each area in turn.

3.1 Picking a Lean Theme and Page Builder

Your theme and page builder decide how much HTML, CSS and JavaScript the browser has to handle. A striking layout can become bloated when it leans on heavy animations, deeply nested components, leftover scripts or several plugins doing the same job.

The aim is not a bare-bones design. It is getting the features you need without the extra weight.

What we reviewed:

  • The code produced by the theme and page builder
  • Widgets and components that serve no purpose
  • Animations and effects that add little
  • Plugins with overlapping features
  • The speed impact of each design decision

Why it matters: A simpler page asks less of the browser, so it renders and responds sooner.

3.2 Hosting and Server Response

Nothing appears on screen until the browser has received the first files. That makes server response time a foundation for everything else, and a slow Time to First Byte (TTFB) pushes back both FCP and LCP.

On the server side we looked at:

  • Whether the hosting resources and response times were adequate
  • Server-level and full-page caching
  • Database queries and back-end processing
  • Redirects that were not needed
  • Whether the server setup delivers files efficiently

The right fix depends on the hosting setup and on what is actually causing the delay. Moving to a bigger plan will not help much if oversized images or render-blocking files are the real culprits.

3.3 Images and the LCP Element

On most sites, images are the heaviest files, especially in hero banners and case studies. A picture that looks crisp on a large monitor may be far larger than a phone needs.

Image improvements include:

  • Compressing files while keeping quality acceptable
  • Using formats such as WebP or AVIF where suitable
  • Serving different sizes for different screens
  • Declaring width and height
  • Replacing oversized source files
  • Lazy loading images that sit below the fold

The LCP image deserves extra care. When it is the main image at the top of the page, it generally should not be lazy-loaded, and it can be given priority so the browser requests it early.

Be careful, though: preloading or prioritising everything makes assets compete for bandwidth. Base your choice on the LCP element your testing actually identifies.

Why it matters: Getting the main visual in front of users faster improves how quick the site feels and lowers LCP.

3.4 Cutting Render-Blocking CSS

CSS controls how a page looks, but the browser may hold off drawing anything until it has downloaded and processed the stylesheets.

Ways to reduce the delay:

  • Stripping out CSS that is never used
  • Shrinking overall stylesheet size
  • Loading the styles needed for the first screen ahead of the rest
  • Limiting how many stylesheets depend on one another
  • Checking the CSS that themes, plugins and page builders add

Critical CSS lets the browser show essential content sooner while the remaining styles load without holding up the first view.

Test everything. Removing CSS carelessly can wreck layouts, responsive behaviour or interactive features.

3.5 Streamlining JavaScript

Before a page becomes fully usable, JavaScript can create a lot of work for the browser. Third-party scripts, animation libraries, tracking tags, sliders and interactive widgets all add to it.

We examined what each script does and looked for work we could cut:

  • Dropping unused JavaScript
  • Removing scripts loaded more than once
  • Deferring scripts that can wait
  • Loading asynchronously where it makes sense
  • Splitting code so each page loads only what it needs
  • Auditing third-party integrations

The goal is not to get rid of JavaScript. It is to let essential content appear quickly and keep non-essential processing from holding visitors up.

3.6 Better Font Delivery

Fonts influence both appearance and rendering. Several font families, unused weights or multiple external font files increase requests and can postpone text.

Improvements to consider:

  • Loading only the families and weights the design actually uses
  • Choosing efficient formats such as WOFF2
  • Hosting fonts locally where it fits
  • Setting a sensible font-display value
  • Using resource hints sparingly for fonts that are critical

Test for layout shifts after any font change, because the fallback font and the final font can differ in character width and line height.

3.7 Compression and Caching

Text-based files such as HTML, CSS, JavaScript and SVG usually travel faster when compressed with GZIP or Brotli.

Caching cuts repeated effort. With proper browser caching, returning visitors do not need to re-download unchanged files, while server-side and full-page caching reduce the work needed to build a page each time it is requested.

Good caching depends on sensible policies, particularly for files that change often. A solid setup covers:

  • Compression for eligible files
  • Browser cache headers
  • Versioning of static assets
  • Server-side caching
  • Full-page caching where it suits the site
  • Clearing caches after website updates

Each of these tackles a different stage of delivery, so assess them together instead of treating them as interchangeable.

3.8 Fewer External Requests

Every outside dependency can add DNS lookups, connection setup, downloads and script execution. Analytics tags, embeds, chat widgets, external fonts and marketing tools are the usual suspects.

Keep the services your business really needs and remove the rest. In some cases, a preconnect hint helps the browser reach an important external origin sooner, but adding hints for every domain wastes effort instead of saving it.

3.9 Auditing Plugins and Components

Plugins extend what a site can do, yet unnecessary or badly configured ones can add scripts, stylesheets, database work and outside requests.

A proper review asks what each plugin does, whether the site truly needs it and whether it affects the front end.

Deleting a plugin is not automatically a win if it is not behind the bottleneck, and merging plugins or swapping them for custom code is not always better either. Focus on overhead you can measure, and make changes that speed things up without hurting security, functionality or maintainability.

4. Before and After: What the Tests Showed

Once the work was complete, we ran PageSpeed Insights again. Lighthouse scores had risen sharply on both device types.

Test

Before

After

Gain

Mobile performance

50

90

+40 points

Desktop performance

54

99

+45 points

That is a 40-point rise on mobile and a 45-point rise on desktop. These are lab scores, and they show the tested page performing far better under the later test conditions.

Be aware that Lighthouse results shift with device emulation, network throttling, browser conditions and changes to the page. Treat them as readings from specific test runs, not as a promise that every visitor will see the same gain.

Other results in the later desktop report

  • Accessibility: 100
  • Best Practices: 96
  • SEO: 92

These are separate Lighthouse categories and add context. A top accessibility or SEO score does not mean a site meets every accessibility standard or has no SEO problems left.

5. Lab Data vs Real-User Data

One lesson stood out from this project: a Lighthouse score and real-user data answer different questions.

Lighthouse lab data comes from a controlled test. It is ideal for diagnosing bottlenecks, reproducing problems and confirming that a code change worked.

Core Web Vitals field data reflects what actual visitors experienced across devices over time. It shows how the site performs in everyday conditions.

The mobile field data in our earlier PageSpeed Insights report looked like this:

Field metric

Earlier report

Largest Contentful Paint

2.6 s

Interaction to Next Paint

135 ms

Cumulative Layout Shift

0

The earlier desktop field data showed an LCP of 2.6 seconds, an INP of 45 ms and a CLS of 0.03.

So what real visitors experienced differed from the first mobile lab test. That is normal, since field data covers many kinds of visits, devices and connections.

It also means we cannot say field LCP improved from 9.5 seconds to something lower unless a later field report confirms it.

Google assesses Core Web Vitals at the 75th percentile of visits, separately for mobile and desktop, and a page generally passes when all three metrics meet their thresholds.

For a trustworthy picture you need both: lab tests to diagnose and validate, and field data to see what visitors actually get.

6. Five Lessons Any Business Can Use

Speed work is not only for developers. Any company that depends on its website to attract visitors, show expertise or win enquiries has a stake in it.

Measure before you guess. A page that feels instant on an office machine may crawl on a phone over a weak network. Record baseline results and study the diagnostics before changing anything.

Tackle the biggest problems first. Recommendations are not equal. A very slow LCP deserves attention before small code minification, and a long server response may need fixing before more image compression. Rank issues by likely impact, effort and risk.

Put mobile first. Mobile visitors face weaker hardware, patchier networks and smaller screens. Test mobile and desktop separately, and watch heavy images, script execution and anything that delays the first render.

Do not break things while optimising. A fast page is worthless if navigation fails, forms stop submitting or tracking vanishes. After every meaningful change, check key templates, devices and user journeys.

Keep monitoring. Speed can slip after a redesign, plugin update, new integration or fresh content. Retest after major releases, follow trends and investigate regressions instead of relying on one good score.

7. Our Ongoing Approach to Performance

For Black Cap IT, the point was never just a prettier number in a testing tool. We wanted a measurable, repeatable way of managing performance. Our cycle looks like this:

  1. Measure: Set a baseline using PageSpeed Insights and Lighthouse.
  2. Diagnose: Study the metrics, page resources and bottlenecks behind the score.
  3. Prioritise: Pick the changes likely to deliver the biggest gain.
  4. Implement: Make targeted changes while keeping required functionality intact.
  5. Validate: Run comparable tests and check key user journeys.
  6. Monitor: Review field data and retest after significant changes.

Performance is never a one-off project. It is a permanent part of looking after a website properly.

Conclusion: Speed Is an Engineering Habit, Not a One-Time Fix

Raising our Lighthouse performance score from 50 to 90 on mobile and from 54 to 99 on desktop shows what measuring carefully and fixing methodically can achieve.

Website speed does not hinge on a single setting. It comes from server response, page structure, image delivery, CSS, JavaScript, caching and the way the browser renders, all working together.

The starting point for any business is simple: measure the experience today, find the biggest bottlenecks, make focused improvements and confirm the results.

A high Lighthouse score is useful evidence, but lasting performance takes continued attention to real-user experience, working functionality and the technical decisions behind every update.

Does your website give visitors the experience they expect?

Black Cap IT works with businesses and digital agencies on website development, optimisation, maintenance and technical improvements that protect long-term quality. Talk to our team about your website’s performance and development needs.

Need WordPress Development Capacity?

Frequently Asked Questions

TABLE OF CONTENTS

Tell Us Where Your Agency Needs Capacity.

From the first discussion to post-launch support, our team stays aligned with your goals, timelines, and technical requirements.

"*" indicates required fields

Your Details*
Project Brief
Matched within 24 hours · NDA protected · Takes 5 min
Starting a brief
Change service
1
Services
2
Project
3
Tech
4
Team
5
Contact

NDA signed before any project details are shared
Reply within 4 hours during business hours
No obligation until you approve the matched developer
payedu-banner
Unified Payment Collection Portal serving IIM Jammu
View All Case Studies