Un TTFB élevé déclenche souvent la mauvaise réponse : profiler Symfony, ajouter des workers ou réécrire une requête SQL. Ce symptôme peut pourtant avoir consommé l’essentiel du délai avant que le code applicatif ne reçoive la requête. Résolution DNS, établissement de la connexion, négociation TLS, distance jusqu’au point de présence, file d’attente au proxy et traitement à l’origine s’additionnent. Le premier octet ne dit pas spontanément laquelle de ces couches est responsable.
En pratique, le vrai sujet est qu’un chiffre agrégé ne permet pas de décider une correction. Il faut une chronologie comparable, mesurée depuis plusieurs régions et séparant première visite, connexion réutilisée et cache CDN. La composante dominante, sa variance et son lien avec une cohorte de pages déterminent l’action. Sans cette décomposition, une amélioration locale peut masquer le goulot sans réduire l’expérience réelle.
Vous allez construire cette preuve avec Navigation Timing, le panneau Network de Chrome et des métriques serveur corrélées. À l’issue, vous saurez décider entre DNS, TLS, réseau, CDN, capacité ou application. Notre expertise en SEO technique et performance applique cette méthode aux pages qui portent le crawl, les leads et le revenu, avec seuils de repli avant toute mise en production.
Qualifier un TTFB lent avant de modifier le code
Définir la population touchée plutôt qu’une moyenne globale
Commencez par formuler le symptôme avec une page, une région, un réseau, une heure et un percentile. « Le TTFB médian de la page produit est de 420 ms depuis Paris sur connexion fixe » est exploitable ; « le site est lent » ne l’est pas. Ajoutez le p75 et le p95, car une médiane correcte peut cacher une queue pénalisante pour les robots, les mobiles lointains ou les visites après expiration du cache. Segmentez aussi HTML, API et ressources : le document de navigation reste la priorité SEO.
La documentation TTFB de web.dev rappelle que la mesure comprend redirections, connexion et délai jusqu’au premier octet. Elle présente 0,8 seconde ou moins comme une cible générale utile pour une bonne expérience, mais ce seuil ne doit pas devenir une conclusion mécanique. Une page à 700 ms dominée par 500 ms de DNS nécessite un autre plan qu’une page à 900 ms dont 750 ms sont consommées dans l’application.
Vérifiez enfin que le signal correspond à un problème d’entreprise. Les pages stratégiques ont-elles un taux de crawl utile plus faible, un LCP dégradé, davantage d’abandons ou une disponibilité intermittente ? Le TTFB influence le démarrage de toutes les étapes suivantes, mais gagner 80 ms sur une page sans trafic peut être moins rentable que réduire de 400 ms une catégorie qui concentre la découverte et les conversions. L’impact ordonne la file de correction.
Lire la chronologie DNS, connexion, TLS et serveur
Calculer des intervalles sans les additionner deux fois
La spécification Navigation Timing Level 2 du W3C expose les jalons de la navigation. Le DNS correspond à domainLookupEnd - domainLookupStart. La connexion occupe connectEnd - connectStart. Pour HTTPS, la négociation sécurisée commence à secureConnectionStart et finit à connectEnd. L’attente après émission de la requête se lit entre requestStart et responseStart, puis le transfert jusqu’à responseEnd.
Ne cumulez pas connexion et TLS comme deux intervalles indépendants : la phase TLS est contenue dans la fenêtre de connexion lorsque secureConnectionStart existe. Isolez plutôt TCP ou QUIC avant sécurisation, puis TLS. De même, un DNS à zéro ne signifie pas que la résolution est instantanée : une connexion persistante, un cache navigateur ou une ressource locale peut ramener les marqueurs au même instant. La nature de la visite doit accompagner la valeur.
Les redirections précèdent parfois fetchStart et gonflent la perception totale. Une redirection inter-origines peut en outre limiter certains détails exposés pour des raisons de sécurité. Capturez donc le nombre de sauts et leur destination. Une redirection HTTP vers HTTPS puis une autre vers le domaine canonique impose parfois deux connexions ; corriger la chaîne peut gagner davantage qu’un ajustement du backend. La chronologie complète protège contre une lecture trop étroite du seul segment « Waiting ».
Capturer une preuve fiable avec DevTools
Dans Chrome DevTools, ouvrez Network, activez « Disable cache » uniquement pour le scénario de première visite et rechargez la page. La référence officielle du panneau Network détaille les colonnes et la vue Timing. Enregistrez l’URL finale, le statut, le protocole, l’adresse distante, la priorité, les en-têtes de cache et la ventilation de la requête document. Exportez un HAR expurgé des cookies et jetons si la preuve doit être partagée.
Répétez avec cache actif et connexion réutilisée. La différence sépare le coût du premier contact de celui des navigations suivantes. Puis ouvrez une fenêtre neuve ou utilisez un profil isolé afin d’éviter un DNS et une session TLS déjà chauds. Trois exécutions ne suffisent pas à établir un percentile, mais elles révèlent les écarts structurels. Pour une baseline, automatisez au moins vingt à trente mesures par région et conservez la distribution, pas seulement le meilleur run.
Le panneau indique souvent « Queueing », « Stalled » ou « Waiting for server response ». Ces libellés décrivent une phase vue par le navigateur, pas une cause serveur certaine. Une attente peut inclure un proxy, une file CDN, la distance réseau et le traitement origine. Corrélez la requête avec un identifiant propagé dans les logs du bord et de l’application. Si DevTools mesure 600 ms après requestStart mais que l’application traite en 80 ms, les 520 ms restants appartiennent au trajet ou aux intermédiaires.
Isoler une résolution DNS réellement lente
Mesurez depuis plusieurs résolveurs et régions, sur cache froid puis chaud. Une résolution initiale lente peut venir d’une délégation fragile, de serveurs faisant autorité éloignés, d’une chaîne CNAME excessive ou d’échecs entraînant des tentatives répétées. Relevez les durées, les réponses, le TTL et le chemin de délégation. Un outil de poste unique utilisant le cache de l’entreprise ne représente ni Googlebot ni les utilisateurs mobiles répartis dans le monde.
Vérifiez la cohérence entre domaines : www, domaine nu, CDN, API et domaine des assets. Chaque nouvelle origine peut déclencher résolution et connexion. Réduire une chaîne de trois CNAME peut aider une première visite, mais fusionner toutes les fonctions sur un seul domaine peut compliquer le cache, la sécurité et le déploiement. Le diagnostic doit chiffrer combien de navigations paient réellement la résolution avant de lancer une migration DNS risquée.
Exemple concret : le p95 TTFB atteint 1,4 seconde en Asie alors que l’origine répond en 120 ms. Les traces froides montrent 620 ms de DNS, avec une première autorité intermittente et deux CNAME successifs. Après correction de la délégation et rapprochement du DNS autoritatif, le segment tombe à 90 ms sans modification PHP. Le contre-test depuis Paris reste stable, confirmant que l’équipe a corrigé une anomalie régionale plutôt que déplacé le trafic.
Séparer connexion réseau et négociation TLS
Observer première connexion, reprise de session et protocole
La durée avant secureConnectionStart reflète l’établissement du transport ; la suite jusqu’à connectEnd couvre la sécurisation. Comparez une première connexion à une session reprise et notez HTTP/2 ou HTTP/3. Une distance élevée impose des allers-retours incompressibles ; une chaîne de certificats trop lourde, un contrôle de révocation ou une absence de reprise peut ajouter du travail. N’accusez pas le certificat sur la seule longueur de la phase sans reproduire par région.
Contrôlez le certificat servi par chaque point de présence, la chaîne complète, les dates, les noms et la configuration des protocoles. Une bascule CDN peut diriger une partie du trafic vers un point mal configuré, produisant une longue queue plutôt qu’une panne franche. La télémétrie doit distinguer fournisseur, POP, protocole et reprise de session. Une moyenne globale lisse précisément les cas qui coûtent le plus aux régions éloignées.
Le preconnect peut avancer DNS et connexion pour une origine tierce certaine, mais il consomme sockets, radio et énergie. L’utiliser pour dix domaines « au cas où » concurrence les ressources importantes. Réservez-le à une origine critique découverte tardivement et mesurez l’effet sur la page, pas uniquement sur la ressource. Pour le document principal, la meilleure correction reste généralement le routage, le CDN, la reprise ou la réduction des redirections.
Mesurer l’attente du premier octet côté serveur
Ajoutez un en-tête Server-Timing ou des traces distribuées pour ventiler edge, cache, proxy, file, application, base de données et services externes. Les durées doivent partager un identifiant de requête avec le navigateur. Une requête en cache au CDN peut avoir un traitement origine nul ; une réponse manquée peut payer connexion interne, génération et remplissage du cache. Regroupez donc les résultats par HIT, MISS, STALE et BYPASS.
Le TTFB côté navigateur ne se réduit pas au temps d’exécution PHP. Il inclut le chemin avant et après l’application jusqu’au premier octet reçu. Si une trace applicative dure 250 ms et DevTools en observe 700, mesurez le proxy et le bord avant d’optimiser les 250 ms. Si les deux durées suivent la même hausse, profilez les requêtes SQL, appels tiers, verrous, compilation de template et saturation du pool. La corrélation temporelle départage les couches.
Une file d’attente est souvent visible par une variance qui explose sous charge tandis que le temps CPU par requête reste stable. L’instrumentation associe entrées, sorties, dépendances et monitoring à un identifiant partagé. Une optimisation de code de 20 ms ne résout pas un p95 à deux secondes dû à une file. Le seuil de rollback peut combiner TTFB p95 supérieur à 1,2 seconde pendant dix minutes et saturation du pool au-delà de 85 %, avec des valeurs adaptées à votre capacité.
Conduire des expériences qui isolent une seule couche
Chaque expérience conserve page, contenu, région et charge aussi constants que possible. Pour tester DNS, résolvez l’hôte à l’avance ou épinglez temporairement l’adresse dans un environnement contrôlé, puis comparez sans modifier le serveur. Pour le TLS, comparez première connexion et session reprise. Pour le CDN, forcez HIT puis MISS sur un objet de test. Pour l’application, appelez l’origine depuis le même réseau interne et comparez la trace. Une variation à la fois rend le résultat défendable.
Utilisez aussi curl pour collecter des jalons reproductibles en dehors du navigateur :
curl -sS -o /dev/null \
-w 'dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} first_byte=%{time_starttransfer} total=%{time_total}\n' \
https://www.exemple.fr/page-sentinelle
Ces temps sont cumulatifs depuis le début ; calculez les intervalles avant de les comparer. Exécutez la commande depuis un hôte de mesure connu et versionnez région, heure, adresse obtenue et résultat. Un laptop sur VPN ne constitue pas un observatoire neutre.
Le contre-test referme l’hypothèse. Si épingler une adresse retire 400 ms, répétez avec plusieurs résolveurs et vérifiez que le contenu reste identique. Si le cache HIT gagne 600 ms, invalidez volontairement une page non critique pour confirmer le MISS. Si le traitement origine est stable mais le p95 externe dérive, la capacité applicative n’est probablement pas le premier levier. Documentez également les hypothèses réfutées : elles éviteront un nouveau détour lors du prochain incident.
Construire une baseline par région et type de visite
Une baseline utile comporte médiane, p75 et p95 pour au moins les régions commerciales majeures, sur visite froide, visite chaude, cache HIT et MISS. Séparez mobile et fixe si les réseaux diffèrent fortement. Conservez le volume d’échantillons et l’intervalle de confiance quand il est calculable. Les valeurs issues du laboratoire donnent la ventilation ; les données terrain montrent la fréquence et l’exposition réelle. Aucun des deux jeux ne remplace l’autre.
Créez des budgets par composante plutôt qu’un budget TTFB unique : DNS p75 sous 100 ms sur les régions cibles, connexion plus TLS sous 300 ms, traitement edge et origine sous 400 ms pour un MISS, par exemple. Ces seuils sont des points de départ internes. Leur intérêt est d’attribuer immédiatement une dérive au bon propriétaire. Si le total dépasse le budget mais chaque composante respecte sa limite, examinez redirections et intervalles non couverts avant de durcir arbitrairement tous les budgets.
Reliez la baseline aux templates. Une fiche produit peut payer un appel de stock absent de la page éditoriale ; une catégorie peut générer une requête facettée coûteuse. Le tableau de bord doit afficher TTFB et composantes par route normalisée, statut, cache et release. La lecture du pilotage Core Web Vitals et performance front permet ensuite de relier ce premier octet au LCP et à l’expérience complète.
Choisir la correction selon la composante dominante
- DNS dominant : corriger délégation, disponibilité autoritative, chaîne CNAME et proximité, puis vérifier froid et chaud.
- Connexion dominante : rapprocher le point de présence, réduire les redirections et contrôler routage, pertes et protocole.
- TLS dominant : vérifier chaîne, reprise de session, configuration du bord et cohérence entre POP.
- Cache dominant : revoir clé, TTL, purge, variation par cookie et stratégie stale sans servir un contenu incorrect.
- File dominante : ajuster capacité, concurrence et backpressure avant de gagner quelques millisecondes de CPU.
- Application dominante : profiler requêtes, services tiers, sérialisation et génération seulement après preuve corrélée.
Déployez la correction sur un canari régional ou un petit pourcentage de trafic. Comparez exactement les mêmes segments et conservez les garde-fous : erreurs, certificats, cohérence de cache, contenu et conversion. Le rollback est déclenché par une régression mesurable, pas par une impression. Une amélioration du TTFB accompagnée de réponses périmées ou d’une baisse de personnalisation correcte n’est pas un succès.
Pour qui arbitrer cache, sécurité et proximité réseau
Augmenter le TTL améliore les HIT mais retarde la mise à jour des prix, stocks ou corrections. Servez les pages stables plus longtemps, séparez les fragments volatils et automatisez une purge ciblée. Le compromis se mesure par fraîcheur acceptable et coût du MISS. Un TTL global très court peut transformer chaque pic de crawl en charge origine ; un TTL trop long peut exposer une donnée commerciale fausse.
La terminaison TLS au bord réduit la distance, mais impose une gouvernance des certificats, clés et en-têtes vers l’origine. Centraliser à l’origine simplifie certains contrôles et augmente les allers-retours. Choisissez selon la géographie du trafic, le modèle de menace et la capacité d’exploitation. Contre-intuitivement, un CDN n’améliore pas automatiquement le TTFB : un mauvais routage, un cache systématiquement contourné ou un POP lointain peut ajouter une couche.
Enfin, préconnecter et multiplier les origines peut accélérer un scénario ciblé tout en dégradant les appareils contraints. Priorisez le document, les ressources critiques et les origines dont l’utilisation est certaine. Toute optimisation réseau doit passer un test complet de rendu et de conversion. Le budget n’est pas un concours de millisecondes isolées ; il protège la capacité du visiteur et du robot à recevoir rapidement une réponse correcte.
Erreurs fréquentes dans un diagnostic de TTFB
Évitez de mesurer uniquement depuis le bureau, de confondre temps cumulatifs et intervalles, de profiler l’application avant de comparer les traces, ou de présenter le meilleur run comme résultat. N’activez pas « Disable cache » pour une mesure censée représenter les visites récurrentes. Ne comparez pas une page HIT et une page MISS sans le signaler. Enfin, n’interprétez pas un DNS à zéro comme une résolution miraculeuse : connexion et cache peuvent avoir supprimé cette phase.
Une autre erreur consiste à corriger simultanément DNS, CDN et backend. Le total peut progresser sans que l’équipe sache quel changement conserver ni lequel a créé une régression. Séquencez les lots et gardez un témoin. À l’inverse, ne refusez pas une action d’urgence lorsque la capacité s’effondre : appliquez un mode dégradé réversible, puis reprenez l’analyse causale sur une fenêtre stable.
Questions fréquentes sur DNS, TLS et TTFB
Le TTFB mesure-t-il seulement le backend ?
Non. Vu du navigateur, il inclut les étapes menant au premier octet : redirections, DNS, connexion, sécurisation, réseau, intermédiaires et traitement. Les traces serveur isolent ensuite la part interne. Il faut corréler les deux horloges et un identifiant de requête pour éviter une attribution abusive.
Pourquoi DNS vaut-il parfois zéro ?
Le navigateur peut réutiliser une connexion, consulter son cache ou récupérer une ressource locale. Navigation Timing fixe alors certains marqueurs au même instant. Mesurez une visite réellement froide dans un profil isolé pour connaître le coût initial, puis une visite chaude pour estimer sa fréquence.
Quel percentile doit piloter la correction ?
Le p75 décrit une expérience largement rencontrée ; le p95 révèle les queues et incidents régionaux. Pilotez les deux avec la médiane et le volume. Un p95 extrême sur dix mesures ne vaut pas une distribution sur plusieurs centaines de navigations, mais il peut signaler une région à examiner.
Quand optimiser le code applicatif ?
Lorsque la trace montre que l’application consomme une part dominante et corrélée du délai, notamment sur cache MISS, et que réseau, proxy et file sont bornés. Profilez alors le chemin exact de la route lente. Ne généralisez pas le résultat d’une page à tous les templates.
Articles complémentaires à lire ensuite
Après le premier octet, poursuivez avec les Core Web Vitals et la performance front pour mesurer l’affichage utile. Pour intégrer ces budgets par composante à la livraison, appuyez-vous sur la CI/CD et la non-régression SEO technique.
Selon le template, un rendu SSR, SSG ou ISR change le rôle du cache et de sa revalidation. L’instrumentation QA relie dépendances, monitoring, seuil et rollback à chaque route et à son canonical, afin que la baisse du TTFB ne serve jamais une version obsolète aux robots.
Plan d’action TTFB en douze étapes
- Nommer les pages, régions, réseaux et percentiles qui représentent le risque commercial et SEO.
- Tester statut, redirections, protocole, cache, adresse distante et chronologie complète.
- Contrôler séparément visite froide, connexion réutilisée, cache HIT et cache MISS.
- Calculer DNS, connexion, TLS, attente et transfert sans compter deux fois les intervalles imbriqués.
- Corréler chaque navigation avec le bord, le proxy, l’application et les dépendances.
- Construire une baseline médiane, p75 et p95 par région et template.
- Formuler une hypothèse sur la composante dominante et une expérience qui ne change qu’elle.
- Exécuter un contre-test et consigner aussi les causes réfutées.
- Choisir la correction correspondant à DNS, transport, TLS, cache, file ou application.
- Déployer en canari avec garde-fous de contenu, erreur, fraîcheur et conversion.
- Jouer le rollback puis mesurer à nouveau avec les mêmes cohortes.
- Clore lorsque la composante baisse durablement sans déplacer le coût vers une autre couche.
- À valider : la composante dominante baisse sur les mêmes régions et percentiles.
- À replier : le cache, la fraîcheur ou une route critique régresse après le canari.
Conclusion : optimiser la couche démontrée par la chronologie
Le TTFB est un résultat, pas un diagnostic. Navigation Timing et DevTools permettent de séparer résolution, connexion, TLS et attente, à condition de documenter cache, région et type de visite. La corrélation avec les traces du bord et de l’origine transforme ensuite une barre « Waiting » en composantes attribuables.
Une bonne correction cible la part dominante et conserve un témoin : délégation DNS, routage, reprise TLS, cache, capacité ou chemin applicatif. Le canari contrôle en même temps fraîcheur, erreurs, contenu et conversion. Ce protocole évite de gagner quelques millisecondes sur le backend tandis qu’une autre couche consomme l’essentiel du délai.
Pour établir vos budgets, instrumenter les pages qui comptent et sécuriser les changements réseau ou applicatifs, faites appel à notre accompagnement expert en SEO technique. Nous relions la chronologie à l’impact organique et commercial afin que chaque optimisation de latence produise une preuve, un responsable et un résultat durable.