Ya tienes tu WordPress instalado, configurado y con un estupendo tema. Le has instalado entre media y una docena de plugins, ya sean para añadir nuevas características a la administración, o para el frontend. Le has añadido un montón de contenidos para que, en cuanto lo subas a producción, los usuarios se queden maravillados de lo bien que escribes, de los productos que vendes, de los trabajos que realizas, etc. Has contratado al mejor analista SEO de todo el mundo para conseguir estar en los primeros puestos y comerte a la competencia. Tienes una campaña de marketing para radio, televisión, prensa e internet, que ni los de Nike.
Y lo subes a producción.
Y aunque tendrás visitas, venderás tus productos, y los usuarios te conocerán gracias a la campaña de marketing, el negocio no termina de despegar. Empiezas a preguntarte qué sucede. Pides informes, análisis, reuniones, cambios, mejoras. Pero nada lo soluciona.
Lo anterior es una pequeña ficción, pero es posible que os haya ocurrido algo parecido. Es habitual que se piense en el diseño y características de una web hasta el más mínimo detalle. Que se conozca la importancia de un buen SEO. Que se disponga de recursos para poder anunciar tu web a través de diferentes medios. Pero nos olvidamos de algo importantísimo: UNA WEB NO DEBE TARDAR OCHO SEGUNDOS EN CARGAR.
Para cumplir esta regla vamos a ver algunas acciones que podemos realizar para mejorar el rendimiento, el tiempo de carga y la puntuación de Page Speed en nuestro WordPress.
Modificando nuestro tema
La mayoría de temas para WordPress utilizan datos guardados en la base de datos para añadirlos a las plantillas. Esto provoca que cada vez que un usuario pide al servidor nuestra página principal (por ejemplo), se tengan que realizar varias consultas a la base de datos para obtener, por ejemplo, el título del blog, la descripción, el logo, etc. Estos datos los podemos poner en las plantillas de forma estática, reduciendo así las consultas a la BD.
Si tu tema tiene muchas imágenes (degradados, iconos, etc.) que se deben cargar junto con el resto de la página, es posible que tengas un exceso de peticiones al servidor y te ralentice la carga de la página. Podemos resolverlo si unimos las imágenes en uno o varios archivos de imagen, y a través de la hoja de estilos llamemos a esta imagen e indiquemos la posición de la imagen que queremos cargar, a esto se le llama CSS Sprites. De esta manera solo cargamos una o varias imágenes para mostrar todas las imágenes de la página, reduciendo considerablemente las peticiones al servidor.
Es habitual que pongamos los archivos javascript dentro de la etiqueta <head>, pero si son muchos scripts los que se tienen que cargar, o pesan demasiado, pueden ralentizar la carga de la página. Lo mejor es ponerlos en el pie, antes de la etiqueta de cierre </body>. Además sería ideal que se llamasen a estos archivos de forma asíncrona, así, permitimos que se cargue el html y css primero, haciendo que el usuario tenga la impresión de que la página se ha cargado casi inmediatamente. Te deje un link que explica esto con más detenimiento: http://www.googleessimple.com/aplazar-carga-javascript.html
Plugins para optimizar el rendimiento de WordPress
Necesitarás instalar un plugin de caché, ya sea W3 Total Cache, WP-SuperCache, etc. Estos plugins crearán una copia en html de las páginas que los usuarios descargan en sus navegadores, y la guardarán en el servidor para la próxima vez que un usuario pida la misma página. Esto nos permite reducir el consumo de memoria RAM, de base de datos y procesamiento del micro del servidor. Además nos permitirá aprovechar mejor los recursos del servidor, y eso implica que podremos dar cabida a más usuarios sin cambiar el hardware de nuestro servidor o contratar un servidor con mayores características.
Si el plugin de caché que elijas no dispone de la posibilidad de comprimir archivos css y js, necesitarás WP-Minify. Este plugin permite eliminar los espacios en blanco y los saltos de línea en los archivos css y js. En archivos javascript, además, los comprimirá para reducir su peso. También unirá todos los archivos css que utilices en tus páginas en un solo archivo; lo mismo para los archivos javascript. Esto permitirá reducir el número de peticiones al servidor.
Tanto si tu tema usa muchas imágenes como si no te vendrá bien tener instalado el plugin EWWW Image Optimizer. Este plugin optimiza las imágenes de tu WordPress (y las que añadas a la galería multimedia) para reducir su peso sin perder calidad de imagen. Además te permite aumentar tu puntuación de Page Speed, ya que este es uno de los errores más comunes que encontrarás cuando realices el análisis.
El protocolo HTTP 1.1 solo permite dos peticiones de recursos a la vez, esto implica que hasta que no se termine de descargar uno de los recursos, no se continuará con el resto de peticiones. Este problema hará que la página tarde más en cargarse, pero podemos solucionarlo. Plugins como Parrallelize o WP Parallel Loading System, permiten disponer de hasta cinco subdominios para poder aumentar hasta diez el número de peticiones de recursos que el servidor puede atender a la vez. Por desgracia ambos plugins están abandonados por sus desarrolladores.
Optimizando WordPress desde el software del servidor.
MySQL debería tener activada su caché, esto te permitirá mejorar el rendimiento. Si tienes acceso por ssh, tienes en intenet algunos scripts que analizan la configuración de MySQL para poder optimizar la base de datos de la forma más eficiente posible.
Si instalas APC o eAccelerator reducirás el tiempo que tarda PHP en ejecutar los scripts, reduciendo el tiempo de carga de tu página. Además tendrás un sistema de caché, tanto para PHP como para utilizarlo, por ejemplo, con W3 Total Cache.
Con Varnish podrás cachear las páginas que tus usuarios carguen en sus navegadores. Si lo unes a W3 Total Cache conseguirás aumentar aun más la reducción de los tiempos de carga de tu WordPress.
Sustituye Apache por Nginx o Lighttpd, son servidores web más ligeros y consumen menos recursos que Apache.
Mejora el hardware del servidor
Si ya has realizado todos los cambios anteriores, y tu WordPress es visitado por ingentes cantidades de usuarios y/o clientes que vienen a leerte o comprar tus productos o servicios, solo te queda una cosa por hacer: ampliar el servidor. Desde la memoria RAM, al microprocesador, los discos duros, pasando por el ancho de banda que tu proveedor pueda ofrecerte; todo eso tendrás que valorarlo y ampliar lo que necesites, o si te va muy bien con tu WordPress, comprar otro servidor o aumentar el número de instancias en Amazon. A partir de aquí tendrás que hacer el camino de ascenso: comprobar el software del servidor. Si hay que mover la base de datos a un servidor para el solo. El servidor de cache. Los plugins, etc.
Si estás en esta situación, te dejo un enlace promocional de Digital Ocean que te dará 10 dolares para probar sus Droplets.
Se paciente, pues todo esto te llevará su tiempo, pero estoy seguro que conseguirás tener un WordPress de menos de dos segundos.
¿Qué plugins usas para optimizar tu WordPress? ¿Qué software en el servidor te ha dado mejor resultado? ¡Cuéntanoslo en los comentarios!.