Blog

Why your PageSpeed score is not your speed

A score, not a speed measurement.

Why your PageSpeed number says little about what your visitors actually experience, and what to watch instead.


PageSpeed-score naast echte laadsnelheid

Your PageSpeed score isn't a speed measurement.
It's a composite figure from a simulated test, on one page, at one moment, on a simulated device.
What your visitors actually experience sits in a different block of the same report, one that gets far less attention than the coloured number.

Lab data and field data are two different measurements

Lab data comes from a test, field data comes from your visitors.
Lighthouse runs a single page load in a controlled environment, on a simulated mid range device with a throttled connection, and converts that into a score from 0 to 100.
The Chrome User Experience Report, CrUX for short, collects measurements from real Chrome users and reports the 75th percentile over a rolling 28-day window, updated daily.
PageSpeed Insights shows both side by side, but most reports only quote the score.

The Lighthouse score itself is not a ranking factor.
The Core Web Vitals are, and those are measured from real visitors, in other words the field data.
You can improve your score considerably without anything changing for Google or for your visitor.

Why a score of 100 guarantees nothing

A 100 means a single page load of a single URL went well.
Three things fall outside that: the test starts with an empty cache while a share of your visitors are returning, it usually measures your homepage while your traffic lands on listing and detail pages, and it never clicks anything, so everything that only happens after interaction stays unmeasured.

Een afbeelding optimaliseren voor een betere LCP

That last point is the biggest blind spot.
Interaction to Next Paint isn't part of the Lighthouse score, because a standard run never clicks anything: without interaction, there's no INP to calculate.
Reliable INP figures therefore come from your field data.
In the lab, Total Blocking Time stands in for it, and that measures something different: how long the main thread is busy during load, not how slowly your facet filter responds on the third click.
A Drupal site with heavy Views facets, an autocomplete search field and a map widget can hit 100 and still come in above 200 milliseconds INP for real visitors.
Your cookie banner skews the picture the same way, because scripts that only load after consent never show up in a lab test.

Why 70 can be perfectly fine

A 70 falls in the orange band and says nothing about your visitors by itself.
The score is a weighted average of five lab metrics, and those weights are fixed:

Lab metric Weight in the score
Total Blocking Time 30 percent
Largest Contentful Paint 25 percent
Cumulative Layout Shift 25 percent
First Contentful Paint 10 percent
Speed Index 10 percent

The bands are 0 to 49 red, 50 to 89 orange and 90 to 100 green.
Because Total Blocking Time weighs thirty percent, one heavy but necessary script pulls your score down hard while the page is visually ready fast.
If your field data shows you stay under 2.5 seconds LCP, under 200 milliseconds INP and under 0.1 CLS at the 75th percentile, your visitors are having a good experience.
Then 70 is just 70, and you don't need an optimisation project from me.

What to track instead

By the three field data metrics, per page type, at the 75th percentile.

  • Measure per template: homepage, listing, detail and search results behave differently, so a site average hides where things go wrong.
  • Keep mobile and desktop separate: the thresholds are assessed per segment, and that difference is usually bigger than between two templates.
  • Add your own measurement: CrUX only includes publicly findable pages with enough visitors, so smaller sites need to measure their own visitors directly.
  • Build in patience: because of the 28-day window, a fix only shows its full effect after a few weeks, so don't judge a fix after two days.
Velddata-metingen waar je op stuurt

When a low score is a real signal after all

Without field data, the lab score is all you have.
That applies to new sites and to pages with little traffic.
Don't use the number as a goal, read the diagnostics underneath it instead: render blocking resources, images without fixed dimensions, unused JavaScript.
If lab and field point the same way, for example red field data next to a score of 35, then something is genuinely broken and the score is a confirmation rather than a myth.
Which fixes on a Drupal site pay off the most, I cover in my article on Core Web Vitals for Drupal and where the real gains are.

Labdata en velddata, twee verschillende metingen

My approach: measure with visitors, fix in the code, document it

I start with your field data, not with the tool.
I map out which templates fall below the thresholds at the 75th percentile, trace the cause in the frontend and in the Drupal configuration, and document what changes so you can check it again after every release.
Drupal 11 gives you a solid base with Dynamic Page Cache and BigPipe, but it isn't automatic: badly configured cache contexts undo that gain again.
Tools for the basics, handwork for the rest.

Meten bij bezoekers en herstellen in de code

Want to know where your site stands with real visitors, take a look at my technical SEO and frontend performance service.
If the bottleneck sits deeper in the architecture, that falls under Drupal architecture and development.
Send me your URL via the contact form and I'll give you an honest picture within 24 hours of what there is to gain.

Frequently asked questions

How can I test my website's speed?

With PageSpeed Insights, since it shows both the field data from CrUX and the lab score from Lighthouse in one report.
Look first at the field block with LCP, INP and CLS at the 75th percentile over 28 days, and use the lab score below it only to hunt for causes.
There's no single best tool, there's a right combination: Lighthouse in Chrome DevTools lets you choose device and throttling yourself, and your own measurement on your visitors fills in what CrUX doesn't cover.
For sites with little traffic, that own measurement isn't a luxury, since CrUX requires a minimum number of visitors before a page enters the dataset.
In any case, test more than just your homepage, since an overview page behaves differently from your landing page.

Why is my website slow?

Usually because of too much JavaScript, heavy images, and caching that's not set up on the right layer.
Which of the three weighs heaviest for you differs per site, so start by measuring instead of optimising.
In Drupal I often see it with views missing the right cache contexts, too many separate blocks on a page, and third-party scripts that still get loaded after the cookie banner.
Slowness is rarely a single cause, so an audit that only looks at the score usually misses half the picture.

How can I measure my website's performance?

On two levels: with real visitors and in a test.
Field data from CrUX or from your own measurement script gives you LCP, INP and CLS the way visitors actually experience them, segmented by mobile and desktop.
A lab test in Lighthouse then provides the diagnostics that show you where that time is going.
The field data tells you whether you have a problem, the lab test helps you find it.

Do you need a PageSpeed score of 100 for good SEO?

No.
The Lighthouse score isn't a ranking factor, the Core Web Vitals are, and those are measured on real visitors.
If you stay at the 75th percentile under 2.5 seconds LCP, under 200 milliseconds INP and under 0.1 CLS, you're fine, whether the number in the tool says 72 or 98.
Chasing the last few points usually costs more than it delivers, so stop once the field data is green.

What is the difference between lab data and field data?

Lab data comes from a test, field data comes from your visitors.
Lighthouse does a single page load in a controlled environment, with a simulated mid-range device and a throttled connection, and converts that into a score from 0 to 100.
CrUX collects measurements from real Chrome users and reports the 75th percentile over a rolling 28-day window.
So the field data tells you whether your visitors have a good experience, the lab data mainly helps you find the cause.

Is Interaction to Next Paint included in my PageSpeed score?

No.
A standard Lighthouse run doesn't click anything, and without interaction there's no INP to calculate.
In the lab, Total Blocking Time stands in for it, and that measures how long the main thread is busy during load, not how slow your filter responds on the third click.
Reliable INP figures therefore come from your field data, where you want to stay under 200 milliseconds at the 75th percentile.

A question about this topic?

Briefly describe your situation, and I'll let you know what's going on and what it would cost. No sales pitch.

Privacy policy

Who we are

This policy applies to David Porschmann (freelance web developer).
Contact: support@porschmann.be.

What data we process

Name, email address, company name (optional), and your message or enquiry. When you visit our website, we also process limited technical data (such as IP address and browser type) for security and analytics purposes.

Why we process your data (legal basis)

  • To respond to your enquiry or provide a quotation (consent or pre-contractual necessity).
  • For administration and invoicing during collaboration (contractual necessity).
  • For security and troubleshooting (legitimate interest).

Retention periods

Contact form submissions: maximum of 24 months.
Client records and invoicing: according to legal retention periods.

Sharing with third parties

We do not share your data with third parties, except with processors who help us host the website, send emails, or handle administration. Data processing agreements have been concluded with these partners.

Your rights

Right of access, rectification, erasure, restriction, data portability, and withdrawal of consent.
Email us at support@porschmann.be.

Security

We take appropriate technical and organisational measures to protect your data.

Cookies and analytics

Brief explanation of the tools used (e.g. Matomo, Clarity, GA) and a link to the cookie policy, if applicable.

Contact

Questions about this policy?
support@porschmann.be

More to read