TTFB (Time to First Byte) is a performance metric that measures how long it takes for a browser to receive the first byte of data from a server after making a request. While not a Core Web Vital itself, TTFB directly affects LCP and overall page load performance.
What TTFB Measures
TTFB includes three main components: the time to establish a connection (DNS lookup, TCP connection, TLS handshake), the time for the request to travel to the server, and the time for the server to process the request and begin sending a response.
A high TTFB indicates problems before any content rendering begins. Since LCP cannot start until the browser receives HTML, slow TTFB directly delays all subsequent loading stages.
TTFB Thresholds
Google recommends these thresholds for TTFB:
- Good: 800 milliseconds or less
- Needs Improvement: Between 800 and 1800 milliseconds
- Poor: Greater than 1800 milliseconds
These thresholds apply to the 75th percentile of page loads. For ecommerce sites, targeting TTFB under 200ms provides a better foundation for fast page loads.
Common Causes and Solutions
Slow Server Processing: Complex database queries, inefficient code, or underpowered servers increase response time. Address this by improving server-side code, adding database indexes, or upgrading server resources.
No Usage: Requests travel long distances to reach the origin server. A CDN caches content at edge locations closer to users, reducing network latency.
Missing Headers: The server processes each request from scratch. Implement proper cache headers so browsers and CDNs can serve cached responses for repeat visits.
Blocking Third-Party Requests: Some servers wait for third-party services before responding. Move these operations to happen after the initial response or make them asynchronous.
Measuring TTFB
Chrome DevTools shows TTFB in the Network panel under the Timing tab for each request. WebPageTest provides detailed TTFB breakdowns showing each component separately. Google Search Console includes TTFB data in the report, though it focuses more on LCP, INP, and .
