[ Enxeñaría sen atallos ]

Cómo configurar un sistema de caché en WordPress correctamente

Baqueiro Desarrollo Web ·

TL;DR

  • La caché sirve versiones ya generadas de las páginas para no tener que procesarlas en cada visita. Mejora mucho la velocidad, pero mal configurada rompe funciones dinámicas.
  • Hay 3 tipos de caché con funciones distintas: de páginas, de objetos y de navegador. Cada una necesita su propia configuración.
  • En webs con WooCommerce, área de usuario o contenido personalizado, hay páginas que nunca deben cachearse. Configurar bien las exclusiones es tan importante como activar la caché.

“Instala un plugin de caché para que WordPress vaya más rápido” es un buen consejo. Lo que casi nunca se explica es que, sin configurarlo bien, puede crear problemas tan graves como los que resuelve.

Una caché mal configurada puede mostrar páginas desactualizadas, enseñar a un usuario datos de otro, romper el carrito de WooCommerce o hacer que los formularios fallen al enviarse. Y pueden pasar días antes de que alguien lo detecte.

Qué es la caché y por qué mejora la velocidad

Cada vez que alguien visita una página de WordPress, el servidor ejecuta código PHP, consulta la base de datos y monta el HTML que se envía al navegador. Todo eso consume tiempo y recursos.

Un sistema de caché interrumpe ese ciclo: la primera vez que se visita una página, el servidor la procesa normalmente y guarda el resultado. Las visitas siguientes reciben esa copia directamente, sin PHP ni base de datos: la respuesta es mucho más rápida y el servidor aguanta mejor los picos de tráfico.

El problema aparece cuando el contenido de una página tiene que cambiar (porque el usuario ha iniciado sesión, tiene productos en el carrito o el contenido se actualiza a menudo) y la caché sigue sirviendo la versión antigua. Por eso configurar las exclusiones es tan crítico como activar la caché. Ten en cuenta, además, que la caché es solo una pieza del rendimiento; aquí tienes otras formas de reducir el tiempo de respuesta de tu web sin tocar el código.

Los 3 tipos de caché en WordPress

Caché de páginas

Es la que más impacto tiene en la velocidad. Genera archivos HTML estáticos de las páginas y los sirve directamente, sin pasar por PHP ni por la base de datos. En páginas sin contenido dinámico, la mejora en el tiempo de respuesta suele ser muy notable.

La configuración clave es decidir bien qué se excluye. Nunca deben cachearse el carrito y el proceso de pago de WooCommerce, las páginas del área de usuario (mi cuenta, perfil, pedidos), cualquier página que cambie según quién la vea y las páginas que muestran una confirmación tras enviar un formulario.

Un caso menos conocido: muchos formularios llevan un código de seguridad temporal (el nonce de WordPress) que caduca al cabo de unas horas. Si la página sigue en caché más tiempo, el formulario falla al enviarlo. Por eso WP Rocket renueva la caché cada 10 horas por defecto; con otros plugins, acorta la vida de la caché en esas páginas.

Caché de objetos

WordPress hace muchas consultas a la base de datos para montar cada página. La caché de objetos guarda en memoria los resultados de esas consultas (normalmente con Redis o Memcached) para no repetirlas. Ayuda sobre todo en tiendas grandes y áreas de usuario, justo las páginas que la caché de páginas no puede cubrir.

No todos los hostings ofrecen Redis o Memcached. Los gestionados para WordPress suelen incluirlo o venderlo como complemento; en los compartidos básicos a menudo no está. Pregunta a tu proveedor antes de instalar nada.

Caché de navegador

Indica al navegador del visitante que guarde ciertos archivos (imágenes, CSS, JavaScript, fuentes) durante un período determinado. En las visitas siguientes se cargan desde el propio dispositivo, y la navegación entre páginas se acelera de forma clara.

Se configura en el servidor (.htaccess en Apache o la configuración de Nginx) o desde el propio plugin de caché.

Qué plugin elegir según tu caso

WP Rocket es uno de los plugins de caché más completos: configuración guiada, buena compatibilidad con WooCommerce, optimización de CSS y JavaScript integrada y un soporte técnico de calidad. Es de pago, con licencia anual. En webs que son canal de negocio, el tiempo que ahorra suele compensar el coste.

LiteSpeed Cache es gratuito y muy potente si tu hosting usa servidor LiteSpeed, algo habitual en muchos proveedores de hosting compartido. Pregúntalo antes de elegirlo: si tu servidor es Apache o Nginx, la caché de páginas del plugin no funciona y solo podrás aprovechar sus funciones de optimización.

W3 Total Cache es gratuito y tiene muchísimas opciones, pero su interfaz es compleja y es fácil equivocarse sin conocimientos técnicos.

Si tu hosting ya incluye caché de servidor, no la dupliques con la caché de páginas de un plugin: usa el plugin solo para lo que el hosting no cubre.

Configuración paso a paso para una web WordPress estándar

Paso 1: activa la caché de páginas con las exclusiones correctas

En WP Rocket, la caché de páginas se activa al instalar el plugin y las opciones están en la pestaña Caché. Si tu tema es responsive, no necesitas una caché separada para móviles. En las reglas avanzadas, añade las URL dinámicas que no deban cachearse. WP Rocket ya excluye el carrito, el pago y la cuenta de WooCommerce, pero compruébalo: otros plugins no siempre lo hacen.

Paso 2: activa la optimización de CSS y JavaScript con precaución

La minificación elimina espacios y comentarios de los archivos CSS y JavaScript para que pesen menos. Algunos plugins también combinan archivos o retrasan el JavaScript hasta que el usuario interactúa. Mejora la velocidad, pero es el paso con más riesgo: hay temas y plugins que dejan de funcionar cuando su JavaScript se modifica o se carga más tarde.

Activa las opciones de una en una y comprueba que la web funciona después de cada cambio: menús, formularios, carrito, sliders. Si algo se rompe, el culpable suele estar en las opciones de JavaScript. Y con HTTP/2, combinar archivos aporta poco.

Paso 3: configura la caché de navegador

Actívala en el plugin o en el servidor. Define períodos largos para los archivos que cambian poco (imágenes, fuentes, CSS del tema) y cortos o ninguno para lo que se actualiza a menudo. Los buenos plugins añaden un número de versión a los archivos para que, cuando cambian, el navegador descargue la versión nueva.

Paso 4: activa la precarga

La mayoría de plugins pueden generar la caché de todas las páginas por adelantado usando el sitemap XML. Así evitas que el primer visitante de cada página reciba la versión lenta. Configura la precarga para que se ejecute automáticamente cuando publicas o actualizas contenido y, en hostings modestos, vigila que no sature el servidor si tu web tiene miles de URL.

Paso 5: verifica que la caché no afecta a usuarios con sesión iniciada

Es el error más frecuente en webs con área de usuario: comprueba que quien ha iniciado sesión ve su contenido y no la página anónima cacheada. La mayoría de plugins permiten no cachear las páginas cuando hay sesión activa o crear una caché separada por usuario. Para probarlo, usa 2 navegadores: uno con sesión iniciada y otro en una ventana privada.

Errores de configuración más frecuentes

  • Cachear el carrito y el pago de WooCommerce, con el riesgo de mostrar a un cliente el carrito de otro.
  • Activar una optimización agresiva de JavaScript sin probar que el tema y los plugins siguen funcionando.
  • No configurar la limpieza automática de la caché al publicar o actualizar contenido.
  • Tener 2 plugins de caché activos a la vez, que interfieren entre sí.
  • No vaciar la caché (ni la del CDN, si usas uno) después de cambios importantes de diseño o contenido.

Si tienes una tienda online, en este caso en el que redujimos el tiempo de carga de una tienda WooCommerce de 8 a 2 segundos puedes ver cómo encaja la caché con el resto de optimizaciones.

Checklist: caché configurada correctamente

  • Caché de páginas activa, con exclusiones definidas para las páginas dinámicas.
  • Carrito, pago y cuenta excluidos explícitamente si hay WooCommerce.
  • Optimización de CSS y JavaScript activada y web revisada después de cada cambio.
  • Caché de navegador configurada con períodos de retención adecuados.
  • Precarga automática al publicar o actualizar contenido.
  • Comprobado que los usuarios con sesión iniciada ven su contenido personalizado.
  • Un único plugin de caché activo, sin conflictos con otros plugins de rendimiento.

Preguntas frecuentes

¿La caché funciona igual en todos los hostings?

No. Muchos hostings gestionados implementan la caché en el propio servidor (Nginx, Varnish o LiteSpeed), que responde antes de que WordPress llegue a cargarse y es más eficiente que la de un plugin. En hostings compartidos básicos, la caché de plugin suele ser la única opción.

¿Cada cuánto tiempo debería vaciarse la caché?

No hay una respuesta universal. Lo importante es que la caché se invalide automáticamente cuando el contenido cambia: al publicar o actualizar una entrada, al modificar un producto o cuando cambia el stock. Si funciona bien, solo hace falta vaciarla a mano tras cambios grandes de diseño.

¿La caché puede hacer que no se vean los cambios que hago?

Sí, es un síntoma típico de una invalidación automática que no funciona. Vacía la caché desde el plugin (y la del CDN, si lo usas) y prueba en una ventana privada para descartar la de tu navegador. Si se repite a menudo, hay que revisar la invalidación.

En Baqueiro configuramos la infraestructura de rendimiento de WordPress (caché, CDN y hosting) de forma integrada, no plugin por plugin. Si tu web sigue lenta aunque tenga un plugin de caché instalado, cuéntanoslo y lo revisamos.

[ Segue lendo ]

Máis ideas para o teu próximo proxecto.

[ Falemos ]

O teu próximo proxecto comeza cunha conversa.

Cóntanos que precisas resolver. Revisamos contigo o alcance e os seguintes pasos.

Cóntanos o teu proxecto