Performance tests

Core Web Vitals vs load testing: two ways a website can be slow

A website can feel slow while its servers are almost idle. Another may be quick under light traffic, then slow down and fail as users arrive. The complaint sounds the same, but Core Web Vitals and load tests examine different layers.

Core Web Vitals describe the browser experience

The current stable set of Core Web Vitals consists of LCP, INP, and CLS. The official overview of the metrics explains what they represent:

These metrics are not a test of the maximum user count. Resource size and order, JavaScript, images, fonts, the device, the network, and the behaviour of an individual page can all influence them.

Field and lab data answer different questions

Field data comes from real visits, devices, networks, and usage patterns. It reveals the population’s experience, but it is aggregated and may not reflect a new release immediately. Lab measurement is controlled, repeatable during development, and useful for diagnosing a regression, but may not represent every visitor. See the guide to differences between lab and field data.

A sound assessment uses both views: field evidence to establish real impact and the lab to reproduce a problem and investigate its cause. One successful local run cannot prove that the production population has a consistently good experience.

Load testing examines system capacity

A load test generates an agreed traffic model and observes response time, throughput, errors, and resource use. It asks whether the API, database, queues, and infrastructure sustain the expected mix of operations.

A virtual-user count alone does not define that model. It also needs realistic steps, operation ratios, arrival rates, data, and dependencies. The guide to website concurrent-user capacity explains how to turn a capacity question into a measurable scenario.

The experiment also changes with the risk. Normal load, overload, a sudden surge, and long-running stability are different questions, as described in load, stress, spike, and soak testing.

Why neither result replaces the other

The backend may return data quickly under the planned load while a large hero image, render-blocking script, or unstable layout harms the browser experience. That system can pass its load test and still have poor Core Web Vitals.

The reverse is also possible. An optimised page may perform well during normal traffic, while a database lock or undersized connection pool causes a sharp slowdown at peak demand. Historical field data may not expose that capacity limit before a real event reaches it.

Do not rely solely on an average during load either. A smaller group of very slow responses can determine whether users complete a purchase. For server timings, examine percentiles and understand why p95 is not the average.

How to connect the two disciplines

  1. Establish a low-load baseline. Collect a field view of Core Web Vitals and repeatable lab measurements for critical pages.
  2. Build the traffic model. Translate important journeys into operations, then define arrival patterns, data, and success criteria.
  3. Collect server evidence during load. Correlate response times and errors with application, database, queue, and infrastructure metrics.
  4. Observe selected browser journeys as well. A controlled browser or real-user measurement can show whether increasing server latency changes the visible experience. Do not mistake that sample for a separate diagnosis of every Core Web Vital.
  5. Fix the layer responsible and repeat the measurement. A CDN or image change will not remove a database bottleneck; a larger database will not eliminate long JavaScript tasks.

Our service focuses on performance and load testing: primarily the behaviour and capacity of the system under defined traffic. A load test does not replace a dedicated Core Web Vitals diagnosis. If that diagnosis is needed, it should be scoped and evaluated as a separate area.

What you gain

Separating the two views prevents the team from investigating the wrong layer. The evidence shows whether the next investigation belongs in browser rendering, backend capacity, or the interaction between them. Each fix can then be verified with the same kind of measurement that exposed the original problem.

A useful next step

Write down one critical journey, its expected traffic, and an example of a specific speed complaint. Design a measurement with clear boundaries so that the result shows whether the next investigation belongs in the browser or in system capacity.

Related topics

You might also be interested in

You want to know the capacity of the system in advance

Load and stress tests will show the behavior and capacity of the system in agreed conditions before the expected peak.