Alternativas sanas a los plugins de caché

Publicado en Optimización web( WPO ) hace 2 años y 2 meses. Leído 2694 veces.

imagen destacada

Hace un tiempo escribí una recomendación de no usar plugins caché en WordPress( a menos, que sepas bien porque lo usas y tengas previstas sus consecuencias, desgraciadamente por lo general no es así ) porque afectaba al comportamiento interno de WordPress. En su día dije que había alternativas más sanas, aquí te las presento:

Aceleradores PHP

Imagínate que eres un escritor de betsellers y cuando terminas de escribir un libro lo mandas a la imprenta para que te haga copia de 20.000 ejemplares. La imprenta recibe tu libro, lo revisa concienzudamente y cuando verifica que está todo correcto, crea un modelo para las hojas y empieza a realizar las copias. Todo perfecto si no fuera porque hace una y otra vez la revisión del mismo libro y los mismos modelos cada vez que lo mandas para que te hagan más copias. Con lo que te provoca innumerables retrasos. Lo lógico es revisarlo una vez, hacer el modelo, y si el libro no ha cambiado, no volver a hacer esos pasos sino ya usar el modelo primero.

PHP es como esa imprenta y analiza cada archivo PHP cuando se le llama. Una vez que revisa el archivo, lo divide en trozitos pequeños, para luego ejecutarlos. ¡ Y lo hace por cada vez que ejecutas el archivo aunque no haya cambiado !. Sin embargo, existen los aceleradores PHP. Estos aceleradores guardan en memoria los trozos de archivo creados por PHP después de analizarlo. Si PHP tuviera que ejecutar otra vez ese archivo, los aceleradores le proporcionan ya todo hecho, sólo lo tendría que ejecutar.

Esto es un sistema de caché que actúa a bajo nivel, es independientemente de CMS alguno( incluido WordPress ) y no afecta para nada al funcionamiento de WordPress. Por tanto, puedes usarlo sin miedo. De hecho, muchos servicios de hosting ya los proporcionan y lo único que tienes que hacer es habilitarlo por htacess. Habla con tu proveedor de hosting y pregúntales si usan aceleradores PHP y si es así, si es autómatico o si lo tienes que habilitar de alguna manera. Si no lo tienen pásale la lista de aceleradores PHP y que te instale alguno. De cualquier manera, a partir de PHP 5.5 está disponible el acelerador Opcocache de serie con PHP. Algo es Algo.

Google PageSpeed

Google PageSpeed es una capa extra que se le añade a tu servidor web para modificar la salida de tu página web. Así, si los aceleradores eran idóneos porque trabajaban antes de ejecutarse WordPress, Google PageSpeed es idóneo porque lo hace después( o aunque a veces también antes ). Es decir, una vez que WordPress ha generado el HTML, trabaja sobre ese HTML generado. ¿ Y qué hace con ese HTML geneado ?, pues todo lo que haces con los plugins de caché y mucho más:

  • Minimiza HTML, CSS y JSS.
  • Combina CSS y JS
  • Redimensiona imágenes o las convierte a base64
  • Incluye el código de google fonts en tu html para ahorrarte el paso de hacer la petición.
  • Te permite gestionar CDNs fácilmente
  • Crea caché de recursos o los optimiza.

Y todo ello... ¡sin problemas o efectos secundarios para tu WordPress!. Pero, claro, un plugin de caché es cómodo, es rápido y es barato, aunque tenga sus consecuencias. Sin embargo, te alerto, las webs son caprichosas y cuanto menos tiempo le dediques( ya sea durante el desarrollo o después de este ), más tiempo te quitará( o le robará a tus visitantes ) después. Tú decides.

Comentarios constructivos son bienvenidos, comentarios de fanboys o vendehumos, aunque los acepto, son menos.

4 comentarios

Interesante artículo. Habrá que probarlo, gracias por compartirlo

Escrito por Oscar el 01-07-2016 a las 22:04

Gracias a ti, Oscar, por leerlo.

Hola Manuel,

El único problema que le veo es que no siempre se tiene la posibilidad de configurar el servidor como uno quiere. También sería interesante hablar sobre nginx, ya sea combinado con apache como proxy inverso o en solitario.

Un saludo,

Escrito por Arsenio Ramos el 03-07-2016 a las 22:49

Hola Arsenio, una alegría tenerte otra vez por aquí,

Tienes razón en que no siempre se tiene la posibilidad de configurar el servidor. Pero ahí entra lo que digo que cuanto menos tiempo( y me falto decir, dinero también ) inviertas en tu web, más te lo robará después. Si quieres calidad hay que invertir( y tampoco mucho, porque hay VPS por 3€/mes ).

Sí, esto se puede extender para hablar de proxy en el lado de servidor, también se podría hablar de compresión gzip. Pero me gustan los posts cortos y directos. Además, aunque sé de administración de servidores, no me considero un sysadmin y no me gusta hablar de lo que no soy experto. Si hablo de administración de servidores es para dejar escrito algo con lo que haya lidiado o algún truco que haya descubierto.

Un saludo y gracias por la visita, Arsenio.

Muy bueno el artículo. Y estoy con manuel. Tienes servidores vps desde poco mas de 3 € para hacer pruebas. Yo ahora estoy con uno manejado con serverpilot que te instala la infraestructura en tu servidor y lo manejas desde un panel de control sencillito. Tengo que ver si se le puede instalar al vps el módulo de google a ver si así gano en velocidad.

Escrito por Monty el 05-07-2016 a las 14:07

Gracias, Monty y gracias también por tu aportación. No conocía serverpilot.

Hola Manuel, En primer lugar gracias por compartir tus conocimientos a través de este blog, me son de mucha ayuda. Tal como comentas en esta entrada, me puse en contacto con Dinahosting para ver si podía mejorar el rendimiento de la web a través de aceleradores PHP y me comentan que utilizan XCache, aunque me envían las instrucciones para activarlo en WordPress y son… instalando el plugin de cache W3 Total Cache! ¿Qué opinas? ¿Es una buena idea? ¿Se puede hacer de otra forma sin utilizar plugins? El enlace al tutorial de configuración: https://dinahosting.com/blog/330/configuracion-w3-total-cache-mediante-xcache Gracias y un saludo!

Escrito por Jose el 01-09-2016 a las 09:44

Hola, José,

Los aceleradores normalmente son también sistemas de almacenamiento clave/valor. Los almacenamientos de clave/valor, para que te hagas una idea, sería como canastos dónde metes información y luego la recuperas cuando quieres.

Los plugins como W3 Total cache dependiendo de su configuración usan la funcionalidad de este tipo de almacenamiento clave/valor para guardar el código html entero de una página, o los resultados de consultas, ... o lo que sea necesario para optimizar la web. El manual que te proporciona Dinahosting es para configurar estos aspectos. Lo que no queda claro es si tienes activados la capacidad XCache como acelerador para todo el sitio o si sólo te proporcionan la opción de almacenamiento clave/valor.

En cualquier caso, con WordPress, como dice el post, no soy partidario de usar caché de este tipo. Pongo un ejemplo para que se entienda:

Imagínate que W3 Total cache, usando el almacenamiento clave/valor de XCaché guarda en un canasto el HTML de toda la web, cuando llega algún visitante le suelta todo el HTML guardado. Esto hace la web muy rápida porque no tendría que crear de nuevo el HTML por cada visitante que llega a la web. Pero, ¿ qué pasa si tienes un plugin que tiene una apariencia diferente según el navegador del visitante ? ¿ o qué pasa si tienes un plugin que depende del pais de origen del visitante ya que toma un idioma u otro según este ? ¿ o qué pasa si tienes un plugin que muestra las entradas según su popularidad( número de visitas )?, ¿ o qué pasa si tienes anuncios que deberían cambiar debido al retargeting ?. Pues en todos los casos anteriores pasa que los plugins no funcionarán corréctamente porque los códigos de los plugins sólo se ejecutaron una vez(cuando se creó el HTML para almacenarlo en el canasto/caché ). En sucesivas visitas, W3 Total Caché devolvió el HTML generado que tenía guardado en su canasto sin dar la oportunidad a los plugins de ejecutarse.

Espero que se haya entendido, al menos en líneas generales.

Gracias por la visita y por comentar, José.

Hola Manuel, Creo que entiendo más o menos lo que me comentas, al menos lo que me interesaba. No instalaré el plugin y voy a ver si averiguo cómo aprovechar el XCache (que está activado) sin necesidad de plugin. Gracias. Un saludo!

Escrito por Jose el 02-09-2016 a las 12:39

Deja un comentario

Puedes usar Markdown para formatear tu comentario.

Este sitio utiliza cookies propias y de terceros para mejorar tu experiencia con el sitio web. Al continuar con la navegación consideramos que acepta su uso.