# Performance Thresholds



This reference guide explains all performance metric thresholds used by VitalSentinel and Google's Core Web Vitals assessment.

## Core Web Vitals [#core-web-vitals]

Core Web Vitals are the key metrics that affect Google search ranking and user experience.

### LCP (Largest Contentful Paint) [#lcp-largest-contentful-paint]

Measures loading performance - how quickly the main content becomes visible.

| Rating            | Threshold   | Description                      |
| ----------------- | ----------- | -------------------------------- |
| Good              | ≤ 2.5s      | Fast loading experience          |
| Needs Improvement | 2.5s - 4.0s | Could be improved                |
| Poor              | > 4.0s      | Slow loading, needs optimization |

**What affects LCP:**

* Server response time
* Resource load times
* Render-blocking resources
* Image optimization

### CLS (Cumulative Layout Shift) [#cls-cumulative-layout-shift]

Measures visual stability - how much the page layout shifts unexpectedly.

| Rating            | Threshold  | Description                      |
| ----------------- | ---------- | -------------------------------- |
| Good              | ≤ 0.1      | Stable layout                    |
| Needs Improvement | 0.1 - 0.25 | Some layout shifts               |
| Poor              | > 0.25     | Unstable, frustrating experience |

**What affects CLS:**

* Images without dimensions
* Dynamically injected content
* Web fonts causing FOIT/FOUT
* Ads and embeds without reserved space

### INP (Interaction to Next Paint) [#inp-interaction-to-next-paint]

Measures responsiveness - how quickly the page responds to user interactions.

| Rating            | Threshold     | Description             |
| ----------------- | ------------- | ----------------------- |
| Good              | ≤ 200ms       | Responsive interactions |
| Needs Improvement | 200ms - 500ms | Noticeable delay        |
| Poor              | > 500ms       | Sluggish, unresponsive  |

**What affects INP:**

* Long JavaScript tasks
* Main thread blocking
* Heavy event handlers
* Third-party scripts

## Additional Metrics [#additional-metrics]

### TTFB (Time to First Byte) [#ttfb-time-to-first-byte]

Measures server responsiveness - time until the first byte of the response.

| Rating            | Threshold      | Description            |
| ----------------- | -------------- | ---------------------- |
| Good              | ≤ 800ms        | Fast server response   |
| Needs Improvement | 800ms - 1800ms | Server could be faster |
| Poor              | > 1800ms       | Slow server response   |

<Callout type="info">
  These TTFB thresholds apply to field data (CrUX and RUM). Synthetic (Lighthouse lab) tests use a stricter "Good" boundary of 600ms for TTFB.
</Callout>

**What affects TTFB:**

* Server processing time
* Database queries
* Network latency
* CDN configuration

### FCP (First Contentful Paint) [#fcp-first-contentful-paint]

Measures perceived load speed - time until any content is visible.

| Rating            | Threshold   | Description           |
| ----------------- | ----------- | --------------------- |
| Good              | ≤ 1.8s      | Quick first paint     |
| Needs Improvement | 1.8s - 3.0s | Delayed first content |
| Poor              | > 3.0s      | Very slow first paint |

**What affects FCP:**

* Render-blocking resources
* Font loading
* Critical CSS delivery
* Server response time

## Lighthouse Scores [#lighthouse-scores]

Synthetic monitoring uses Lighthouse, which provides scores from 0 to 100.

### Performance Score [#performance-score]

| Score  | Rating                     |
| ------ | -------------------------- |
| 90-100 | Good (green)               |
| 50-89  | Needs Improvement (orange) |
| 0-49   | Poor (red)                 |

**Score composition:**

* First Contentful Paint (10%)
* Speed Index (10%)
* Largest Contentful Paint (25%)
* Total Blocking Time (30%)
* Cumulative Layout Shift (25%)

### Accessibility Score [#accessibility-score]

| Score  | Rating            |
| ------ | ----------------- |
| 90-100 | Good              |
| 50-89  | Needs Improvement |
| 0-49   | Poor              |

### Best Practices Score [#best-practices-score]

| Score  | Rating            |
| ------ | ----------------- |
| 90-100 | Good              |
| 50-89  | Needs Improvement |
| 0-49   | Poor              |

### SEO Score [#seo-score]

| Score  | Rating            |
| ------ | ----------------- |
| 90-100 | Good              |
| 50-89  | Needs Improvement |
| 0-49   | Poor              |

## TBT (Total Blocking Time) [#tbt-total-blocking-time]

Used in Lighthouse as a proxy for INP (since lab tests can't measure real interactions).

| Rating            | Threshold     | Description    |
| ----------------- | ------------- | -------------- |
| Good              | ≤ 200ms       | Responsive     |
| Needs Improvement | 200ms - 600ms | Some blocking  |
| Poor              | > 600ms       | Heavy blocking |

## Speed Index [#speed-index]

Measures how quickly content is visually displayed.

| Rating            | Threshold   | Description              |
| ----------------- | ----------- | ------------------------ |
| Good              | ≤ 3.4s      | Quick visual progression |
| Needs Improvement | 3.4s - 5.8s | Moderate speed           |
| Poor              | > 5.8s      | Slow visual loading      |

## Mobile vs Desktop [#mobile-vs-desktop]

Thresholds are the same for mobile and desktop, but:

* **Mobile typically has higher values** due to slower devices and networks
* **Desktop usually performs better** with faster hardware
* **Both matter for search ranking** depending on the search device

## CrUX Assessment [#crux-assessment]

Google uses the &#x2A;*75th percentile (P75)** to assess your site:

* If P75 is "Good" → Pass
* If P75 is "Poor" → Fail
* If P75 is in between → Needs Improvement

This means 75% of your users must have a "Good" experience to pass.

## Recommended Alert Thresholds [#recommended-alert-thresholds]

### Conservative (Fewer Alerts) [#conservative-fewer-alerts]

| Metric | Warning | Critical |
| ------ | ------- | -------- |
| LCP    | > 3.5s  | > 5.0s   |
| CLS    | > 0.15  | > 0.3    |
| INP    | > 300ms | > 600ms  |

### Aggressive (Catch Issues Early) [#aggressive-catch-issues-early]

| Metric | Warning | Critical |
| ------ | ------- | -------- |
| LCP    | > 2.5s  | > 4.0s   |
| CLS    | > 0.1   | > 0.25   |
| INP    | > 200ms | > 500ms  |

## Related [#related]

<Cards>
  <Card title="RUM Monitoring" href="/features/rum-monitoring">
    Track real user metrics
  </Card>

  <Card title="CrUX Monitoring" href="/features/crux-monitoring">
    Google's assessment data
  </Card>

  <Card title="Setting Up Alerts" href="/alerts/setting-up-alerts">
    Configure performance alerts
  </Card>
</Cards>
