> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Load Speed Over Time, Website Performance (PageSpeed + CrUX)

> Load Speed Over Time for Website Performance (PageSpeed + CrUX) stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to ...

**Metrics type:** [Supporting Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Website Performance](/nerve-centre/connectors#connectors-by-type)

## At a glance

> **Largest Contentful Paint p75 over time**, daily or monthly time-series of mobile LCP measured from CrUX. **The drift-detection view** that surfaces gradual performance degradation (or improvement) the static [`crux_lcp_p75`](/nerve-centre/kpi-cards/website-performance/page-load-speed) snapshot can't show. **Critical for monitoring** because LCP drift often happens slowly (added third-party tags, image-quality drift on uploaded content, CDN config changes) and goes unnoticed until it crosses a threshold weeks later.

|                                          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **What it counts**                       | Time-series of `largest_contentful_paint` p75 across the rolling 28-day CrUX window, sampled at the cadence Vortex IQ refreshes (daily by default; monthly snapshots for long-term comparison). The metric value at each timestamp reflects the trailing 28 days of real-user data.                                                                                                                                                                                                        |
| **Sample type**                          | **Field data** sourced from CrUX. Lab-data trend is captured via [`psi_score_trend`](/nerve-centre/kpi-cards/website-performance/performance-score-over-time) which tracks Lighthouse score over time.                                                                                                                                                                                                                                                                                     |
| **Why trend matters more than snapshot** | A snapshot can show "LCP is 3,200ms today"; the trend shows "LCP was 2,400ms three months ago and has crept up 800ms". **Drift detection** is the value: gradual degradation often goes unnoticed in spot-checks but accumulates into ranking-impact territory.                                                                                                                                                                                                                            |
| **Common drift patterns**                | (1) **Slow up-drift** (50-100ms/month): typical pattern when third-party tags accumulate without explicit cleanup. (2) **Step regression** (300-1,000ms in a single week): typically a deploy or content upload that introduced a new render-blocker. (3) **Slow down-drift** (improvement): post-optimisation absorption over the 28-day rolling window. (4) **Cyclical** (peak season variations): high-traffic periods (BFCM, Prime Day) often show LCP degradation due to server load. |
| **Reading the trend**                    | Look at: (a) **direction** (up = bad, down = good); (b) **slope** (slow = drift, steep = regression); (c) **inflection points** (when did it change? cross-reference with deploy log); (d) **band crossing** (when did it cross 2,500ms threshold?).                                                                                                                                                                                                                                       |
| **The 28-day rolling smoothing**         | Each daily data point is a 28-day rolling p75. **Sharp regressions appear gradually** in the trend view because they're being averaged with 27 days of pre-regression data. A real-world LCP regression from 2,400ms to 4,200ms produces a gradual trend rise over 28 days, not an instant cliff.                                                                                                                                                                                          |
| **Sample size threshold**                | Each daily point requires sufficient real-user volume in the trailing 28 days. Low-traffic sites may have null trend values.                                                                                                                                                                                                                                                                                                                                                               |
| **Currency**                             | n/a, time-series of milliseconds.                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| **Time window**                          | `28D rolling × T` (current + historical).                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| **Alert trigger**                        | `current value > 2,500ms` OR `7-day rolling delta > +500ms` (regression).                                                                                                                                                                                                                                                                                                                                                                                                                  |
| **Sentiment key**                        | `psi_lcp`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| **Roles**                                | owner, marketing, operations                                                                                                                                                                                                                                                                                                                                                                                                                                                               |

## Calculation

Calculated automatically from your Website Performance (PageSpeed + CrUX) data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

## Worked example

A UK-based BigCommerce fashion store, mobile LCP trend over 6 months ending Wednesday 15 May 26.

| Month                        | LCP p75 (mobile) |           Δ vs prior | Notes                                                        |
| ---------------------------- | ---------------: | -------------------: | ------------------------------------------------------------ |
| Nov 25                       |          2,380ms |           (baseline) | Healthy; in good band                                        |
| Dec 25                       |          2,460ms |                +80ms | Modest drift                                                 |
| Jan 26                       |          2,720ms |               +260ms | Crossed into "needs improvement" band                        |
| Feb 26                       |          3,180ms |               +460ms | New hero carousel deployed (heavier images)                  |
| Mar 26                       |          3,840ms |               +660ms | Klaviyo + Tidio + Hotjar tags added in marketing-driven push |
| Apr 26                       |          4,420ms |               +580ms | Holiday hero campaign (BFCM-prep) hero images                |
| **May 26**                   |      **4,820ms** |           **+400ms** | **Current state, "poor" band**                               |
| **Cumulative drift Nov→May** |                  | **+2,440ms (+103%)** | **6-month silent regression**                                |

What the trend is telling us:

1. **The site has more than doubled its LCP over 6 months without anyone noticing.** Each individual month-over-month change looked modest (80-660ms); cumulatively the LCP has gone from healthy good-band (2,380ms) to failing poor-band (4,820ms). **No single deploy was clearly catastrophic**; the drift is the story.

2. **Three distinct contributing events** can be identified from the inflection points: (a) Feb 26 hero carousel deploy (+460ms): a marketing-driven design refresh that added heavier hero imagery without performance review; (b) Mar 26 marketing-stack expansion (+660ms): three new third-party tags added in a single sprint to support a new email and chat strategy; (c) Apr 26 BFCM-prep campaign images (+580ms): heavy seasonal imagery uploaded without optimisation discipline.

3. **Each contributing event individually felt acceptable** to the team that made it. The hero carousel was visually stunning; the marketing stack expanded customer engagement; the BFCM imagery was on-brand. **None of the teams making changes saw the cumulative LCP impact** because nobody was watching the trend.

4. **The recovery path requires reversing each contribution thoughtfully.** Image format conversion + responsive variants for hero + product images recovers \~1,500-2,000ms. Third-party tag deferral + GTM audit recovers another 400-600ms. Aggressive caching + CDN tuning recovers another 200-400ms. **Cumulative recovery target: 4,820ms → 2,200-2,400ms over a focused 6-week optimisation cycle.**

5. **Future protection: trend monitoring as a guardrail.** **Set an alert at +200ms vs 30-day baseline** so the next 200ms drift is caught immediately and traced to its cause. Prevents the next 6-month cumulative regression. The Vortex Mind Pre-Launch Readiness report can fire alerts on this signal.

6. **The 28-day rolling window's effect on the trend curve** is visible in the smoothness. A real-world step regression (e.g. the Mar 26 marketing-stack add) appears as a gradual rise over 28 days rather than a vertical cliff. **For attribution work, look 7-14 days before the inflection** to find the actual regression event date.

The diagnostic flow when this card flags amber/red:

1. **Identify the dominant trend direction.** Up over months = drift; sharp step = single regression event.
2. **Cross-reference inflection points with deploy log + content management activity.** Most regressions trace to a specific date.
3. **Decompose into component contributions.** Was it third-party? First-party? Content uploads? Each cause has a different fix.
4. **Plan recovery to undo each contribution.** Multi-week cycle typical for accumulated drift.

Rapid-response playbook:

| Time horizon  | Action                                                            |
| ------------- | ----------------------------------------------------------------- |
| First 1 hour  | Identify whether trend is drift (slow rise) or regression (step). |
| First 4 hours | Cross-reference inflection points with deploy log.                |
| First 7 days  | Begin recovery work (image optimisation typically first).         |
| First 30 days | Trend reflects optimisations as 28-day rolling window absorbs.    |
| Ongoing       | Set alert for +200ms drift to prevent recurrence.                 |

## Sibling cards merchants should reference together

| Card                                                                                                 | Why merchants reach for it                          |
| ---------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| [`crux_lcp_p75`](/nerve-centre/kpi-cards/website-performance/page-load-speed)                        | Static snapshot; this card is the time-series view. |
| [`crux_inp_trend`](/nerve-centre/kpi-cards/website-performance/responsiveness-over-time)             | INP trend; pair for full CWV trend picture.         |
| [`crux_cls_trend`](/nerve-centre/kpi-cards/website-performance/layout-stability-over-time)           | CLS trend.                                          |
| [`crux_pass_rate_trend`](/nerve-centre/kpi-cards/website-performance/speed-test-pass-rate-over-time) | All-three pass rate trend.                          |
| [`psi_score_trend`](/nerve-centre/kpi-cards/website-performance/performance-score-over-time)         | Lab Performance Score over time.                    |
| [`crux_regression_timeline`](/nerve-centre/kpi-cards/website-performance/crux-regression-timeline)   | Regression detection across all CWV.                |
| [`psi_biggest_regression`](/nerve-centre/kpi-cards/website-performance/biggest-regression)           | Per-URL regression view.                            |
| [`psi_image_optimisation`](/nerve-centre/kpi-cards/website-performance/image-optimisation)           | Common LCP fix lever.                               |
| [`psi_third_party_cost`](/nerve-centre/kpi-cards/website-performance/third-party-cost)               | Third-party drift commonly causes LCP regression.   |

## Reconciling against the vendor's own dashboard

**Where to look:**

* **[GSC → Core Web Vitals report](https://search.google.com/search-console)**, surfaces 90-day trend.
* **[CrUX Dashboard via Looker Studio](https://lookerstudio.google.com/)**, Google's official CrUX explorer with deeper trend analysis.
* **[CrUX BigQuery dataset](https://github.com/GoogleChrome/CrUX#crux-on-bigquery)**, monthly snapshots back to 2018 for long-term historical analysis.

**Why the Vortex IQ trend may differ from external trend views:**

| Reason                                                                                                           | Direction             | What to do                                                                       |
| ---------------------------------------------------------------------------------------------------------------- | --------------------- | -------------------------------------------------------------------------------- |
| **Aggregation cadence.** Vortex IQ samples daily; CrUX BigQuery samples monthly.                                 | Different granularity | Use Vortex IQ for short-term drift detection; BigQuery for long-term historical. |
| **Window timing.** Vortex IQ refreshes daily; CrUX has 1-2 day lag.                                              | Vortex IQ **lags**    | Wait for next refresh.                                                           |
| **Smoothing.** Each Vortex IQ data point is the 28-day rolling p75 at that timestamp; not a snapshot of the day. | Smoothed              | Sharp regressions appear as gradual rises in the trend view.                     |

**Cross-connector reconciliation:** primarily internal (with [`crux_lcp_p75`](/nerve-centre/kpi-cards/website-performance/page-load-speed), [`psi_score_trend`](/nerve-centre/kpi-cards/website-performance/performance-score-over-time)).

**Quick rule for support tickets:** if a merchant says *"I deployed a fix yesterday but the trend hasn't moved"*, the 28-day rolling window means yesterday's fix is one day in a 28-day average. **Wait 7-14 days for partial movement; 28 days for full reflection**.

## Known limitations / merchant FAQs

**My LCP has crept up 800ms over 6 months. Where do I start the recovery?**

Cross-reference inflection points with deploy + content-management activity. Most cumulative drift traces to specific events (a deploy, a content upload, a third-party tag addition); identifying the events lets you reverse them. **Tools to use**: deploy log, GTM audit log, CMS image-upload log, theme version history.

**My trend looks flat but my LCP is in the poor band. What do I do?**

The site has a stable but bad LCP. **No drift means no recent regression**; the issue is structural rather than progressive. **Address structural issues**: image format conversion, render-blocking CSS, slow server response. The optimisation playbook is the same as for a recently-regressed site, just no need for inflection-point investigation.

**My deploy fixed LCP but the trend hasn't moved. Why?**

The 28-day rolling window. Each daily data point includes 27 days of pre-deploy data plus 1 day of post-deploy. **Wait 7 days** for partial movement (then \~25 percent of the window is post-deploy); **14 days** for substantial movement; **28 days** for full reflection.

**Why is my trend so smooth when I know my deploys have spikes?**

The 28-day rolling window smooths spikes. Sharp single-day regressions appear as gradual rises in the trend view. **For attribution work**, the inflection point in the trend lags the actual regression event by \~7-14 days; look earlier than the visible inflection.

**Should I use trend or snapshot?**

Both. **Snapshot** answers "where am I now"; **trend** answers "where am I going". Use snapshot for ranking-impact decisions today; use trend for drift detection and recovery planning.

**Can Vortex IQ alert me when LCP starts drifting?**

Yes; alert trigger `7-day rolling delta > +500ms` catches step regressions; `current value > 2,500ms` catches threshold crossings. Configure in Vortex IQ → Alerts.

**Why does my trend show null for some recent days?**

Insufficient CrUX data for those windows. Sites with low or fluctuating traffic occasionally drop below the 1,000-session threshold; the metric returns null for affected days. **Use lab data** ([`psi_lab_lcp`](/nerve-centre/kpi-cards/website-performance/lab-load-speed)) as the fallback for those gaps.

**Can I export this trend to share with stakeholders?**

The Vortex IQ dashboard supports CSV export; the underlying CrUX BigQuery dataset is also publicly queryable for long-form reporting. The Vortex Mind Pre-Launch Readiness report includes trend snapshots in its outputs.

***

### Tracked live in Vortex IQ Nerve Centre

*Load Speed Over Time* is one of hundreds of KPI pulses Vortex IQ tracks across Website Performance (PageSpeed + CrUX) and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
