Why these metrics matter
turbometrics does not only show a score, but the metrics behind it. It is exactly these values that help you spot real causes instead of just judging a result.
The most important metrics show up again in the scan report, in comparisons and in part also in alerts.
TTFB
Time to First Byte shows how quickly the server responds to the first request.
High TTFB values often point to:
- slow hosting
- slow backend logic
- caching problems
- external dependencies ahead of the response
A good TTFB does not solve every problem, but a poor TTFB slows down almost everything that follows.
Reference values (turbometrics scan assessment):
| Value | Assessment |
|---|---|
| Under 500 ms | Good |
| 500–1,200 ms | Notable |
| Over 1,200 ms | Critical |
These thresholds refer to the internal scan assessment. Google's CrUX reference values (≤ 800 ms / ≤ 1,800 ms) are aimed at real user data and deliberately differ from them – both are documented further down this page.
FCP
First Contentful Paint shows when visible content first appears. It matters for the first impression while loading.
Reference values (turbometrics scan assessment):
| Value | Assessment |
|---|---|
| Under 1,600 ms | Good |
| 1,600–2,500 ms | Notable |
| Over 2,500 ms | Critical |
A late FCP can mean that:
- CSS or JS is blocking early rendering
- the server responds late
- large resources are loaded ahead of visible content
LCP
Largest Contentful Paint measures when the most important visible main content has loaded. LCP is especially important in the product, because it is closely tied to the perceived loading experience.
A poor LCP is often caused by:
- large images
- heavy above-the-fold content
- a slow server response
- blocking resources
TBT
Total Blocking Time measures how long the browser main thread was blocked while the page was rendering. Blocked means: JavaScript runs for so long that the browser can neither respond to input nor update the screen.
TBT is made up of the blocking portions of all long tasks – that is, the time each one spends beyond 50 ms.
Reference values:
| Value | Assessment |
|---|---|
| Under 200 ms | Good |
| 200–600 ms | Room for improvement |
| Over 600 ms | Critical |
High TBT values usually point to:
- heavy or poorly loaded JavaScript
- third-party scripts (tracking, chat, consent)
- missing prioritisation when loading scripts
CLS
Cumulative Layout Shift shows whether content jumps while loading. A low CLS matters for a stable user experience.
A poor CLS is often caused by:
- images without fixed dimensions
- fonts or banners that shift the layout afterwards
- components that are displayed dynamically
Requests and data volume
Besides runtime values, the structure and weight of the page matter too:
- many requests add coordination and loading overhead
- large data volumes slow down mobile connections in particular
- large fonts, images and scripts often show up again among the biggest slowdowns
Resource breakdown
In the developer tab, turbometrics shows a breakdown of the loaded resources by type:
| Type | Content |
|---|---|
| JS | JavaScript files |
| CSS | Stylesheets |
| IMG | Images |
| FONT | Font files |
| VIDEO | Video files |
The breakdown is based on browser runtime data. If JS data is not available (e.g. for cached resources), the static analysis value is used and marked accordingly.
Long tasks
Long tasks are tasks that block the browser main thread for longer than 50 ms. The blocking time is the portion beyond 50 ms – this time feeds directly into TBT.
turbometrics shows for each long task:
- the start time (measured from page load)
- the total duration
- the blocking time (colour-coded by severity)
- the likely cause (script URL, as far as it can be determined)
The likely cause is determined by overlap with the resource timings and is an approximation, not a proven fact.
DOM size
The number of all DOM elements on the page. From around 1,500 elements onwards, the browser becomes noticeably slower at rendering and at JavaScript operations.
Reference values:
| Elements | Assessment |
|---|---|
| Under 800 | Good |
| 800–1,500 | Okay |
| Over 1,500 | Elevated (Lighthouse reference value) |
| Over 3,000 | Critical |
A typical cause: page builders such as Elementor or Divi often produce a great many nested wrapper elements.
Blocking scripts
The number of external JavaScript files that are included without async or defer. These scripts block the browser while it parses the HTML, until they have been fully loaded and executed.
Reference values:
| Count | Assessment |
|---|---|
| 0 | Optimal |
| 1–3 | Acceptable |
| More than 3 | Should be reduced |
The affected script URLs are listed in the report.
Images without explicit dimensions
Images without width and height attributes can cause layout shifts while loading (CLS), because the browser cannot reserve space for them.
turbometrics shows the number of affected images as well as the total number of images detected on the page.
Browser runtime
turbometrics looks not only at static preflight data, but also at the browser runtime. That gives you a better view of what actually happens while the page renders.
This matters for:
- differences between mobile and desktop
- third parties that stand out
- late runtime requests
- heavy front-end JavaScript
Reading metrics correctly
No metric stands on its own. Good interpretation combines:
- the measured value
- the score breakdown
- the biggest slowdowns
- problems and recommendations
- the history or the baseline
That turns a number into a usable technical assessment.
Real user data (CrUX)
In addition to its own measurements, turbometrics shows – where available – CrUX data (Chrome User Experience Report). This is anonymised field data that Google aggregates from real Chrome sessions.
What CrUX measures:
| Metric | Meaning |
|---|---|
| LCP | Largest Contentful Paint – when the main content becomes visible |
| INP | Interaction to Next Paint – response time to user input |
| CLS | Cumulative Layout Shift – visual stability while loading |
| TTFB | Time to First Byte – server response time |
Important limitations:
- Only Chrome users are included – Firefox, Safari and other browsers are not covered
- The data covers the last 28 days and updates weekly
- Desktop data requires a minimum number of Chrome users on that domain – if there is not enough data, no desktop value is shown
- CrUX data reflects real user behaviour, not a lab measurement – depending on the audience, region and device, it can differ considerably from your own scan values
Reference values (according to Google):
| Metric | Good | Room for improvement | Critical |
|---|---|---|---|
| LCP | ≤ 2,500 ms | ≤ 4,000 ms | > 4,000 ms |
| INP | ≤ 200 ms | ≤ 500 ms | > 500 ms |
| CLS | ≤ 0.1 | ≤ 0.25 | > 0.25 |
| TTFB | ≤ 800 ms | ≤ 1,800 ms | > 1,800 ms |
CrUX data complements your own scan values – it shows how the page performs for real users, not just in the lab.
Further reading
→ Technical signals in the developer tab → Scoring & methodology → Problems & recommendations → Baselines & comparison