¿Qué es el Time To First Byte (TTFB)?

El Time To First Byte (TTFB) o lapso de tiempo hasta la entrega del primer byte es el tiempo que tarda el servidor en proporcionarnos el primer byte desde que realizamos la petición. Una petición puede ser acceder a un sitio web, rescatar datos de una web, obtener el valor de una consulta a la base de datos, etc. Pero es verdad que el time to first byte está más relacionado con la carga de la web.

¿Cuándo se produce el time to first byte (TTFB)?

Ya te he explicado que es el time to first byte, ahora quiero que entiendas cuando se produce o se mide. Cuando tú accedes a una página web se produce un transcurso de peticiones y respuestas que a simple vista no las ves. Pero hasta que se te entrega la primera porción o byte de información ocurren estas cosas:

  1. Me interesa acceder a marca.com por lo que abro mi navegador y pongo en la URL: https://marca.com. Aún no le hemos dado a “Enter” para ejecutar la petición.
  2. En el momento que damos “Enter”, nuestro proveedor de Internet hace una llamada a las DNS del dominio de marca.com. Ahí ya estamos consumiendo tiempo.
  3. Los servidores DNS del dominio marca.com dicen que la web se encuentra en 193.110.128.82. Seguimos consumiendo tiempo.
  4. Nos vamos entonces a 193.110.128.82 a “llamar a la puerta“. El servidor puede estar ajetreado y hasta que nos atiende el tiempo de respuesta sigue creciendo.
  5. Por fin el servidor nos atiende y “te pregunta que quieres (¿Cuál es tu petición?)”. El tiempo de espera, nuevamente sigue creciendo.
  6. Una vez procesa nuestra petición, con su mecanismo de elaboración de respuesta, nos lo entrega. Justo en ese momento nos hace entrega del primer byte.

Desde que pulsamos la tecla “Enter” para acceder a marca.com han pasado muchas cosas, pero todo ello en segundos gracias a la magia de las telecomunicaciones. Entonces desde que iniciamos la petición hasta que el servidor nos dio la primera porción de información es lo que se denomina time to first byte.

Representación gráfica del time to first byte

Time to first byte infografía

En esta gráfica tenemos el ejemplo de un time to first byte desde un servidor de Suecia a un servidor de Francia. Es decir, el servidor desde que ha iniciado la petición en Suecia hasta que el servidor en Francia le ha dado un fragmento de código ha tardado 1,59 segundos. En concreto ha tardado:

  • Ver donde apunta un dominio: 57 milisegundos
  • Penetrar la capa de SSL del servidor para establecer conexión segura: 381 minilegundos
  • Esperar al servidor de Francia a que atienda a la petición de Suecia: 407 milisegundos
  • Tiempo de espera mientras el servidor procesa la petición: 581 milisegundos
  • Tiempo de espera hasta que el servidor da una respuesta: 162 milisegundos

Time To First Byte: 1,59 segundos

De ahí en adelante, empezarán a cargar elementos como HTML, JavaScripts, CSS, imágenes, consultas a la base de datos, etc… El tiempo que ha tardado en total la web sumando el time to first byte + los elementos y procesamiento: 1,84 segundos.

Time To First Byte (1,59) + Elementos (0,25)  : 1,84 segundos

¿Qué conclusión sacamos con este resultado?. Es sorprendente ver que ha tardado casi 5 veces más en darnos el primer byte que el procesar toda la web incluyendo su procesamiento. Esto se debe a que la optimización a nivel web está increíblemente bien pero la resolución de servidores no es muy buena.

Necesitamos optimizar el time to first byte y seguramente la web cargue en menos de medio segundo o incluso menos aún.

¿Afecta el time to first byte al posicionamiento web (SEO)?

¡Por supuesto! Muchísimo además. Piensa que Google tiene a disposición un ejercito de servidores para rastrear las webs del mundo y que tú eres una de esas webs. Google te va a asignar un Crawl Budget (Presupuesto de rastreo) y si tu web tarda más en cargar de lo que te tiene asignado Google tienes un problema ya que jamás verá que hay en tu web. Se irá antes de ver que hay en tu web y no te indexará, ergo entonces ¡Tu posibilidad de acceder a Google es muy baja!.

¿Cómo puedo reducir el tiempo del time to first byte?

A diferencia de la optimización web, el time to first byte es un concepto que va relacionado o ligado con los tiempos de respuesta de los servidores. Estonces hoy te voy a enseñar a como optimizar el tiempo de respuesta del primer byte para tu WordPress. Estos son los trucos o métodos para optimizar wordpress y su TTFB:

Elige un proveedor de alojamiento web muy bueno

Si recuerdas bien en la representación gráfica anterior vimos como el tiempo de espera hasta que el servidor aceptaba nuestra solicitud más el tiempo que lo procesaba y entregaba era de: 1,15 segundos (407 ms + 587 ms + 162 ms) desde un servidor de Suecia. Esta parte la podemos optimizar contando con:

  1. Que el servidor cuente con discos SSD y buena memoria RAM para recibir solicitudes y procesarlas más rápido frente a servidores con discos HDD (Destinados a almacenamiento más que a procesamiento).
  2. Que el servidor no cuente con sobrecargas. Un servidor no deja de ser un “robot” que da respuestas a solicitudes. Cuantas más solicitudes tenga, más tiempo tarda en responder. Esto es lo que significa hacer overselling. Vender hasta la último megabyte de memoria RAM y megabyte en disco duro. Sobrecargas el servidor y este tiene que dar solución a todos. Por eso los tiempos de respuesta se incrementan.
  3. No escojas un servidor que esté muy lejano a tu centro de operaciones. Es decir, si tu negocio está en Madrid pero tienes los servidores en Suecia el tiempo de latencia es superior al de que si un servidor estuviese en tu propio país. Intenta alojar tu web en un servidor lo más cercano a tu núcleo de operaciones o a la mayoría de tráfico web que te visita.
  4. En seguimiento del punto anterior, si el servidor está muy lejos, la resolución de las DNS será mucho más alta ya que los saltos que tiene que hacer nuestro ISP hasta dar con el servidor que te pueda resolver las DNS es mayor. Por suerte los servidores DNS cachean las solicitudes y el primer salto que da el ISP ya puede encontrar la respuesta si alguien antes pidió esa solicitud en el pasado.
  5. Si el servidor cuenta con un firewall muy estricto puede que se incremente el tiempo de respuesta.

TIP: Como elegir el mejor hosting para tu página web

Haz uso de un sistema de caché

Esto es algo de lo que vamos y venimos hablando desde hace mucho tiempo en esta web. Contar con un sistema de cacheado reduce los tiempos de respuesta enormemente. En este artículo te explico que es la caché, que es un CDN y como instalarlo en tu WordPress.

Optimiza la base de datos, los archivos y las imágenes

Entre otros elementos, lo que más hace tardar el tiempo de respuesta es el procesamiento de archivos como las imágenes, CSS, JavaScripts, etc… Por eso si trabajas de forma óptima la minificación y combinación de archivos CSS, JS y HTML (Que ya lo veremos en otros artículos) conseguirás una carga muy óptima por tu parte. Quizá sea hasta incluso más difícil la optimización a nivel web que a nivel servidor.

También es fundamental optimizar la base de datos para que el tiempo de respuesta entre petición del cliente y respuesta del servidor sea mucho menor.

No abuses de la instalación de plugins

Si puedes conseguir un objetivo sin el uso de plugins hazlo puesto que estos consumen memoria y espacio. Muchas veces instalamos plugins para todo, plugin arriba, plugin abajo y al final sobrecargamos la web lo cual es contraproducente para la carga de la web y conseguir bajar los tiempos de carga del servidor.

La versión de PHP es muy antigua

Es probable que estés usando una versión de PHP antigua, por ejemplo, la versión 5.2 y WordPress necesita o puede trabajar bajo nuevas versiones como la 7.X. Se ha demostrado que trabajar bajo versiones actuales de PHP puede hacer que tu web cargue un 70% más rápido. Saber más sobre las versiones de PHP.

Como medir el time to first byte con herramientas gratuitas

A continuación te voy a enseñar herramientas gratuitas que te ayudarán a medir el impacto de tu web y medir el tiempo de respuesta hasta que el servidor te proporciona la primera porción de información/respuesta.

Pingdom Tools

Time to first byte pingdom tools

Pingdom Tools es mi herramienta favorita porque es gratuita, muy rápida y te detalla muy bien de forma desglosada en que pierde tu servidor en proporcionar una respuesta. Solo tienes que especificar una URL que quieras analizar, sea un dominio o una página en concreto dentro de una web y seleccionar desde que país quieres hacer la medición. La única pega que le podemos poner es la poca lista de servidores desde el que se puede hacer la medición y la cantidad de solicitudes de gente que hace uso de esta herramienta provocando una cola de espera muy larga. Pero para ser gratis, ¿Qué más podemos pedir?

Pingdom Toolshttps://tools.pingdom.com/

GTMetrix

Time to first byte GTmetrix

Otra de mis favoritas por su facilidad de uso. Al igual que Pingdom Tools esta te muestra los elementos que hacen que la carga de la web se vea lastrada. Te marca por puntos cada elemento como el optimizado de CSS, el Keep Alive, minificación de CCS, HTML, JavaScript, etc. La única pega es que siempre hace la medición desde Canadá por lo que el tiempo de respuesta en computo global no es tan acertado como si lo hiciesemos con pingdom que tenemos la posibilidad de seleccionar Suecia para hacer la medición.

GTMetrixhttps://gtmetrix.com

Byte Check

Time to first byte ByteCheck

Esta herramienta está especializada para su fin, es una herramienta que mide únicamente el first byte y nada más. La pega es que no sabemos desde que país y servidor está haciendo la medición. Yo no la suelo usar mucho, yo soy un enamoradizo de Pingdom Tools.

Byte Checkhttp://www.bytecheck.com

Una cosa que debes tener en cuenta sobre las herramientas y el tiempo de carga

No todas las herramientas dan el mismo valor entre ellas y además, cada una de ellas de por sí solas retorna un valor difernete cada análisis. ¿Por qué pasa esto? Cuando hacemos una petición a un servidor, has visto que responde en función de la disponibilidad del servidor al que hace la consulta entonces cada vez te retornará un valor diferente pero siempre coherente y parecido a anteriores.

Puede que alguna vez sean muy dispares por la carga de la web pero si todo va bien y el servidor no está muy sobrecargado, los tiempos de respuesta serán parecidos con valores arriba, valores abajo.

Valores óptimos en los que se debe encontrar esta métrica

El time to first byte es una medida en milisegundos y se considera que:

  • Por debajo de los 200 ms está perfecto según Google
  • Por encima de los 200 y por debajo o igual a los 500 sería lo idóneo
  • Cuando el TTFB supera el segundo (1000 ms) se considera contraproducente
  • Si supera los dos segundos (2000 ms) es malísimo, algo estás haciendo mal

IMPORTANTE: No confundir TTFB con el tiempo de carga de la web en total

Conclusiones para optimizar el tiempo de carga de una web

Siempre es bueno dejar estos temas a gente profesional del sector pues te enfrentas a un proceso algo tedioso que puede hacer que tu web deje de funcionar (Puedes provocar errores 500 o 400). Arriba has visto un resumen de los pasos que hay que hacer para optimizar el time to first byte, en los próximos artículos vamos a ver punto por punto cada uno de ellos.

Trabajar con WordPress ayuda y simplifica mucho el proceso, pero siempre existe el riesgo de que algo vaya mal y toda tu web quede inutilizada. ¿Te imaginas tu web con más de 10.000 clientes caída? ¿Quieres perder visitas y ventas por no haber dejado el oriyecto en manos de profesionales?. Ponte en contacto con los técnicos de soporte de Raiola Networks, están disponibles las 24 horas del día los 365 días del año. Llámales ahora y haz que tu servidor cargue más rápido que la velocidad de la luz.