Tengo un sitio web que parece cargar muy lentamente. Cuando ejecuto una prueba de velocidad, veo que parece haber un espacio de 6 segundos antes de que se cargue el HTML. Las imágenes y los scripts JS se cargan muy rápido después de ese punto.
Puede ver en la imagen debajo de las barras amarillas de "tiempo de espera":
Esto parece ser constante sin importar el contenido HTML en la página.
Este sitio está utilizando un CMS (ModX Revo), por lo que el HTML se almacena en una base de datos SQL y es generado por PHP, pero nunca antes había experimentado este problema.
¿Alguien sabe qué está causando esto y cómo podría acelerarlo?
performance
MeltingDog
fuente
fuente
Respuestas:
El término técnico para esperar se denomina tiempo para el primer byte y determina la capacidad de respuesta de un servidor web u otros recursos de red.
Algunas razones comunes por las que puede ver un momento elevado para el primer byte:
En general, este problema se ve a menudo en el alojamiento compartido debido a la gran cantidad de sitios web y las personas que los visitan, lo que, por supuesto, aumenta el tiempo de byte de la red. Otra posible causa es un error en la red en algún lugar, como un salto o porque su servidor no está dentro de la ubicación de su público objetivo, por ejemplo, un servidor BRITÁNICO 'BUENO' tendrá un tiempo de byte menor que un servidor de EE. UU. Dirigido a usuarios en el Reino Unido, debido a la distancia que los datos deben enviarse y recibirse (normalmente un aumento de alrededor de 100-200 ms).
Tal vez un momento para conseguir un nuevo anfitrión
En el pasado, tengo que pasar de un servidor a otro debido al retraso del primer byte, es posible que tenga que elegir un nuevo servidor web o actualizar su paquete actual.
Pruebas confiables
Probar la velocidad de su sitio web desde la banda ancha de su hogar es muy parcial porque puede ser un problema con su banda ancha que no responde al sitio web. Debe probar su sitio web utilizando múltiples conexiones desde múltiples servidores ... Recomiendo probar la página web y ejecutar múltiples pruebas a la vez desde diferentes ubicaciones y muchas en la audiencia geográfica objetivo. Esto le dará una mejor visión general de lo que está sucediendo, si es su primer byte, le recomiendo que se ponga en contacto con su proveedor de alojamiento web antes que nada.
Hacer ping y rastrear la ruta del servidor
Si intenta ejecutar un ping en el servidor, los resultados pueden mostrarse o no, ping utiliza ICMP en lugar de UDP o TCP, lo que significa que no es como consultar el servidor en el puerto 80 en el que se ejecutará su httpd. Puede usar la ruta de rastreo para identificar cualquier servidor en la ruta que podría estar causando que el primer byte aumente, nuevamente ... no consulta el servidor httpd en el puerto 80 y si traceroute con Windows usará ICMP y Mac / Linux Las máquinas utilizarán UDP. Vale la pena probarlo porque es algo muy rápido y fácil de hacer, pero si los resultados vuelven bien, no necesariamente significa que no haya un problema en alguna parte.
fuente
The delay is occurring after the first header response
entonces ese no es el primer byte. El primer byte es la primera respuesta.1) Tiene Adobe TypeKit que no se carga de forma asincrónica con el código actual. Intente reemplazarlo con el código asincrónico avanzado: http://help.typekit.com/customer/portal/articles/649336-embed-code
2) Prueba con el nuevo TypeKit. ¿Cómo es el tiempo de carga ahora? ¿Mejor? Ve al paso 3.
3) Reemplace su Google Analytics con un JavaScript actualizado que proporcione la sintaxis asincrónica más reciente: https://developers.google.com/analytics/devguides/collection/gajs/
4) Prueba. ¿La página se está cargando mejor aún?
5) Finalmente, considere optimizar imágenes como pattern.jpg. Lo convertí a PNG y pude reducir el tamaño del archivo de 199kB a 56kB. Esto reduce el tiempo de recepción del archivo: https://www.dropbox.com/s/i06jx509bmprhhh/pattern.png?dl=0
Espero que esto ayude.
fuente
Elementos PHP frente a elementos no PHP
Si compara los tiempos de carga de activos que no son PHP con los tiempos de carga basados en PHP, verá que el servidor responde rápidamente si PHP no está involucrado.
Esto generalmente indica problemas internos en su script PHP.
El problema podría estar dentro de la capa PHP o la base de datos. El uso de herramientas de depuración avanzadas como XDebug o NewRelic puede ayudarlo a detectar rápidamente el cuello de botella.
Los problemas de tiempo hasta el primer byte pueden ser causados por restricciones de hardware, configuración deficiente o código ineficiente. En el alojamiento compartido, es muy probable que haya restricciones de hardware y una configuración deficiente.
En cualquier caso, resolver el problema generalmente significa uno o todos:
El hardware más rápido es una solución obvia pero a menudo costosa si ya tiene recursos dedicados.
Una mejor programación puede no ser posible si el problema es interno al código que no mantiene o carece de recursos para desarrolladores.
El almacenamiento en caché ayuda a reducir la cantidad de solicitudes que deben afectar a los recursos subyacentes y de bajo rendimiento.
Pruebas
Cuando utilice herramientas de prueba, asegúrese de realizar varias ejecuciones. Los picos de red y servidores temporales pueden llevarlo fácilmente por el camino equivocado, por lo que debe intentar promediarlos.
Hospedaje
Si tiene una cuenta de alojamiento compartido, considere pasar a la nube o servicios de tipo VPS para tener una mejor idea de los problemas de rendimiento. A menos que utilice una técnica de almacenamiento en caché (CDN o servicio de tipo Cloudflare), corregir los problemas de rendimiento en los sistemas de alojamiento compartido masivo puede ser muy desafiante ya que carece de un control suficiente del servidor.
fuente
Intente configurar las cookies de terceros como solo visitadas.
fuente