Time to First Byte (TTFB) : Définition, Causes, Optimisation
TTFB mesure le temps entre la requête et le premier byte de réponse. Plafonne LCP. ≤ 800ms = bon. Affecté par serveur, DB, réseau, CDN.
Qu'est-ce que Time to First Byte (TTFB) ?
Time to First Byte (TTFB) est le temps que met le navigateur à recevoir le premier byte d'une réponse HTTP après avoir envoyé la requête. Il capture tout ce qui se passe avant que tout rendering puisse commencer : DNS lookup, handshake TCP, négociation TLS, traitement serveur, queries database et round-trip réseau.
TTFB est fondamental pour la performance perçue — chaque métrique subséquente (LCP, FCP, TTI) en est bornée.
Phases TTFB
| Phase | Ce qui se passe | Share typique |
|---|---|---|
| DNS lookup | Résoudre domaine en IP | 0-100ms |
| Connexion TCP | Handshake 3-way | ~1 RTT |
| Négociation TLS | Handshake SSL | 1-2 RTTs |
| Requête envoyée | Requête HTTP | Trivial |
| Traitement serveur | App + database | 0-2000+ ms |
| Premier byte arrive | Transfer réseau back | 1 RTT |
Thresholds TTFB
| TTFB | Rating |
|---|---|
| ≤ 800ms | Bon |
| 800ms - 1800ms | Besoin amélioration |
| > 1800ms | Pauvre |
Comment mesurer TTFB
API JavaScript
new PerformanceObserver((list) => {
for (const entry of list.getEntriesByType('navigation')) {
const ttfb = entry.responseStart - entry.requestStart;
console.log('TTFB:', ttfb, 'ms');
}
}).observe({ type: 'navigation', buffered: true });cURL
curl -w "time_starttransfer: %{time_starttransfer}\n" -o /dev/null -s https://example.comOutils
| Outil | Type |
|---|---|
| Lighthouse / PageSpeed Insights | Lab |
| Chrome DevTools Network | Lab |
| WebPageTest | Lab depuis plusieurs régions |
| web-vitals.js | RUM |
| Search Console CWV report | Field |
| CrUX Dashboard | Field, public |
| Logs serveur | Server-side, juste phase app |
Optimisations TTFB courantes
1. CDN avec edge caching
Edge servers répondent depuis RAM en < 50ms. Plus grand win TTFB.
2. Cacher HTML dynamique
Pages SSR peuvent souvent être cachées 60s-5min au CDN.
3. Optimiser queries database
Queries N+1 lentes sont le killer TTFB server-side #1.
4. Utiliser HTTP/2 ou HTTP/3
Élimine head-of-line blocking.
5. TLS 1.3 pour handshake plus rapide
1 RTT au lieu de 2 pour nouvelles connexions.
6. Reuse de connexion
Keep-alive + multiplexing HTTP/2.
7. Origins geo-distribués
Origin en us-east-1, utilisateurs à Sydney = 200ms+ réseau seul.
8. Pre-render ou static generate
Si page n'a pas besoin d'être dynamique.
TTFB et Core Web Vitals
- LCP commence à mesurer depuis la requête, donc TTFB est inclus dans LCP
- Si TTFB est 1s, LCP est au moins 1s
- Améliorer TTFB de 500ms améliore typiquement LCP de ~500ms
Pièges TTFB courants
- Origin dans une région, utilisateurs mondialement.
- SSR sans caching.
- Queries DB N+1.
- Calls API external synchrones.
- Cold-start fonctions serverless.
- Middleware lourd.
- Resumption TLS désactivé.
- HTTP/1.1 only.
FAQ : Time to First Byte
Quel est un bon TTFB ?
≤ 800ms au percentile 75 per Google.
TTFB est-il un Core Web Vital ?
Non — INP, LCP et CLS le sont. Mais TTFB est métrique diagnostique recommandée.
Comment CDN améliore-t-il TTFB ?
Edge servers cachent réponses près des utilisateurs.
Pourquoi mon TTFB est-il différent en lab vs field ?
Tests lab utilisent réseaux contrôlés ; field mesure vrais utilisateurs.
HTTPS hurts-t-il TTFB ?
Légèrement — TLS ajoute ~1-2 RTTs. Mais TLS 1.3 minimise coût.
Comment améliorer TTFB sur page dynamique ?
Cacher au CDN, optimiser queries DB, déplacer à edge SSR.
Différence entre TTFB et server response time ?
Server response time = juste phase app/DB. TTFB = réseau + phase app.
Testez TTFB depuis vraies régions avec LoadFocus
LoadFocus exécute Lighthouse + load tests depuis 25+ régions globales. Inscrivez-vous sur loadfocus.com/signup.
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus — la plateforme même qui propulse tout ce que vous venez de lire.