Skip to main content

Case Studies

Web performance optimization dashboard showing Core Web Vitals metrics and speed improvements for construction SaaS
Performance Optimization

The 42-Second Rescue: Saving a SaaS Site from Google's Core Update

Client
BidStream (Construction Bidding Software)
Disciplines
Next.jsWebpackCloudflare WorkersPartytownChrome DevTools Profiling
Background

BidStream's pricing page ranked #2 for "construction bidding software" (8,100 monthly searches) and drove 40% of demos. After Google's March 2023 Core Web Vitals update, rankings dropped to page 4—demo requests fell 71% in 6 weeks. Diagnostics showed catastrophic performance: LCP of 8.4s, CLS of 0.64, TBT of 3,200ms. The site was functionally dead on mobile.

Core Web Vitals performance report on MacBook Pro showing speed optimization metrics and analytics
The Solution

Strategic Implementation & Digital Results

We implemented a surgical performance overhaul without redesigning the site. First, migrated all third-party scripts to Partytown (web worker isolation)—analytics now ran off the main thread, eliminating 3.8s of blocking time.

Hero video: Converted to H.265 codec, compressed to 2.1MB, and added a static poster image with preload hint. For mobile viewports, we replaced the video entirely with a static WebP image (380KB).

CSS optimization: Used PurgeCSS to strip unused Tailwind classes, reducing stylesheet from 340KB → 28KB. Inlined critical above-the-fold CSS (6KB) directly in the <head> and deferred the rest.

Implemented Cloudflare Workers to serve a cached, static HTML shell for the pricing page—time to first byte dropped from 1.2s to 140ms.

Font strategy: Swapped Google Fonts for self-hosted subset WOFF2 files (only Latin character set), reducing font payload by 68%. Added font-display: swap to prevent FOIT.

01

Background

BidStream's pricing page ranked #2 for "construction bidding software" (8,100 monthly searches) and drove 40% of demos. After Google's March 2023 Core Web Vitals update, rankings dropped to page 4—demo requests fell 71% in 6 weeks. Diagnostics showed catastrophic performance: LCP of 8.4s, CLS of 0.64, TBT of 3,200ms. The site was functionally dead on mobile.

02

The Challenges

  • Third-party script carnage: 14 marketing scripts (Google Analytics, HubSpot, Intercom, LinkedIn Insight) blocked main thread for 4.1 seconds
  • Unoptimized hero video (42MB MP4) auto-playing above the fold on the homepage
  • Render-blocking CSS: 340KB of unused Tailwind styles loaded synchronously
03

The Solution

We implemented a surgical performance overhaul without redesigning the site. First, migrated all third-party scripts to Partytown (web worker isolation)—analytics now ran off the main thread, eliminating 3.8s of blocking time.

Hero video: Converted to H.265 codec, compressed to 2.1MB, and added a static poster image with preload hint. For mobile viewports, we replaced the video entirely with a static WebP image (380KB).

CSS optimization: Used PurgeCSS to strip unused Tailwind classes, reducing stylesheet from 340KB → 28KB. Inlined critical above-the-fold CSS (6KB) directly in the <head> and deferred the rest.

Implemented Cloudflare Workers to serve a cached, static HTML shell for the pricing page—time to first byte dropped from 1.2s to 140ms.

Font strategy: Swapped Google Fonts for self-hosted subset WOFF2 files (only Latin character set), reducing font payload by 68%. Added font-display: swap to prevent FOIT.

Project Impact

The Competitive Edge Delivered.

01
LCP
8.4s→ 1.1s (87% improvement)
02
CLS
0.64→ 0.02 (97% improvement)
03
Total Blocking Time
3,200ms→ 180ms
04
Lighthouse mobile score
34→ 98
05
Demo requests
71%decline reversed to 12% above pre-penalty baseline

Like What You See?

Every project starts with a conversation. Let's discuss how we can bring this level of strategic digital expertise to your next business challenge.

Let's Talk
Chat on WhatsApp