−20%

20% off all services

Skip to content

We value your privacy

We use necessary cookies to keep the site working and, if you agree, Google Analytics to see which pages are useful. You can change your choice at any time at the bottom of the page. Cookie Policy

How to speed up a website: what to measure and fix first

How to speed up a website: Core Web Vitals, field and lab data, fixing LCP, INP and CLS, images, server response and third-party scripts – in the right order.

Updated 10 min read

A dark website window rushing forward in streaks of blue light, with a speed gauge behind it whose needle has swung up high.

In short

Measure first: PageSpeed Insights shows real-visitor data (Core Web Vitals) and a lab test. Then fix what slows you down most – usually the largest above-the-fold image (compress it, don't lazy-load it), a slow server response (caching, CDN), too many third-party scripts and a layout that jumps around. A speed plugin bolted on top rarely fixes the cause.

Key takeaways

  • Measure speed with real-visitor data: Google assesses the 75th percentile, separately on mobile and desktop, while the lab test helps you find causes.
  • Good Core Web Vitals: LCP within 2.5 s, INP within 200 ms, CLS within 0.1. In 2025 only 48% of sites reached them on mobile.
  • On 76% of mobile pages the largest above-the-fold element is an image, so its size, format and loading priority often matter most.
  • Server response accounts for roughly 40% of a good LCP; only 44% of mobile sites have a good TTFB.
  • Third-party scripts and a large DOM slow down the response to taps and clicks (INP) – often more than the design itself.

Why speed matters and what “fast” means

A slow site rarely gets complaints – visitors simply leave. So speed often becomes a problem only when enquiries or sales drop, and then everyone rushes to install a “speed plugin”. This article is about finding the real cause and the order in which to fix it.

Core Web Vitals
Three Google metrics that measure real visitors' experience: LCP (Largest Contentful Paint) – how long until the largest above-the-fold element is visible; INP (Interaction to Next Paint) – how quickly the page responds to a tap or click; CLS (Cumulative Layout Shift) – how much content moves while loading.

48%

Share of websites that met good thresholds for all three Core Web Vitals on mobile in July 2025 (56% on desktop).

Source: HTTP Archive, 20266

+8.4%

In a study commissioned by Google from 55 and Deloitte (37 European and US brand sites, 2019), improving mobile site speed by 0.1 seconds lifted retail conversion rates by 8.4%.

Source: web.dev (Google), 20268

Measurement

What PageSpeed Insights shows and which numbers actually matter.

A request waterfall chart: long grey bars at the top with one red bar showing the slowest request, and short blue bars below stepping down like stairs after optimisation.
A request waterfall shows what loads, in what order and what blocks what.

How to measure: field data and lab data

PageSpeed Insights shows two kinds of data, and it's important to tell them apart. At the top is the experience of real Chrome users over the last 28 days (the Chrome UX Report). Below is a Lighthouse test that loads the page once on a simulated device.

Field and lab data in PageSpeed Insights (Google documentation, 2026-10-01)
Field dataLab data
SourceChrome UX Report – real visitorsLighthouse – a simulated load
PeriodThe last 28 daysOne run, now
DeviceA range of devices and connectionsA mid-tier phone on a mobile network (or an emulated desktop)
Use it forWhether the problem is real and how big it isWhy the page is slow and whether a fix helped

75th percentile

The percentile Core Web Vitals are assessed at: at least 75% of page loads should meet the good threshold, separately on mobile and desktop.

Source: web.dev (Google), 20261

  • Check your key templates, not just the home page: category, product or service, article.
  • The Core Web Vitals report in Search Console groups similar pages – so you can see which template is slow.
  • A low-traffic site may have no field data – then rely on the lab test, remembering that it's a single simulated load.
  • The request waterfall in the browser's developer tools shows what loads, in what order and what blocks what.

In our SEO work we check technical health, including speed, with PageSpeed Insights every month – because speed matters for search too.

What counts as good

Core Web Vitals thresholds (web.dev, 2026-10-01)
MetricWhat it measuresGoodNeeds improvementPoor
LCPLoading of the largest above-the-fold elementwithin 2.5 s2.5–4 sover 4 s
INPResponse to taps, clicks and inputwithin 200 ms200–500 msover 500 ms
CLSLayout shifts while loadingwithin 0.10.1–0.25over 0.25

62% / 77% / 81%

Share of mobile pages with good LCP, INP and CLS in 2025 – LCP remains the hardest metric to pass.

Source: HTTP Archive, 20266

What to fix

Three metrics – three different groups of causes.

LCP: the first screen within 2.5 seconds

LCP has four parts: server response (TTFB), the delay before the LCP resource (usually an image) starts loading, the time that resource takes to load, and the delay before it's rendered. Google recommends that most of the time be spent loading the HTML and the LCP resource, not waiting.

~40 / <10 / ~40 / <10%

The recommended split of LCP time: server response (~40%), resource load delay (<10%), resource load duration (~40%) and element render delay (<10%). These are guidelines, not strict rules.

Source: web.dev (Google), 20262

44%

Share of mobile sites with a good server response time (TTFB) in 2025; 40% needed improvement and 17% were poor.

Source: HTTP Archive, 20266

Server response

  • Cache pages that are the same for everyone and serve them from a CDN
  • Cut down plugins that run on every request
  • Check server resources and database queries on the slowest templates
  • Avoid redirect chains before the final address

The LCP image

  • Never lazy-load the LCP image (loading="lazy")
  • Mark it fetchpriority="high"
  • If the image isn't discoverable in the HTML (a CSS background, say), preload it
  • Inline small critical styles so rendering doesn't wait for a separate CSS file

16–17%

Share of pages that lazy-loaded their LCP image in 2025 – a common mistake that directly slows the first screen.

Source: HTTP Archive, 20266

Images: the most common speed reserve

A large, heavy glass image block showing a mountain landscape passes through a prism and becomes a small, light version of the same image; below them, scales tip towards the lighter side.
The same image at the right size and format – often the biggest speed win with no change to the design.

76%

Share of mobile pages whose largest above-the-fold element (LCP) was an image in 2025; on desktop it was 85.3%.

Source: HTTP Archive, 20266

> 50%

The saving AVIF has shown against JPEG in some cases; WebP and AVIF compress better than older formats.

Source: web.dev (Google), 20264

What to change

  • Use WebP or AVIF, keeping an older format only as a fallback
  • Serve a correctly sized variant for each screen width (srcset and sizes), not one large file
  • Give every image a width and height so the layout doesn't jump
  • Lazy-load only images below the first screen

On this blog, every image is served at two widths and in two formats (AVIF and WebP) – the browser picks the smallest suitable one.

INP: when the page is slow to respond

INP measures the time from a tap or click to the next frame showing the result. It has three parts: input delay (while the browser is busy with other work), processing (while your code runs) and presentation delay (while the new frame is painted).

200 ms

A good INP is 200 milliseconds or less, assessed at the 75th percentile of page loads.

Source: web.dev (Google), 20263

What to change

  • Review third-party scripts – chat widgets, tracking tags, A/B testing tools; each one occupies the main thread
  • Break up long tasks and let the browser respond to the user in between
  • Reduce DOM size: a large page tree is expensive to repaint after every interaction
  • Show feedback immediately after a tap (a button state, say) and do the heavy work afterwards

CLS: when content jumps

A shopper aims for “Add to cart”, and at the last moment a cookie bar or an ad appears at the top – and they tap the wrong thing. CLS measures exactly these shifts.

What to change

  • Reserve space for images, video and embeds (width and height, or an aspect ratio)
  • Show the cookie bar and notices over the content rather than pushing it down
  • Load fonts so that swapping fonts doesn't change the size of the text
  • Leave space in advance for dynamic content (reviews, recommendations)

WordPress, Shopify and static sites

The causes are similar everywhere; only where they hide differs. On WordPress and WooCommerce sites, speed usually comes down to the theme, the number of plugins, caching and the server. On Shopify the platform runs the servers, but themes and apps add their own scripts – every new app is worth a speed test.

A speed plugin on top

  • Yet another plugin is installed to “optimise everything”
  • The LCP image is lazy-loaded along with everything else
  • Third-party scripts stay as they were
  • The lab score rises; field data barely moves

Fixing the cause

  • It's established which metric is poor and on which template
  • The LCP image is compressed and loaded first
  • Unneeded scripts are removed, the rest deferred
  • The result is checked in field data after 28 days
Two ways to “speed up” the same site

In what order to fix things

Speed checklist

Check your site

  • Do you know your Core Web Vitals field data on mobile and desktop?
  • Have you checked your key templates, not just the home page?
  • Is the server response fast, with identical pages cached and served from a CDN?
  • Is the LCP image loaded eagerly and marked high priority?
  • Are images in WebP or AVIF and correctly sized for each screen?
  • Does every image have a width and height?
  • Do you know which third-party scripts load, and whether you need them all?
  • Do the cookie bar and notices avoid pushing content around?
  • Do you check speed after every update or new app?

How we can help

Speed isn't a one-off job: every update, plugin or new app can make it worse. Our website maintenance plans start at €149/mo and cover updates, daily backups, monitoring and a monthly report that includes security and speed notes.

For a new website, a speed check is included in every package, and a custom Next.js website (from €2,990) also includes Core Web Vitals optimisation. If a slow online store is losing sales, it's worth looking at the other reasons visitors don't buy too.

Write to us with your site's address and what feels slow. We reply within 1 business day. Before taking over maintenance of a site we didn't build, we carry out a technical audit first.

About the data in this article

Methodology

Date
Sample
HTTP Archive Web Almanac 2025 (Performance chapter, Chrome UX Report data from July 2025), web.dev and Google for Developers documentation, a web.dev case study
Criteria
  • Figures only from primary sources, reproduced as published, with a link
  • Thresholds and recommendations from Google's official documentation, checked on 2026-10-01
  • The order of fixes and insights reflect how Oxtren Labs works and are marked separately
Limitations
Web Almanac data covers millions of websites worldwide, so it reflects the overall picture rather than a specific country or sector. Google's metrics and thresholds can change.

Frequently asked questions

Why does my PageSpeed Insights score change every time?

The score comes from the lab test – a single simulated load affected by server load and network fluctuations. The field data at the top matters more: it's the experience of real visitors over 28 days.

Does speed affect Google rankings?

Google recommends good Core Web Vitals for success in Search and says that, together with other page experience aspects, they align with what its core ranking systems seek to reward. But they are one factor among several – good scores don't guarantee rankings. Speed mostly decides whether a visitor who arrives stays.

Is installing a speed plugin enough?

Rarely. A plugin can compress files and switch on caching, but it won't fix a slow server, oversized images or third-party scripts. Badly configured, it can even lazy-load the LCP image – and slow the first screen down.

How long until I see results?

A lab test shows the change straight away. Field data in PageSpeed Insights covers the last 28 days, so the full change shows up there after about a month.

Sources and methodology

  1. web.dev (Google)Web Vitalsaccessed
  2. web.dev (Google)Optimize Largest Contentful Paintaccessed
  3. web.dev (Google)Optimize Interaction to Next Paintaccessed
  4. web.dev (Google)Image performanceaccessed
  5. Google for DevelopersAbout PageSpeed Insightsaccessed
  6. HTTP ArchiveWeb Almanac 2025: Performanceaccessed
  7. Google Search CentralUnderstanding Core Web Vitals and Google search resultsaccessed
  8. web.dev (Google)Milliseconds make millionsaccessed

About the author

Founder, Oxtren Labs

Julius Sūnelaitis is the founder of Oxtren Labs, a studio in Kaunas, Lithuania, operating since 2022. It builds websites, online stores (Shopify, WooCommerce, headless and custom) and digital platforms for companies in Lithuania and the EU, and maintains them after launch. The studio also builds its own product, Hesio, a Shopify app that shows what most often stops shoppers from buying. On the blog he writes about ecommerce, the purchase journey, web development and maintenance.

Author page and articles

Find out what's stopping
your sales.

Send us your site's address – we'll tell you what slows it down most and where to start.

What do you need?

Get a free review

We reply within 1 business day.