Test velocidad de carga de sitio web en terminal Linux
Test velocidad de carga de sitio web en terminal Linux

Cómo probar velocidad de carga de sitio web en terminal Linux

El tiempo de respuesta de un sitio web puede tener un gran impacto en la experiencia del usuario, y eres un desarrollador web, o simplemente un administrador de servidor que es particularmente responsable de organizar las piezas juntas, entonces tienes que hacer un punto para que los usuarios no se sientan frustrados mientras acceden a tu sitio – así que realmente hay una “necesidad de velocidad“.

Esta guía te mostrará cómo testear o medir el tiempo de respuesta de un sitio web desde la línea de comandos de Linux.

Aquí, te enseñaré cómo verificar el tiempo en segundos, que hace falta para:

  • Realizar la resolución de nombres.
  • Conexión TCP al servidor.
  • Comenzar la transferencia de archivos.
  • El primer byte a transferir.
  • Operación completa.

Además, para los sitios habilitados para HTTPS, también veremos cómo probar el tiempo, en segundos, que se necesita: para una redirección, y para que se complete la conexión SSL con el servidor. Suena bien, está bien, vamos a empezar.

1. Probar velocidad de carga para sitios HTTP

cURL es una poderosa herramienta de línea de comandos para transferir datos desde o hacia un servidor, utilizando protocolos como FILE, FTP, FTPS, HTTP, HTTPS y muchos otros. En la mayoría de los casos, se usa como un descargador (downloader) de línea de comandos o para verificar encabezados HTTP. Sin embargo, aquí describiré una de sus funcionalidades menos conocidas.


cURL tiene una opción útil: -w para imprimir información en la salida estándar después de una operación completada. Tiene algunas variables que podemos usar para probar los diferentes tiempos de respuesta mencionados anteriormente, de un sitio web.

Usaremos algunas de las variables relacionadas con el tiempo, que se pueden pasar en un formato dado como una cadena literal o dentro de un archivo.

Así que abre tu terminal y ejecuta el siguiente comando:

curl -s -w '\nTiempo de respuesta para : %{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null http://www.google.com
Tiempo de respuesta para sitio web HTTP con cURL
Tiempo de respuesta para sitio web HTTP con cURL

Las variables en el formato anterior son:

  • time_namelookup: tiempo, en segundos, que tomó desde el inicio hasta que se completó la resolución del nombre.
  • time_connect: tiempo, en segundos, desde el inicio hasta que se completó la conexión TCP al host remoto (o proxy).
  • time_pretransfer: tiempo, en segundos, desde el inicio hasta que la transferencia de archivos estaba a punto de comenzar.
  • time_starttransfer: tiempo, en segundos, desde el inicio hasta que el primer byte estaba a punto de ser transferido.
  • time_total: tiempo total, en segundos, que duró la operación completa (resolución de milisegundos).

Si el formato es demasiado largo, puedes escribirlo en un archivo y usar la siguiente sintaxis para leerlo:

  • Archivo: formato.txt:
\nTiempo de respuesta para :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n
  • Sintaxis:
curl -s -w "@formato.txt" -o /dev/null http://www.google.com
Tiempo de respuesta para sitio web HTTP desde terminal
Tiempo de respuesta para sitio web HTTP desde terminal

En el comando anterior, el flag:

  • -s : Le dice a curl que trabaje en silencio.
  • -w : Imprime la información en stdout.
  • -o : Usado para redirigir la salida (aquí descartamos la salida redirigiéndola a /dev/null).

2. Probar velocidad de carga para sitios HTTPS

Para los sitios HTTPS, puedes ejecutar el siguiente comando:


curl -s -w '\nTiempo de respuesta para : %{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.google.com
Tiempo de respuesta para sitio web HTTPS con cURL
Tiempo de respuesta para sitio web HTTPS con cURL

En el formato anterior, las nuevas variables de tiempo son:

  • time_appconnect: tiempo, en segundos, que tomó desde el inicio hasta que se completó la conexión/intercambio de SSL al host remoto.
  • time_redirect: tiempo, en segundos, que tomó todos los pasos de redireccionamiento, incluyendo búsqueda de nombre, conexión, transferencia previa y transferencia antes de que se iniciara la transacción final; calcula el tiempo total de ejecución para redirecciones múltiples.

También puedes escribirlo en un archivo y usar la siguiente sintaxis para leerlo:

  • Archivo: formato.txt:
\nTiempo de respuesta para : %{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n
  • Sintaxis:
curl -s -w "@formato.txt" -o /dev/null https://esgeeks.com
Tiempo de respuesta para sitio web HTTPS desde terminal
Tiempo de respuesta para sitio web HTTPS desde terminal

3. Puntos importantes a tener en cuenta

  • Notarás que los valores de tiempo de respuesta siguen cambiando (debido a varios factores) a medida que realizas diferentes pruebas, por lo tanto, es recomendable recopilar varios valores y obtener una velocidad promedio.
  • En segundo lugar, a partir de los resultados de los comandos anteriores, puedes ver que acceder a un sitio web a través de HTTP es mucho más rápido que a través de HTTPS.

Para más información, revisa la página del manual de cURL:

man curl

Por último, pero no menos importante, si los resultados no son satisfactorios, entonces tienes que hacer algunos ajustes en tu servidor o dentro del código.

¡Eso es todo! Ahora ya sabes cómo probar el tiempo de respuesta del sitio web desde la línea de comandos. Puedes hacer preguntas a través del formulario de comentarios a continuación.

¿Te ha gustado este artículo? ¡Dale a Compartir! Sígue este blog en su fanpage de FacebookTwitterInstagram y/o YouTube para que no te pierdas del mejor contenido informático y hacking!

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda