velocidad una tiempo test speed site pagina page medir insights google chrome carga benchmark php javascript html css optimization

php - una - Optimizaciones para reducir el tiempo de carga del sitio web.



test my site google (14)

Antes de intentar cualquier optimización primero, necesita poder hacer un perfil, obtener FireBug para Firefox. Luego, puede realizar un análisis que le indicará exactamente qué hacer usando YSlow . Las cosas fundamentales que debes hacer se enumeran developer.yahoo.com/performance/rules.html .

¿Cuáles son algunas optimizaciones importantes que se pueden realizar en un sitio web para reducir el tiempo de carga?


Aquí hay algunas cosas de "mejores prácticas":

  • Caching CSS, JavaScript, imágenes, etc.
  • Reducción de archivos Javascript.
  • contenido gzip.
  • Coloque enlaces a archivos JavaScript, código JavaScript y enlaces a archivos CSS en la parte inferior de su página cuando sea posible.
  • Cargue solo lo que sea necesario.
  • Para un sitio web existente, antes de hacer algo de esto, determine dónde están sus cuellos de botella con herramientas como Firebug y, como otra persona mencionó, YSlow (recomiendo esta herramienta).

Como ya se mencionó, puedes usar la extensión de Firefox Yslow o PageSpeed. Pero también puede usar GTmetrix , un servicio en línea que GTmetrix su página con ambas herramientas.

Características que me gustan / uso:

  • Presentación suave, limpia y utilizable.
  • Comparación con otra página. Es realmente interesante ver dónde están tus amigos / competidores.

(por cierto, no estoy relacionado con gtmetrix!)


Definitivamente quiero ver el almacenamiento en caché, ya que los viajes de ida y vuelta a DB son caros. también, minify JS


El balanceo de carga ayudaría a reducir el tiempo de carga inmenso.


Eliminar / Minimizar los cuellos de botella en el lado del servidor. Para este propósito, use un generador de perfiles como Xdebug o Zend Debugger para averiguar dónde su aplicación está haciendo operaciones caras y lentas. Implementar el almacenamiento en caché cuando sea posible. Utilice un caché OpCode. Si esto todavía no es lo suficientemente rápido, considera invertir en más CPU o RAM o SSD (dependiendo de si eres CPU, IO o memoria enlazada)

Para las optimizaciones generales del servidor / cliente, consulte Yahoo YSlow! Guía del usuario .

Básicamente lo resume a:

  1. Minimizar solicitudes HTTP
  2. Utilice una red de entrega de contenido
  3. Agregar un Caducidad o un encabezado de control de caché
  4. Componentes Gzip
  5. Ponga StyleSheets en la parte superior
  6. Poner scripts en la parte inferior
  7. Evitar las expresiones CSS
  8. Hacer JavaScript y CSS Externo
  9. Reducir las búsquedas de DNS
  10. Reducir JavaScript y CSS
  11. Evitar redirecciones
  12. Eliminar secuencias de comandos duplicadas
  13. Configurar ETags
  14. Hacer AJAX Cacheable
  15. Utilice GET para solicitudes AJAX
  16. Reducir el número de elementos DOM
  17. No 404s
  18. Reducir el tamaño de la galleta
  19. Utilice dominios sin cookies para los componentes
  20. Evitar los filtros
  21. No escalar imágenes en HTML
  22. Hacer favicon.ico Pequeño y Cacheable

También vea los comentarios contribuidos a continuación, ya que contienen información adicional útil para otros usuarios.



Hay dos lados que puede importar, al optimizar:

  • El lado del servidor: lo que importa es generar la salida más rápido
  • El lado del cliente: lo que importa es obtener todo lo que se debe mostrar más rápido.

Nota: nosotros, como desarrolladores, a menudo pensamos en optimizar primero el lado del servidor ... ¡Lo que en la mayoría de los casos solo representa menos del 10% del tiempo de carga de la página!


En el lado del servidor, generalmente querrá:

  • perfil, para determinar qué es largo
  • Optimiza tus consultas SQL, y reduce su número.
  • usar caché

Para obtener más información, puede echar un vistazo a la respuesta que le di hace un tiempo a esta pregunta: Optimización de sitios web basados ​​en Kohana para velocidad y escalabilidad


En el lado del cliente, las mayores ganancias generalmente se logran mediante:

  • Reducir el número de solicitudes HTTP: la forma más fácil es reducir el número de archivos JS / CSS / images, combinando varios archivos en uno.
  • Comprimir CSS / JS / HTML, utilizando por ejemplo el mod_deflate de Apache.

Sobre eso, hay un montón de cosas geniales en el Rendimiento Excepcional de Yahoo : han lanzado muchas developer.yahoo.com/performance/rules.html y herramientas, como YSlow .


La primera optimización es: Decida si es lenta, y si no, no se moleste.

Esto es más complicado de lo que parece, porque no es como probar una aplicación de escritorio o un juego. Un juego es lento si cuando lo juegas en el hardware de destino, la velocidad de fotogramas es demasiado baja. Esto es muy fácil de medir.

Un sitio web es más complicado porque usted, como desarrollador, probablemente esté utilizando un sistema de prueba local con una red muy rápida. Incluso cuando usa sus servidores de prueba de sistemas / pruebas, probablemente aún esté en la red local. Incluso sus servidores de producción son, con toda probabilidad, en el mismo continente.

Es posible que lo mismo no sea cierto para muchos de sus usuarios.

Por lo tanto las opciones que existen son:

  • Averigüe preguntando a sus usuarios, si les resulta lento.
  • Simule un entorno de alta latencia y pruébelo usted mismo (o su equipo de control de calidad)
  • Conjetura

Este último no es recomendable.

Una opción en la que el libro de rendimiento de los Sitios Web de Yahoo más sagrado que tú (que sí, es un libro que puedes comprar) no menciona mucho es HTTPS. La mayoría de las aplicaciones web que manejan datos importantes se ejecutan principalmente o completamente a través de HTTPS, lo que cambia las reglas del juego bastante. Recuerda hacer todas las pruebas con él habilitado.


Las opciones simples que se me ocurren son:

  1. Gzip (x) html, por lo que un archivo comprimido debería llegar más rápidamente al usuario
  2. minimizar el CSS
  3. minimizar el JS
  4. usar caché cuando sea posible
  5. usar una red de entrega de contenido
  6. use una herramienta, como YSlow para identificar cuellos de botella y sugerencias adicionales

No use espacios en blanco en el código.


Para reducir el tráfico de la red, puede minimizar los archivos estáticos, como CSS y Javascript, y usar la compresión gzip en el contenido generado. También puede intentar usar herramientas como optipng para reducir el tamaño de las imágenes.

Sin embargo, el primer paso a tomar es analizar realmente lo que toma todo el tiempo, ya sea enviar los bits a través de la red o generar el contenido para enviar. No tiene sentido hacer que sus archivos CSS sean un 10% más pequeños si le toma un minuto generar cada página HTML.



instale el plugin firebug y pagespeed siguiendo todas las directivas de pagepeed (hasta que sea posible) y esté contento http://code.google.com/intl/it/speed/page-speed/

De todos modos, la optimización más importante en mi experiencia es reducir el número de solicitudes HTTP a un mínimo ...