performance - online - google dns
¿Cómo reducir el "Tiempo para el primer byte" en mi sitio web? (7)
Si va a la página de inicio, verá que antes de que se cargue la página, el navegador espera ...
¿Cómo podría reducir el tiempo para el primer byte ?
Creo que depende de las herramientas que use para medir este tipo de datos. Cuando utilicé webpagetest.org, el tiempo para el primer byte fue de 292 ms, lo que es bueno. Tal vez debería volver a ejecutar su cheque?
Parte de este número se reduce a dónde se encuentra en relación con el servidor, cuantos más saltos tenga que hacer, mayor será este número. También tiene que ver con el hardware y la conectividad del servidor; por lo general, esto es algo que realmente no se puede controlar. Es posible que desee buscar en otros hosts, pero primero realizaría algunas pruebas más: haga que sus amigos prueben su sitio en webpagetest.org (o similar) y vea qué valores obtienen.
El retraso se debe a la secuencia de comandos del lado del servidor que genera la página de índice.
Con un vistazo rápido a su sitio web, puedo adivinar que el sitio web está usando PHP. Por lo tanto, el retraso se debe a algo contenido en su script index.php.
El alojamiento, la red, el hardware y el servidor HTTP (Apache) definitivamente no son la causa. Su gráfico muestra que los archivos estáticos (.css, .js, etc.) se entregan bastante rápido.
Por lo tanto, para obtener más detalles, debe proporcionar más información (la ejecución lenta de index.php puede tener muchas razones diferentes ...).
He lidiado con un enorme TTFB (8-10 segundos) y busco desesperadamente una solución. Después de buscar y buscar sin éxito, decidí echar un vistazo más de cerca a mi código PHP y los índices de base de datos .
La solución de búfer de salida redujo un poco mi TTFB pero no lo suficiente. Tuve quejas de los usuarios otra vez.
El problema real es el tiempo de procesamiento del servidor (consultas de base de datos y bucles de PHP) y la fuente HTML que generó .
Ahora, sugiero tomar estos pasos:
- Eche un vistazo a los índices de la base de datos. Asegúrese de usar los índices adecuados para " todos los datos " que devuelva . Use Explain para verificar si se usa su índice, cuál se usa y cómo se usa.
En mi caso, devuelvo una serie de objetos y verifiqué mis índices para mi tabla principal. Todos se veían bien, pero olvidé que mis objetos incluyen otros objetos más pequeños de otras tablas. Estas tablas no fueron correctamente indexadas. De ahí mi enorme TTFB. Solo paso de 8 segundos a 2 segundos y solo agrego el índice adecuado a las tablas correctas.
- Echa un vistazo a tu código PHP.
Es posible que tenga un bucle en el bucle que puede ser lento para procesar. Deberías usar un framework PHP MVC. Tu elección. No nombraré a ninguno.
Evita tal código incluso si está funcionando. Lo sé, algunos programadores de PHP4 dirán que es bueno. :)
$query = "SELECT something FROM table";
$result = mysqli_query($mysqli, $query);
if($result) {
while($row = mysqli_fetch_assoc($result)) {
$query = "UPDATE other_table SET something_else = "''.$row[''something''].''";
$result2 = mysqli_query($mysqli, $query)
}
}
- Preste atención al código HTML generado .
Por ejemplo, generas código Javascript a través de bucles PHP . La lógica está bien. El tiempo de carga no es. Digamos que regresa 100 filas en una tabla. Para cada fila solo tiene 5 acciones posibles (cambiar estado, editar, eliminar, duplicar, imprimir). Eso significa que 5 diálogos jQuery (divs HTML, con controles) y 5 scripts JS se multiplican por 100 filas = miles de líneas de código que se escribirán en esa página. Mi caso, más de 32.000 líneas en mi código HTML de 4MB. Acaba de pasar de 2 segundos a menos de 1 segundo después de haber colocado todos estos cuadros de diálogo en las funciones JS adecuadas.
En conclusión , (si todavía estás leyendo esto :)) no busques algunas funciones mágicas para reducir tu TTFB. Busca tu código y tu base de datos.
PD: Algunas otras cosas ayudarán a aumentar la velocidad: almacenamiento en caché y compresión del navegador, uso de CDN, minificar HTML, CSS y JS, diferir el análisis de JavaScript, combinar imágenes en sprites CSS, etc. Utilice la velocidad de la página de Google y las auditorías de Google para obtener más sugerencias de rendimiento. .
Los errores en .htaccess también pueden aumentar considerablemente el TTFB.
Tuve que eliminar algunas líneas de código antiguas dejadas por Wordfence para resolver mi TTFB de 8-12 segundos (ahora 500ms).
Nadie puede darle una respuesta detallada sin que usted muestre el código responsable de generar el contenido del sitio, porque ahí es donde está el retraso.
Sin embargo, dado que el sitio utiliza php, lo más probable es que esté utilizando el búfer de salida.
Dado que ese es el caso, el siguiente código dará un TTFB de (latencia de red +) 2s:
<?php ob_start(); ?>
<!doctype html>
<html>
<head>
<title>Slow to Load, Slow to finish</title>
</head>
<body>
<?php
sleep(2); // Simulate slow processing
echo "Body"
?>
</body>
</html>
Mientras que esto te dará un TTFB de (latencia de red +) 0s:
<!doctype html>
<html>
<head>
<title>Fast to load, Slow to finish</title>
</head>
<body>
<?php ob_start(); ?>
<?php
sleep(2); // Simulate slow processing
echo "Body"
?>
</body>
</html>
El tiempo para cargar la página completa es el mismo en ambos casos, solo cuando el retraso se modifica. Si está específicamente enfocado en reducir la TTFB (por qué), eso le dará suficiente información para investigar más a fondo.
IMPORTANTE : hay muchos cambios en el frontend que debes hacer antes de centrarte en TTFB.
Probablemente la solución más efectiva es usar un CDN con capacidades de almacenamiento en caché de HTML nativo (estático y dinámico). TTFB se basa en su capacidad para procesar rápidamente el HTML en el servidor de origen; puede omitir el tiempo de procesamiento al entregar una copia en caché nueva de CDN.
Escribí una publicación sobre esto recientemente, que analiza los factores de retardo TTFB y el tiempo de carga promedio de diferentes recursos (según los datos recopilados en las sesiones de 1B). Puede resultarle útil: http://www.incapsula.com/the-incapsula-blog/item/809-using-cdn-to-improve-seo-and-ttfb
Puedes usar los servicios cloudflare y cdn para TTFB. Si no acepta los comentarios adecuados, cambie su servidor host.