No uses plugins de caché con WordPress

Publicado en WebPerf · 03 mayo 2015.
Para usar plugins caché

Cuando hablé del porqué WordPress es lento, recomendé el no uso de plugins de caché. Hoy toca ver la razón.

Para saber el porqué de no usar plugins de caché, antes tenemos que saber que es la caché y cómo se realiza. Para verlo claro, vamos a verlo primero con la caché del navegador y luego lo llevaremos a un ejemplo ficticio y finalmente lo veremos con WordPress.

Cuando una persona escribe una dirección web en un navegador, éste se encarga de bajar los archivos que forman la página web y presentárselos al usuario. Si el proceso se realiza 10, 100 o mil veces, en un corto periodo de tiempo - por ejemplo, 10 segundos o cuatro minutos-, ¿ qué sentido tiene bajarse los archivos cada vez ?. Será muy raro que haya algo nuevo en ese periodo tan corto de tiempo. Así que lo que hacen los navegadores es guardar los archivos de una página web en tu ordenador. De esta manera que si la vuelves a pedir, y no ha pasado mucho tiempo de la última vez, no se molesta en bajarlos de nuevo sino que te muestra los que ya tiene en el ordenador. Si ya ha pasado un tiempo, unas horas, días o semanas, desde la última vez si que vuelve a bajar los archivos.

Esa copia en el disco duro que hace el navegador se llama caché, al proceso de crearla le llamamos, informalmente, cachear y al proceso de borrar y bajar de nuevo los archivos de una web se le llama refrescar, o limpiar, la caché.

¿ Hay algún inconveniente en el uso de caché en un navegador ?. La verdad es que no, por eso se inventó. Mi web la actualizo de semana en semana y no tiene sentido que un navegador que se haya bajado una página web de mi sitio lo baje de nuevo de hora en hora o de día en día. Pero, ¿ qué pasa con los sitios de noticias ?. Podríamos perdernos de noticias importantes si nuestro navegador no refrescara su caché y las mostrará. Por suerte, para evitar este último caso los desarrolladores web tenemos la opción de especificar en cada web cuanto tiempo es el máximo que debería de usar un navegador para cachear una de nuestras páginas web. También hay formas para que un usuario fuerce el limpiado de caché.

Los sistemas de caché en WordPress funcionan de igual manera a un navegador. WordPress, junto con los plugins que tengas instalado y el tema activo, van generando código que luego será el que se mande al navegador. Ante de mandarlo, se guarda y así no se tiene que volver a generar. Así, todos felices y tan contentos. Pues, no. Porque WordPress no es un navegador, WordPress además está orientado a la flexibilidad por lo que su forma de funcionar es incompatible con este tipo de plugins. ¿ Lo vemos con un ejemplo ficticio y luego ya más técnicamente ?.

Imagínate una empresa de fabricación de abrigos llamada WordPress. Esta empresa construye abrigos con una cadena de montaje formada por un número indeterminado de operarios. Pero, esta no es una cadena de montaje de abrigos común y corriente como las demás empresas. Es decir, en este caso, los abrigos no se van fabricando uno tras otro, siempre igual y con el mismo resultado. Esto es así porque la empresa WordPress es flexible y permite que cada cliente personalice cada abrigo. De tal manera, que cada operador de la cadena de montaje, llama por teléfono al dueño que tendrá ese abrigo para avisarle de lo que va a realizar por si quiere algo diferente. Supongamos que te llamas, Fulanito y que la empresa WordPress te va a hacer un abrigo:

  • Operador 1: Hola, Sr Fulanito, soy el encargado de selección de telas. Había pensado ponerle en su abrigo piel de tigre, ¿ le gusta o prefiere otro ?.
  • Operador 2. Hola, Sr Fulanito, ya le hemos puesto la tela que seleccionó con el Operador1. Yo soy el operador que se encarga de la manga izquierda. Había pensado que tuviera 40cm de largo y 15cm de ancho. ¿ le parece bien ?.
  • ...siguen operarios tras operarios...
  • Operador 15: Hola, Sr Fulanito, soy el operario de poner el botón tercero de su abrigo. Lo había pensado en verde y con las medidas que pidió para los anteriores a predecesores operarios, ¿ le parece bien ?.
  • ...siguen más operarios tras más operarios...
  • Operador 50:Hola, Sr Fulanito, soy el operario encargado de enviarle el abrigo. Había pensado llevárselo en moto y a su dirección.

Como vemos, la fabricación de abrigos así es un muy lenta. Eso sí, muy flexible pues permite al cliente tener un abrigo tal y como deseó. Si en el año 4.000 descubren una manera de cachear cadenas de montajes, quizás podrán con todas menos con esta. No tiene sentido que a todos los clientes se le dé el mismo abrigo cuando esta empresa lo que quiere, y es su valor diferenciador, que cada cliente tenga su abrigo según sus gustos.

Ya volviendo a la vida real, y dejando atrás ejemplos fantasiosos, el CMS WordPress funciona como esa cadena de producción. Es decir, la zona de gestión y la visualización de tu web se van realizando en base a minis tareas. Durante la creación de cada tarea, el encargado software de cada tarea se detiene y pregunta ¿alguien quiere modificar lo que estoy haciendo o voy a hacer ?. A este paso de detenerse y preguntar, en desarrollo, se le llama poner un hook. ¿ Y quién responden a estas peticiones o hooks ?, los plugins o el tema.

No es muy complejo verlo. Si ponemos por caso un plugin de Google analytics, lo que hace es esperar a que el encargado software de hacer la cabecera diga que ya la está haciendo y que si alguien quiere hacer algún cambio. En ese caso, el plugin de Google analytics, que está a la escucha, toma el control y realiza un cambio a la cabecera para meter el código de Google Analytics. Después, la cadena de montaje de la web prosigue.

¿ Qué estás haciendo al instalar un plugin de caché ?. Estás evitando los hooks o que los plugins no puedan hacer uso de los hooks cuando lo necesitan. Es decir, estás cargándote como funciona WordPress.

A mi me gusta comparar el uso de plugins de caché con hacer un torniquete. Si tienes una hemorragia grave, y no te queda otra, usa un torniquete y así te librarás de morir desangrado. Eso sí, haz de saber que puedes quedar con una extremidad amputada. Ni que decir tiene que sólo uses torniquetes como último recurso. Lo mismísimo para los plugins de caché, úsalo sólo como último recurso y sabiendo lo que haces. Seguramente termines con código amputado, pero lo hiciste con conocimiento de causa, ¿ no es cierto ?.

Seguro que te oigo decir: podríamos hacer como con los navegadores, es decir, usar caché para periodo de tiempos pequeños. El caso es que una web puede determinar cuanto tiempo es lo recomendable de caché( un día, una semana o que no quiere caché ). Sin embargo, en WordPress, si yo desarrollo un plugin, no puedo decirle al plugin de caché cuando no hacerlo.

Así que por más que leas en blogs, foros, libros o revista, lo diga pepito, pepa o el mismisimo Papa, NO USES PLUGINS DE CACHÉS a no ser que sepas bien lo que estás haciendo. Para tener una web rápida no hace falta tener plugins de caché. Te lo dice uno que tiene un 99%/99% en Gtmetrix o un 100% en pingdom sin usar plugin de caché para nada. Hay soluciones mejores y más sanas a los plugins de caché.

Nota: Si aún te queda alguna duda sobre esto, al menos hazlo por seguridad.

¡ Compártelo !
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.