Ayer, repasando la lista de plugins de cache para WordPress encontré entre las notas de varios de ellos información realmente interesante acerca de porque es imprescindible usar cache con WordPress, más de lo que yo mismo pensaba, y tiene todo el sentido.
WordPress, como ya sabrás, es un sistema de gestión de contenidos (CMS) que se sirve de bases de datos. Esto, cuestiones técnicas a parte, significa que para que funcione WordPress y los visitantes puedan acceder a una entrada, página, etiqueta o categoría de tu web, se tienen que hacer multitud de conexiones a la base de datos que recogen esa información, todo ello gracias a miles de líneas de código programadas en PHP que hacen que todo funcione.
El problema surge porque por cada petición que hace un navegador a tu web se deben realizar toda esa serie de conexiones, lo que supone una enorme cantidad de necesidad de recursos, memoria, etc, de tu servidor. Además, esto se pone peor a medida que pasa el tiempo y tu sitio tiene más contenido, y tus visitas se multiplican, pues hay más navegadores (de tus visitantes) pidiendo una y otra vez que se realicen las mismas peticiones de información relacionada a la base de datos, y cada vez hay más datos que relacionar y más recursos a emplear.
Tu visitante no sabe lo que pasa ahí detrás, ni siquiera tu, pero tu servidor si que se entera.
Dicho de otra manera, sin cache, cuando un visitante trata de ver una página de tu web la página en si mismo en realidad no existe. En su lugar, el servidor recibe la petición, WordPress busca en la base de datos el contenido que se supone que está en la página y crea la página al instante antes de mostrarla, para que refleje los posibles últimos cambios (texto, comentarios, lo que sea). Cuando el visitante pasa a otra página la anterior desaparece y el proceso empieza de nuevo.
Aunque es una simplificación un poco de aquella manera en realidad es lo que pasa: el servidor tiene que crear la página cada vez que alguien quiere verla.
Esto, que es genial para que el visitante siempre vea la versión más actualizada de cada página conlleva demasiado esfuerzo y trabajo para un servidor de alojamiento, y si tu web tiene mucho contenido y visitantes puede superar los límites que tengas contratados de peticiones a la base de datos (que casualmente prácticamente nunca están en la descripción de tu hosting), o lo que es lo mismo, el uso de recursos de procesador y RAM de la máquina, virtualizada o no que tengas contratada, especialmente si concurren muchos visitantes al mismo tiempo.
En el lado contrario, con cache, WordPress no tiene que crear páginas nuevas cada vez. La página se crea una vez y se mantiene (en cache) durante un periodo de tiempo que definimos en las configuraciones de nuestro plugin de cache, normalmente de horas, aunque esto puede variar (y deberá hacerlo) de acuerdo a la cantidad de contenido y tráfico que nuestra web tenga.
Esto significa que las páginas si existen físicamente, como fotos instantáneas de nuestro contenido, y a los visitantes WordPress les muestra la versión en cache de las mismas, evitando de este modo que el servidor tenga que comprobar constantemente la base de datos y crear las páginas desde cero.
Los mismos ajustes de los plugins de cache, que hay muchos y buenos, te permitirán definir los intervalos, y todos contemplan la opción de crear una nueva versión en cache cuando cambia el contenido de una página o hay nuevos comentarios, por ejemplo.
El resultado es que para el visitante el proceso es más rápido y para el servidor más fácil y consume muchos menos recursos.
Los beneficios, en consecuencia, serán grandes, pues no solo mejorará el posicionamiento SEO de nuestra web, al ofrecer tiempos de carga más rápidos sino que jamás nos veremos penalizados por tener la web caída por exceso de tráfico y/o peticiones. Pues de nada sirve que nos ocupemos de difundir nuestros contenidos en Twitter, Facebook o meneame si luego el resultado es que ese tráfico nos tira la web y Google nos penaliza por tener el sitio totalmente off ¿no te parece?.
Otro beneficio adicional, en su sentido más estricto de la palabra, es que nos podemos ahorrar un buen montón de euros en costes de servidor, al requerir este de menos capacidad de proceso.
En cuanto a posibles inconvenientes, con los actuales plugins de cache, que permiten desactivar partes concretas (por ejemplo para Adsense), no los hay. Solo cuando estés haciendo cambios en la web es conveniente desactivarla, luego la activas de nuevo y ya está. Como dijo Andrés Nieto hace ya 4 años en otro artículo que publiqué sobre este tema «Lo veo igual que comprarse un Ferrari por si un día le he de pegar un acelerón. Si puedo lo luzco siempre«.
Creo que son razones simples y poderosas para que te tomes en serio usar cache en WordPress.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Es imprescindible para que no te echen del servidor. el espacio de hosting que tengo aunque utilice un ejercito para cachear solo aguanta 25 usuarios recurrentes
Yo tengo una duda sobre usar un plugin de cache, es si afecta a los anuncios de adsense, bueno, dice que hay inconvenientes, pero no entiendo bien como resulta al final, gracias. :3
Son elementos que se pueden excluir de la cache, por eso digo que es un inconveniente salvable
Por favor Fernando tengo un problema y nadie me sabe dar una solución. Ni en los foros de soporte de wordpress, ni la empresa de mi hosting, nadie. Ya no sé que hacer. Por favor, ayúdame. Creo que está relacionado con la cache.
Yo también creo que es muy necesario, pero estoy un poco hecho un lio.
¿cual recomiendas?
Depende de las necesidades pero yo uso, según el hosting, WP SuperCache o W3 Total Cache. Es probar el que vaya mejor con la configuración del servidor, que varía como ya sabrás
Estoy utilizando W3 Total Cache, probaré el SuperCache a ver que tal.
Gracias Fernando.
¿cual plugins. recomiendas?
¿Enserio vas a cortar los feeds?
OT: Fue una prueba de anoche, hoy los des-corto de nuevo
En instalaciones simples no e tenido problema alguno con los plugs de cache, pero tengo una instalación en red con buddypress, usé un tiempo «wp super cache» realmente aprovechaba mucho mejor los recursos del servidor, el sitio iba algo más rápido y dejé de tener unos pequeños plantones que hacía el servidor para protegerse (luego al actualizar la versión de wp y sin el plug de caché este problema desapareció). en definitiva y pa` hacerla corta tuve que desactivar el plug por que traía problemas a la hora de configurar la apariencia de los sitios creados en la red, no se veían las modificaciones inmediatamente, bueno, para mi esto no es un problema grabe ya que se arregla usando más de un navegador o limpiando el caché deslogueando y logueando. pero para los usuarios de la red si que es un problema, no logré solucionarlo, no encontré que config del plug soluciona esto.
Aunque tomé la decisión de por el momento no usar un plug de cache hasta que no encuentre uno sin efectos colaterales y sea capaz de configurarlo bien y aunque la mayor parte de mi ancho de banda, ram, etc se lo comen los malditos sploggers cosa que un plug de cache no soluciona (quien más trabaja en mi sitio es wanguard) agradecería la recomendacion de un plugin de cache apto para wordpress en red con buddypress sin efectos colaterales para la interactuación de los usuarios.
Pues usa el TotalCache pero sin el minify de js y arreando.
De todos los que prové, yo me quedo con el plugin Quick Cache ( Speed Without Compromise ), por su simplicidad en la configuración. Aunque como bien dicen por aquí, el problema de los plugins de caché es la configuración de zonas dinámicas como Google Adsense, plugins de encuestas, formularios de contacto, etc que no pueden estar cacheados para su buen funcionamiento. Y aquí surge la duda si tener la web cacheado o no.
Tengo una web con bastante trafico (20 mil visitas al dia)… Cual seria mejor? Y cual puedo poner pero que los codigos de los banners pueda cambiarlos y no se queden chacheados?
W3 totalcache seguramente, y no actives el minify de js
W3 Total Cache como dice Fernando y a parte, recomendaría usar Varnish.
Yo también uso aquí Varnish, conjuntamente con el W3 Total Cache, pero hay que afinarlos, que sino se atascan uno al otro y cosas así.
Yo uso cacheo con htaccess, aunque no es lo mismo y si gasta recursos, creo que he de pensármela bien esto del caché, a ver si logro mejorar más el tiempo de carga de mi web.
kj
Hola Fernando, podrías dar aunque sea una breve explicación o enlace de por qué no recomiendas activar el Minify de JS con plugins de cache?
Cómo he comentado a alguno que ha preguntado es para evitar que no se actualice información ejecutada en js, como en formularios, etc.
La idea es poner la cache, ver si todo funciona, y si algo no funciona ir desactivando a ver que interfiere.
Luego decides qué es más importante para tu sitio (que no para ti), si tener cacheado – y rápido – tu sitio o lleno de funcionalidades.
Yo uso wp-cache y no he tenido que configurar nada, me respeta adsense y todos contentos.
Tengo un problema con mi thema de wordpress, hice cambios en las imagenes del «esqueleto del thema» pero justamente esas imágenes rojas que son propias del thema, las cambie por color verde utilizando Photoshop. Ahora esas imágenes verdes que sí estan almacenadas en wp-content/themes/»nombre del theme»/imagenes . Y es aqui donde reciden el esqueleto del thema, pero lastimosamente no aparece la actualizacion «barras verdes», siguen apareciendo las «barras rojas» que son las que vinieron el thema al principio, he leido algo sobre los caches pero algun no encuentro dicha carpeta de cache, espero sus respuestas..»
Hola, resulta que yo uso WordPress y tengo un servidor dedicado ya que muchas veces alcanzó más de 20.000 personas online, de momento no uso ningún sistema de caché y mi servidor ya no puede más, tengo casi siempre la cpu al 100%, estuve mirando una cosa llamada cloudflare a ver que era y lo active ayer para ver como afectaba mi web, aparte de WordPress hace tiempo decidí pasar las páginas más vistas a un archivo .php que no estuviera dentro de WordPress pero creo que me sigue tirando demasiado del server, me gustaría saber sk cloudflare es la opción acertada o si mejor debería de meter estas páginas php otra vez en WordPress y usar uno de esos 2 plugins.
Un saludo
Buen articulo, no sabia este dato ya que estoy comenzando en wordpress.
¡Saludos!
No es necesario usar ningún plugin de caché si se sabe programar bien de hecho es un paso hacia atrás usarlos… el que me entienda sabrá lo que digo
¿Modifiqué mi archivo htaccess para que almacene en caché la información, pero no la vacía de manera inmediata apenas publico un post. Qué debo hacer para que la vacíe cada determinado tiempo?
Usa un plugin que lo haga por ti
Hola. Yo he hecho varias páginas y en varias de ellas he tenido que eliminar los plugins de caché (he probado varios). Creo que son buenos para páginas estáticas que muestren una información simple, blogs etc, pero no para páginas dinámicas. Me explico, creo que una tienda online que admita pagos con tarjeta no puede reflejar las interacciones de los usuarios al instante con caché, ni un restaurante online que abra o cierre unas horas determinadas los pedidos, tampoco una página que necesite enviar archivos adjuntos por correo. Hablo de tiendas, restaurantes de comida o una copistería que trabaja con archivos enviados online a su página. En todos esos casos he desactivado la caché por los errores «de tiempo real». Si estoy haciendo algo mal o se puede mejorar con caché respetando la interacción en tiempo real agradezco que me lo aclareis. Saludos 😉