¿Por qué deberías quitar tu caché de WordPress?

Una de las primeras cosas que se recomiendan tras instalar un WordPress es activarle un plugin de caché. Yo mismo lo hice y lo recomendé en mi configuración de WP.

El caso es que tras configurar y optimizar CloudFlare, haciendo pruebas, me di cuenta que en realidad un plugin de cache, ya sea W3 Total Cache, como WP Super Cache, generalmente ralentizan la instalación de WordPress.

Es lógico, un plugin de caché, primero sobrecarga la instalación del blog, porque requiere gestionar un plugin adicional, y que por ejemplo en el caso de W3TC es realmente voluminoso y complejo. Ello implica cargar nuevas clases, instalar nuevos hooks, y enrutar varias funcionalidades de WordPress para que pasen por él. Todo esto lo sufriremos en cada solicitud de página que se nos haga.

Después, el caché comprobará si esa página, objeto, consulta de base de datos, etcétera, está disponible en el caché o no. Si es así, nos la retornará directamente del caché, lo que será bastante más eficiente que generarla dinámicamente cada vez. Lo que ocurre, es que para que en realidad sea más veloz, el caché debe estar en memoria (APC, Memcached, …), pues si está en disco, aunque este se base en estado sólido (SSD), salvo que nuestro tema sea realmente complejo, no nos daría ningún beneficio.

El problema es que la memoria RAM es limitada, y por tanto no todas nuestras páginas pueden entrar en el caché, lo que nos lleva a que en webs voluminosas, el caché acertará más bien poco, y las páginas se servirán de manera normal sin usar caché.

Cuando digo manera normal, en realidad miento. La manera no es normal, ya que antes de eso, el caché ha debido verificar que esa página no se encontraba en el caché, guardarla en el caché para futuras peticiones, y ahora sí, servirla de manera normal.

Lo adecuado es además, que ese caché guarde las páginas con los HTML, CSS y Javascript minificados, es decir, más tiempo necesario para generarlas.

Para que os hagáis una idea, mi página principal necesitaba de 1,5 segundos para generarse con W3 Total Cache activado. Sin él, son unos 0,4 segundos. Es decir, 4 veces más rápidas.

Una página interior (single) tardaba unos 0,8 segundos, sin caché vuelve a ser unas 4 veces más rápida, o sea 0,2 segundos.

Es decir, desactivando el caché, he conseguido mejorar mi tiempo de respuesta en un factor del 400%.

Por supuesto si tienes pocas páginas, que son muy consultadas, y con memoria de sobra, un caché te irá muy bien. Pero para la mayoría de páginas personales, en alojamientos compartidos, son sin duda un gran freno.

¿Qué es lo que si he visto que beneficia? Pues ya lo comentaba, CloudFlare, que es un servicio de caché y que no va a consumir recursos de nuestra máquina. Trabajará transparentemente, ahorrándonos CPU, memoria y ancho de banda. Además, como su hardware en la nube es potente, conseguiremos ratios de cacheo del orden del 70%, mucho más que con un plugin de caché local.

¿Por qué deberías quitar tu caché de WordPress?

Quizás sus capacidades de minificación no sean tan potentes, pero que preferimos, ¿ahorrar 100 Kb. de transferencia, o servir 4 veces más rápido?

Después tenemos OPCache, el plugin de caché nativo en PHP 7 que se encarga de cachear archivos PHP ya interpretados. Es decir, guarda en memoria el código que ejecutará el intérprete, y nos evitará que WordPress deba cargar cada vez el tema, includes, páginas, etcétera, y que funciona muy bien.

Por último, pero no menos importante, es FileOptimizer, una ayuda imprescindible para reducir el peso de recursos estáticos como imágenes, documentos, vídeos o audios.

¿Por qué deberías quitar tu caché de WordPress?

9 comentarios en “¿Por qué deberías quitar tu caché de WordPress?”

  1. Yo en webs personales (dominio propio, aunque compartido) nunca he tenido problemas con wordpress sin instalar ningun plugin de cache, recomiendan mucho instalarlo, pregunta: ¿se lo instalo o no?

  2. Javier Gutiérrez Chamorro (Guti)

    En general las conclusiones del artículo son claras Manuel.

    Salvo que tengas muy pocas páginas, y muchos hits a ellas, el caché no te va a dar ningún beneficio.

    Obviamente si tuvieras una máquina dedicada y potente, y pudieras configurar un cache para que usara memoria RAM en el cacheo de todos los contenidos si. Pero eso es poco común.

  3. supuestamente el cache hace tambien labores de proteccion, no solo ahorra recursos. En teoria. En la practica, como bien explicas, es muy diferente y todo el mundo lo desactiva. Ademas es un engorro. Lo mejor es un sistema basado en la nube y, sobre todo, una buena programacion del cms. Si tienes un cms que hace consultas todo el rato a mysql y cosas asi, estas vendido. Ademas, un gran numero de cosas (css, scripts…) se pueden hacer en html y meter en la propia pagina servida y que no hacerlas en el huesped, pero la moda es no hacer eso y a cada renglon tirar de php, y cuando la base es tan erronea en todo lo demas ya no hay mucho que hacer.

  4. Javier Gutiérrez Chamorro (Guti)

    Muy buena observación lo de que las modas siempre van en contra del rendimiento bianamaran.

  5. Hola:

    Cuando leí este artículo quité el plugin de caché, siguiendo tus recomendaciones. En realidad el código de mi blog es bastante pequeño y nunca había tenido problemas de tiempo de carga.

    Pero el otro día instalé el certificado SSL, y con el plugin Easy HTTPS (SSL) Redirection hago una redirección de http a https. Hasta aquí todo bien. El problema es que ahora el tiempo de carga se ha disparado muchísimo.

    En móbil, el tiempo de carga medio es de 7 segundos (!), en ordenador es de 3,5 segundos, que me sigue pareciendo mucho. Había pensado en instalar un plugin de caché a ver si me ayudaba a mejorar el tiempo de carga, pero me da en la nariz que el problema no está ahí.

    ¿Alguna sugerencia?

    ¡Gracias!

  6. Javier Gutiérrez Chamorro (Guti)

    Es difícil de responder, Pablo. Por un lado, HTTPS, carga mucho más al servidor, que debe encriptar todo el contenido, y negociar certificados, pero no debería ser algo que se notara mucho.
    De lo que dices, veo varias cosas. En ordenador carga en 3,5 segundos, el doble de rápido. O sea que no es de servidor, ya que éste es capaz de generarlo en 3,5 segundos. No es rápido, pero no es lentísimo.
    Apostaría a que es cosa del plugin WordPress que redirige. Es un trabajo laborioso de ir haciendo pruebas y cambiando configuraciones hasta dar con la adecuada.

  7. Javier Gutiérrez Chamorro (Guti)

    Una cosa que estoy pensando Pablo, es que quizás el hosting tenga parte de la culpa. Es decir, si montas un directorio fuera de WordPress sobre HTTPS, ¿también hay tanta diferencia de rendimiento?

Deja un comentario