El Mejorar WordPress con W3 Total Cache es una de las cosas que hay que hacer en toda instalación nueva. En este caso, yo elegí este plugin tras probar varios otros. Este fue el que mejor me funciono, debido a la forma en el cual tengo instalado WordPress. Es por ello que comparto ahora parte de mis configuraciones.

Además, ofrece un importante número de opciones que se pueden configurar. Dependiendo de tus necesidades u objetivos. En mi caso, era el obtener un mejor rendimiento absoluto en varios frentes. Después de que los resultados en el PageSpeed Insights habían salido terriblemente mal.

Bueno, exagero un poco en ello. Pero al estar en un hospedaje compartido, es natural que ciertas cosas no corran de lo mejor. Yo espero poder migrar a un mejor ambiente en un momento cercano. Pero en lo que sucede, hay que trabajar con lo que se tiene.

Y un plugin de caché era la opción más natural para lograr los objetivos inmediatos.

¿Por que usar un plugin como W3 Total Cache?

La razón más sencilla es por que ya hay buenas alternativas que ya están correctamente escritas. De lo contrario, tendrías que reinventar la rueda. Dichos plugins ya toman en cuenta los problemas más comunes y los solucionan rápidamente.

Igualmente han tratado de seguir los lineamientos de Google, y otras plataformas similares, para realizar las mejoras. Esto buscando que los webmasters no tengan que estar instalando otras herramientas.

Por supuesto, esto no implica que sea la solución a todos los problemas. Hay casos en los cuales requerirás escribir tus propias soluciones, pero ese es un tema para otro día.

En mi caso, esta era la forma más viable de hacer las cosas.

Preámbulo a la optimización

Ten en cuenta que estas configuraciones funcionan en mi entorno de trabajo (Apache, PHP7, MariaDB). No necesariamente funcionaran en el tuyo. Hay muchas variables que están en juego, por lo cual al final lo que te funcione a ti pudiera ser diferente.

Ante de empezar, coloque el siguiente código en el footer de mi instalación. Con este, podría ver que tan mal estaba.

Ya con ese código, pude ver resultados similares a este:

Ouch, ¿De donde salían tantas consultas? ¿Como era posible que se consumiera tanto tiempo? Esos números indicaban que había un problema el cual tenia que ser solucionado.

Por supuesto, el primer lugar en donde tenia que mirar es en mi servidor e instalación. Eliminar los plugins innecesarios es algo que se tiene que hacer. Posterior, tuve que cambiar de PHP5 a PHP7. Esto debido a que PHP7 es mucho más rápido que PHP5, además de más seguro.

Por fortuna para mí, esto no generó problemas de compatibilidad. Pero es posible que tengas problemas si antes contabas con mensajes de “funciones obsoletas”, ya que muchas de ellas fueron eventualmente eliminadas. Puedes solucionar ese tipo de problemas si no te importa ensuciarte un poco las manos con el código fuente.

Una vez limpiada mi instalación, ganando como 0.2 ms, solo quedaba optimizar lo que quedaba. Los plugins que quedaron eran los que consideré que eran de utilidad y necesarios.

Configuración de W3 Total Cache

Trataré de ser breve, ya que el compartir una configuración completa de W3 Total Cache puede ser extensivo. Aunque es bueno el tener una idea de todo lo que puedes lograr con dicho plugin. Aún para la versión gratuita.

Pero si haré incapie en aquellas características en las cuales logre observar una mejora.

Si vas a usar W3 Total Cache en una instalación multisite, lo primero que te recomiendo es activar el mismo para toda la red. Una vez que hayas configurado las opciones más comunes, como el Page Cache, Object Cache y Browser Cache; deberás encontrar la siguiente opción bajo Performance > General Settings y desmarcarla:

Esta es la opción que debe estar o mantenerse desmarcada

Una vez hecho hayas desmarcado “Use single network configuration file for all sites”, podrás efectuar cambios “a medida” para cada sitio de tu red. Para ello, deberás de ir a “General Settings” dentro del Escritorio de cada sitio y buscar a la derecha el botón “Use Specific settings”. Deberás de hacer clic sobre el mismo para poder editar las características a medida para ese segmento en cada sitio.

Por ejemplo, en mi caso, mi mayor problema fue con las opciones de Minify. Si bien estoy detrás de CloudFlare, el hacer uso de Minify era importante ya que las hojas de estilo CSS y JavaScript no se estaban combinando. Hacerlo eventualmente iba a ayudar mucho.

Pero aquí no había una solución que funcionase en todos los escenarios.

Peleándose con Minify en W3 Total Cache

La posibilidad de “minificar” las hojas de estilo CSS y JavaScript es algo muy importante. Pero, el problema de dicha utilidad es que muchas cosas pueden salir terriblemente mal.

Por ejemplo, compactar el HTML me es útil en este sitio web, pero no en otro. Esto debido a que puede romper el tema y sus características.

Algunas de las opciones activadas para minificar HTML

En el caso de Javascript, “defer” para compactar destruye las páginas hechas en Page Origin, mientras que la opción “async” destruye a Slider Revolution. ¿Que lio verdad? Dejarlos a todos con su gusto con una sola configuración es imposible. La tarea de optimizar se vuelve una de “prueba y error” en el mejor de los casos.

Las opciones de JavaScript pueden causar algunos problemas

En el caso de las hojas de estilo, el problema no es tan prominente. En la mayoría de los casos… las cosas simplemente funcionaron bien y se pudo optimizar sin mayor problema.

El único inconveniente de tener este tipo de configuraciones, es que deberás de “limpiar el cache” siempre que haya cambios. Eso puede ser un poco molesto cuando estás haciendo muchos cambios pequeños, pero se soluciona desactivando la opción de compactar o desactivando este plugin.

Activando Object Cache

Esta alternativa en W3 Total Cache es quizá la que mejor me ha resultado, después de la minificación.

Con los cambios antes mencionados y esta, logre tener entonces un tiempo re respuesta similar a este:

Pasar de 101 consultas a 24 es muy bueno. Es decir que ahora se están realizando solo un cuarto de las consultas que se hacían antes. Eso le quite estrés al servidor de base de datos y se accede más rápido.

Para entenderlo mejor, el Object Cache almacena en disco las “consultas más comunes”. Algo similar a lo que hace “Page Cache”. Esto permite que ciertos valores sean accedidos de una forma mucho más rápida y ágil.

Mientras menos consultas sean realizadas, mejor. Eso siempre ayudará a que el sitio web sea más eficiente a la hora de tener mayor carga. Pero ten en cuenta que, al almacenar el cache en disco, es posible que esto genere muchos archivos adicionales. Eso hay que tenerlo en cuenta en especial si tienes el espacio o los inodes limitados.

Conclusión

Si la configuración de W3 Total Cache se hace bien, se pueden tener buenos resultados. En mi caso, pase de tener una respuesta promedio de +2 segundos a ~0.6 mili-segundos. Una mejora sustancial tomando en cuenta que todavía estoy algo limitado en este entorno.

También en este caso, es importante indicar que solo apuntale una parte del problema. El otro es del lado del servidor. Si se tiene acceso a un procesador más poderoso en el hosting, el tiempo de respuesta podrá verse mejorado.

Algunos incluso dirían que tener un VPS es casi una necesidad. Pero yo opino que todo depende de las propias necesidades y objetivos de cada persona. Un VPS es bueno para quien tiene el tiempo y recursos para administrar un servidor. Esa es una bestia completamente diferente. Y más si ponemos en la mezcla un servidor Varnish.

Encontrar el hosting adecuado resuelve una parte del problema. Con suficientes recursos se puede rentar un buen servidor, pero sin alguien que sepa como optimizar los programas que corren… pues, serán recursos desperdiciados.

Hay que tener un buen balance entre ambos, pero por ahora W3 Total Cache me ha sacado del apuro.

Mejorar WordPress con W3 Total Cache
¡Califica esta entrada!
Este es mi alter ego, el resultado de muchas experiencias, como experimentos en la red. Escribo por placer sobre varias cosas, incluyendo Videojuegos, Internet, Diseño Web, Programación y Seguridad.