Aligerando WordPress: optimizando          el rendimiento        Córdoba Meetup 2012                   @fjcarazo - Carazo ...
¿Quién soy?• Administrador de sistemas y desarrollador de  software en IAS-CSIC• Cofundador y administrador de Linux Hispa...
¿Qué os voy a contar?• Cómo conseguir el mejor rendimiento posible  con unos recursos determinados: alojamiento  web en se...
WordPress y yo                                                                                                  Mi libro D...
¿Por qué importa el rendimiento?•   SEO: +500ms  20% pérdida tráfico Google•   Económico: ampliar infraestructura•   Impr...
¿Cómo funciona WordPress?1.   Usuario: introduce URL2.   Servidor web ejecuta WordPress3.   WordPress recopila datos de My...
¿Dónde puedo mejorar?• Comunicaciones usuario-servidor  – Tamaño de los ficheros a transmitir  – Cantidad de ficheros tran...
Comunicaciones usuario-servidor• Peso de los ficheros  –   Activar compresión de Apache: Mod_Deflate  –   WP Smush.it: red...
Comunicaciones usuario-servidor• Cantidad de peticiones:  – Un fichero  una petición HTTP  – WP Minify: unifica ficheros ...
Tiempo de ejecución• Cantidad y calidad de los plugins  – P3 (Plugin Performance Profiler): datos sobre carga  – Actualiza...
Tiempo de ejecución• Llamadas PHP innecesarias  – Sustituye funciones PHP por código estático     • get_bloginfo(name)  ¿...
Base de datos• Cantidad y complejidad de las consultas  – ¿Nº de consultas para rellenar N entradas?     •   51 consultas ...
Visualización en el cliente• Navegador: intérprete de HTML, CSS y JS  – Facilitar interpretación  – Reglas CSS sin usar  –...
¿Cómo medir todo esto?• En WordPress  – P3 (Plugin Performance Profiler): grandes números  – Debug Queries: lista detallad...
Para terminar• Conclusiones  –   WordPress poco optimizado por defecto…  –   … pero fácil de optimizar  –   Atención al al...
Preguntas             @fjcarazo            jcarazo.com
Upcoming SlideShare
Loading in...5
×

Aligerando WordPress: optimizando el rendimiento

3,355

Published on

Cómo aligerar el rendimiento de un portal realizado con WordPress de forma muy simple. Especialmente enfocado a instalaciones WordPress que ejecutan en servidores con alojamientos compartido.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,355
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Aligerando WordPress: optimizando el rendimiento

  1. 1. Aligerando WordPress: optimizando el rendimiento Córdoba Meetup 2012 @fjcarazo - Carazo Gil, Francisco Javier
  2. 2. ¿Quién soy?• Administrador de sistemas y desarrollador de software en IAS-CSIC• Cofundador y administrador de Linux Hispano, Red De Autores y Geometrio• Consultor WordPress en WPQuestions• Emprendedor junto con @ahornero
  3. 3. ¿Qué os voy a contar?• Cómo conseguir el mejor rendimiento posible con unos recursos determinados: alojamiento web en servidor compartido• No trataré: – Mejoras a nivel de servidor – Cambios de servidor web – Inclusión de software como Varnish – Modificaciones de la arquitectura de los servidores• ¿Por qué? Experiencia y popularidad
  4. 4. WordPress y yo Mi libro Domine WordPress: Manual Práctico 1/2/11 Nace RedDeAutores (BuddyPress) 25/3/11 Primera WordPress Meetup Córdoba 1/10/11 WordCamp Sevilla 2011 8/10/11 Descubro WPQuestions 1/12/11 Nace el blog de juegos de Linux Hispano Segunda WordPress Meetup 7/2/08 Córdoba Nace Linux Hispano 6/10/12 1/7/04 Linux Hispano se pasa a WordPress Nace Geometrio (mis primeros Conozco WordPress 15/10/09 CPT) 1/1/05 23/11/12 2004 2005 2006 2007 2008 2009 2011 2012 04 jul ago sep oct nov dic ene feb 13
  5. 5. ¿Por qué importa el rendimiento?• SEO: +500ms  20% pérdida tráfico Google• Económico: ampliar infraestructura• Impresión del usuario• Ventas: menor grado de conversión• Rápido es mejor• Ecológico: menos cómputo, menos energía• Pérdida del servicio
  6. 6. ¿Cómo funciona WordPress?1. Usuario: introduce URL2. Servidor web ejecuta WordPress3. WordPress recopila datos de MySQL4. Compone resultado5. Lo envía6. El usuario lo recibe7. Navegador lo visualiza
  7. 7. ¿Dónde puedo mejorar?• Comunicaciones usuario-servidor – Tamaño de los ficheros a transmitir – Cantidad de ficheros transmitidos• Tiempo de ejecución – Cantidad y calidad de los plugins – Llamadas PHP innecesarias• Base de datos – Cantidad y complejidad de las consultas• Visualización en el cliente – Complejidad interpretación CSS y JavaScript
  8. 8. Comunicaciones usuario-servidor• Peso de los ficheros – Activar compresión de Apache: Mod_Deflate – WP Smush.it: reduce tamaño de las imágenes – favicon pequeño y cacheable – Compresión JPG y PNG – Escalar imágenes con WordPress
  9. 9. Comunicaciones usuario-servidor• Cantidad de peticiones: – Un fichero  una petición HTTP – WP Minify: unifica ficheros JS y CSS – Una sola imagen para todo el tema (sprites) • CSS qué parte mostrar con background-position – Integrar contenido multimedia dentro del texto en Base64 cuando sea posible
  10. 10. Tiempo de ejecución• Cantidad y calidad de los plugins – P3 (Plugin Performance Profiler): datos sobre carga – Actualización – Sustituye su funcionalidad por algo más simple
  11. 11. Tiempo de ejecución• Llamadas PHP innecesarias – Sustituye funciones PHP por código estático • get_bloginfo(name)  ¿el nombre va a cambiar? • get_bloginfo(charset)  ¿y el juego de caracteres? • … especialmente en el header.php y el footer.php – En el escritorio, ¿por qué cargar todo? • Quitar los widgets inútiles dentro del functions.php
  12. 12. Base de datos• Cantidad y complejidad de las consultas – ¿Nº de consultas para rellenar N entradas? • 51 consultas para 8 entradas en Linux Hispano • Usando CPT con muchos metadatos crece la complejidad • ¡Evitar plugins mal diseñados! • Necesidad de cachear – WP Super Cache • Facilidad • Estabilidad • Compatibilidad con vista móvil de WPtouch – Mejor aún  Varnish: otro concepto
  13. 13. Visualización en el cliente• Navegador: intérprete de HTML, CSS y JS – Facilitar interpretación – Reglas CSS sin usar – Optimizar JavaScript • jQuery: acceder directamente por identificador • Árbol DOM bien estructurado y lo más reducido posible • Mejor cambiar clases a elementos que cambiar N propiedades de estilo • Minimizar número de líneas – Usar encadenamiento – Aprovechar partes incrementales bucle – …
  14. 14. ¿Cómo medir todo esto?• En WordPress – P3 (Plugin Performance Profiler): grandes números – Debug Queries: lista detallada de peticiones a BBDD – Manualmente: get_num_queries() y timer_stop(1)• En el cliente – Chrome/Chromium: herram. para desarrolladores – Firefox: Firebug + Yslow• En la nube – Google PageSpeed Tools
  15. 15. Para terminar• Conclusiones – WordPress poco optimizado por defecto… – … pero fácil de optimizar – Atención al alojamiento – Factor diferenciador – Escalabilidad – No olvidar otros factores • Situación geográfica • Estado de la red • Efecto Menéame/Barrapunto/Digg
  16. 16. Preguntas @fjcarazo jcarazo.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×