Existen plugins muy buenos en WordPress para hacer mejoras de rendimiento de diferentes tipos: caché de ficheros en WordPress, caché de ficheros a nivel de servidor (estilo nginx o Varnish), optimizadores de assets (JS y CSS), etc. Hay plugins que hacen todo y lo hacen todo bien, pero es muy normal, que al igual que hago yo, uséis más de un plugin para hacer estas labores. En mi caso es muy frecuente que use:
- como caché de fichero WP Fastest Cache
- como optimizador de CSS y JS Autoptimize
Me gustan los dos por su simplicidad, porque no tengo que pagar licencias para plugins que en muchos proyectos no aportan mucho más que la mezcla de ambos y porque son realmente populares y eso es garantía de éxito y fiabilidad en la comunidad WordPress.
Cachés que se borran en tiempos diferentes
El problema viene, al usar ambos a la vez, que en ocasiones puede darse el caso que:
- Minuto 1: Autoptimize genera su caché de assets, los guarda en una ruta
- Minuto 2: WPFC regenera su caché de fichero todo es correcto
- Minuto 3: Por algún motivo, Autoptimize regenera sus cachés
- Minuto 4: visitante que llega a la página ve todo mal porque el CSS o el JS no se está cargando porque WPFC está devolviendo rutas antiguas de la caché de Autoptimize
Por supuesto lo de Minuto N es figurado, solo lo pongo en ese orden para que entendáis la problemática, pero esto puede pasar a veces con horas entre los diferentes eventos.
¿Qué solución tenemos? Que cuando la caché de Autoptimize se borre, se borre la de WPFC y así evitamos el problema. ¿Cómo? Con un método sencillo como el que describo a continuación:
add_action( 'autoptimize_action_cachepurged', function(){ $wpfc = new WpFastestCache(); $wpfc->deleteCache(); } );
Estas líneas de código sé que las incluye Autoptimize internamente pero en ocasiones parece que no llega a ejecutarse por algún tipo de límite en los tiempos de ejecución.