DEV Community

Cover image for TTFB vs full page load: choosing the right metric for your ecommerce infrastructure
binadit
binadit

Posted on • Originally published at binadit.com

TTFB vs full page load: choosing the right metric for your ecommerce infrastructure

Stop chasing TTFB: it's not the metric that's tanking your conversions

Your TTFB dashboard is green. Your conversion rate is red. If that combination sounds familiar, you're not alone, and you're not chasing the wrong fix by accident, you're chasing it because every tool you use puts TTFB front and center.

Here's the problem: TTFB and full page load metrics answer completely different questions, and treating them as interchangeable wastes engineering time on ecommerce sites where every millisecond on checkout pages has a dollar value attached.

What TTFB actually tells you

TTFB is the clock between the request leaving the browser and the first byte coming back. That window includes:

  • DNS resolution (if uncached)
  • TCP/TLS handshake
  • Server-side work: routing, DB queries, template rendering, cache lookups
  • Network transit for that first byte

On a warm HTTP/2 or HTTP/3 connection, server processing time dominates this number. Which makes TTFB genuinely useful, but only for one job: telling you when your backend is under load.

TTFB baseline: 180ms
TTFB during flash sale: 900ms
Enter fullscreen mode Exit fullscreen mode

That jump isn't noise. It's your app server, DB, or cache layer running out of headroom before a single byte of HTML goes out. On WooCommerce stacks especially, a TTFB spike during a traffic surge is usually the first hard evidence that your PHP-FPM pool or database is maxed out, well before cart abandonment shows up in analytics.

Where TTFB earns its keep

  • Catching server-side regressions. A slow query, an N+1 bug, a cold cache: TTFB flags these before users notice anything visually.
  • Load testing and capacity planning. Watch TTFB climb under simulated load and you know exactly where your app tier breaks.
  • Splitting backend vs frontend blame. Fast TTFB + slow-feeling page = stop looking at the server, start looking at JS and render-blocking assets.

Where it lies to you

A 100ms TTFB tells you nothing about what happens after that byte lands. The page can still take 6 seconds to become usable because of:

  • Render-blocking CSS/JS
  • Images without dimensions causing layout shift
  • A tag manager script hogging the main thread
  • Late-loading fonts (hello, flash of invisible text)

And here's the trap most teams miss: if a response is served from a CDN edge cache, TTFB measures the edge, not your origin. Your dashboard can look perfectly healthy while your actual application is quietly degrading, right up until a cache miss exposes it in production.

What full page load metrics tell you instead

LCP, Speed Index, fully-loaded time: these track what the user actually sees and feels. That's why Google leans on LCP and CLS for Core Web Vitals; TTFB alone was a bad predictor of both perceived speed and search ranking.

Strengths:

  • Correlates with real user experience, not just server response
  • Surfaces conversion killers directly (a bloated hero image, a blocking checkout script)
  • Feeds into Core Web Vitals and SEO scoring

Weaknesses:

  • Noisy. A regressed LCP could be caused by the backend, a new marketing pixel, an unoptimized CMS upload, or a hydration delay in your frontend framework
  • Lagging indicator. You need waterfall analysis and resource timing to find the actual cause after LCP tanks in prod
  • Out of infra's hands. You can run flawless high-availability infrastructure and still ship a slow LCP because a third-party payment widget is garbage

The decision framework

Stop asking "is TTFB good." Ask this instead:

if (TTFB_high && LCP_high) {
  fixBackendFirst(); // nothing downstream matters until this is solved
}

if (TTFB_low && LCP_high) {
  profileBrowserWaterfall(); // frontend/third-party problem
}

if (TTFB_high && LCP_low) {
  // rare, but check if LCP measurement is misleading you
}

if (servingMostlyFromCDN) {
  trackOriginResponseTimeSeparately(); // edge TTFB will lie to you
}
Enter fullscreen mode Exit fullscreen mode

Practical ownership split:

Situation Metric to watch Who owns it
Debugging capacity/backend regression TTFB Backend/infra
Debugging conversion drop or CWV score drop LCP, Speed Index Frontend + infra
Prepping for a sale or launch Both, together Whole team

For traffic events specifically: TTFB tells you when the servers start straining, LCP tells you whether shoppers are actually feeling it. Alert on both, but don't confuse one for the other, and don't let a green TTFB dashboard talk you out of investigating a real conversion problem.

Full writeup with the complete comparison table and more edge cases: TTFB vs full page load: choosing the right metric for your ecommerce infrastructure

Originally published on binadit.com

Top comments (0)