Cart sessions that hit a slow PDP and abandoned at checkout. Direct evidence that perf is costing revenue, gives ammo to the hosting upgrade conversation.
At a glance
Cart sessions that hit a slow product page and then abandoned at checkout. Direct evidence that page-speed is costing the WooCommerce store revenue.
| What it counts | SUM(abandoned cart value) WHERE the cart page or PDP TTFB > p75 baseline AND session ended without conversion. Joins GA4 / CrUX page-speed data against Woo cart-abandonment data. |
| REST API endpoint | Woo: GET /wp-json/wc/v3/orders?status=pending for cart skeletons. CrUX: Chrome User Experience Report API. GA4: page-speed events. |
| VAT / tax treatment | Cart values are tax-inclusive (order.total semantics). |
| Status filter | Carts in pending (abandoned) status with non-zero value. |
| Refunds / cancelled / failed orders | Not applicable. |
| Currency | Cart values in store currency. |
| Channels / sources | Web only. POS does not have page-speed signal. |
| Self-hosted vs managed-Woo | This card is most actionable for self-hosted Woo merchants. Slow shared hosting is the dominant cause of slow PDPs on Woo. Managed-Woo (Pressable, Kinsta, WP Engine) typically runs <500ms TTFB; cheap shared hosting often runs >1.2s. Each 100ms over 500ms costs about 1% of conversion. WordPress.com is consistently fast. |
| Time window | 30D |
| Alert trigger | abandoned-cart 500/30D |
| Roles | owner, operations, marketing |
Calculation
Calculated automatically from your WooCommerce 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 self-hosted UK fashion brand on Bluehost shared hosting. GA4 + CrUX both connected. 30-day window: 14 Mar 26 to 12 Apr 26.| Bucket | Sessions | Avg TTFB | Cart adds | Conversions | Abandoned cart value |
|---|---|---|---|---|---|
| Fast PDPs (TTFB < 500ms) | 88,400 | 380ms | 7,140 | 1,820 | £142,300 |
| Slow PDPs (TTFB > 1,000ms) | 54,000 | 1,420ms | 2,890 | 332 | £2,420 |
| Pagespeed-driven cart loss (this card) | £2,420 |
- Self-hosted variance is the recurring theme. This brand’s slow-PDP bucket is concentrated on the cart and PDP pages where WC’s cart fragments (PHP-rendered) are not effectively cached. Bluehost throttles concurrent PHP processes, so traffic spikes hit the slow tail. A move to managed-Woo (Pressable) cut the slow-PDP bucket by ~70% in a similar test.
- The £2,420 / 30D figure is conservative. It only counts carts that abandoned, not the broader funnel friction (visitors who never added to cart because the PDP felt sluggish). The full revenue cost is typically 2-3x this number.
- Plugin-induced data shape variance: WP Rocket / W3 Total Cache. Caching plugins on slow hosts can produce a bimodal TTFB distribution: cached page loads in 200ms, uncached in 2,000ms. The card’s p75 threshold catches the uncached tail. Stores with aggressive caching may see this card under-report because most sessions hit cached pages.
Sibling cards merchants should reference together
| Card | Why pair it with Pagespeed Cart Loss |
|---|---|
| WC Conversion Rate | Pagespeed-driven loss is a subset of broader conversion friction. |
| WC Total Orders | Sample-size context. |
| Website CrUX Vitals | The page-speed source data. |
| Website TTFB | Server-side speed view. |
| BC Channel Conversion Rate | Cross-platform peer. |
Reconciling against the vendor’s own dashboard
Where to look in WooCommerce / GA4 / CrUX: Woo: WP Admin → WC → Reports → does not have an abandoned-cart-by-speed view. GA4: Reports → Engagement → Events → page_load_time. CrUX: PageSpeed Insights for the cart and PDP pages. The combined view is unique to Vortex IQ. Why our number may differ from a manual GA4 calculation:| Reason | Direction |
|---|---|
| Time-zone. UTC vs GA4 reporting timezone vs WP-site timezone. | Boundary effects |
| Self-hosted server uptime. Outages produce 0-session windows; CrUX may not have data for those windows. | Self-resolves |
| Plugin-version compatibility. AMP plugins separate AMP and non-AMP sessions; speed distributions differ. | Investigate per-merchant |
| Refund-restock cycle. Not relevant for this card. | n/a |
| Currency. Cart values in store currency. | Multi-currency stores need filter alignment. |
| CrUX sampling. CrUX samples opted-in Chrome users; mobile / desktop split varies. | Either |
| Card | Expected relationship |
|---|---|
website.crux_vitals | Should track this card’s “slow bucket” definition. |
Known limitations / merchant FAQs
Self-hosted vs managed-Woo, why is this card most actionable for self-hosted? Slow shared hosting is the single biggest driver of slow PDPs on Woo. Managed-Woo hosts run capacity-managed infrastructure; self-hosted shared cannot. Status-filter selection, why focus on cart abandonment? Cart abandonment with measurable cart value is the most actionable downstream of slow PDPs. PDP-only abandonment (visited PDP, never added to cart) is harder to attribute to speed alone. Refund-object accounting? Not applicable. Plugin-induced data shape variance, what should I watch?- Caching plugins (WP Rocket, W3 Total Cache): bimodal speed distribution.
- AMP plugins: split traffic into AMP / non-AMP cohorts.
- Page builders (Elementor, Divi, Beaver Builder): heavier JS payloads, structurally slower PDPs.
- Confirm cart-abandonment definition (GA4 funnels vs Woo
pendingorders). - Check timezone alignment.
- Verify the slow-PDP threshold (this card uses p75 baseline; configure per workspace).