Cuando abres una web por segunda vez, suele cargar bastante más rápido que la primera. No es casualidad: el navegador guarda en tu equipo copias de los archivos que ya descargó (el logotipo, las hojas de estilo, los scripts, las fuentes) y no vuelve a pedirlos. Eso es la caché.
El problema es que la caché mal configurada falla en las dos direcciones: o tus visitas descargan una y otra vez lo mismo, o ven una versión antigua de tu web después de que la hayas cambiado. Entender cómo funciona evita ambas cosas.
Qué es la caché y dónde vive
Hay varios niveles. La caché del navegador está en el dispositivo de cada visitante y evita descargas repetidas. La caché del servidor (o caché de página) está en tu hosting y guarda el resultado ya montado de una página para no tener que generarla desde cero en cada visita. Y entre ambos puede haber una CDN, una red que guarda copias de tus archivos en servidores cercanos al visitante.
Cada una ahorra un trabajo distinto: transferencia la primera, cálculo en el servidor la segunda.
Cache-Control: la cabecera que manda
Cache-Control es una cabecera HTTP, es decir, un mensaje que el servidor envía junto con cada archivo, y le dice al navegador durante cuánto tiempo puede reutilizarlo. Estos son los valores que más vas a ver:
max-age=N: el archivo se considera válido durante N segundos sin volver a preguntar al servidor. Por ejemplo,max-age=31536000equivale a un año.no-cache: el nombre engaña. Sí guarda el archivo, pero antes de usarlo pregunta al servidor si sigue siendo válido.no-store: no guardar nada en ningún sitio. Es lo adecuado para páginas con datos privados, como un área de cliente.immutable: avisa de que el archivo no cambiará mientras sea válido, así que el navegador ni siquiera lo revalida al recargar.
También verás public y private, que indican si cualquier caché intermedia puede guardar el archivo o solo el navegador del usuario.
ETag: preguntar antes de volver a descargar
Cuando una copia caduca (o cuando usas no-cache), el navegador no tiene por qué descargar todo de nuevo. El servidor envía junto al archivo un ETag, una especie de huella digital de su contenido. La siguiente vez, el navegador pregunta: tengo la versión con esta huella, ¿sigue valiendo? Si no ha cambiado, el servidor responde con el código 304 Not Modified, sin enviar el archivo, y el navegador reutiliza su copia.
Es más lento que no preguntar nada, pero mucho más ligero que descargar el archivo.
Versionado de archivos: cómo saltarse la caché cuando toca
Si das un año de caché a tu hoja de estilos, ¿cómo consigues que tus visitas vean la nueva cuando la modificas? Cambiando su dirección. A eso se le llama cache busting y hay dos formas habituales: un parámetro, como style.css?v=12, o una huella en el propio nombre, como style.4f2a9c.css. Para el navegador es un archivo distinto, así que lo descarga.
La combinación que mejor funciona: archivos estáticos (CSS, JavaScript, imágenes, fuentes) con nombre versionado y caché larga con immutable; y el HTML con no-cache o una caché muy corta, para que siempre apunte a las versiones nuevas. El error típico es poner caché larga a archivos sin versionar: tus visitas acaban viendo un HTML nuevo con un CSS antiguo y la web sale descuadrada. La huella en el nombre es más robusta que el parámetro, porque algunas cachés intermedias ignoran lo que va después del signo de interrogación.
Caché de página en el servidor y cómo comprobarlo
Si tu web se genera con PHP y una base de datos (como WordPress), cada visita obliga al servidor a trabajar. Una caché de página guarda el HTML final y lo sirve directamente. Debe vaciarse cuando publicas cambios, y conviene excluir páginas personales como el carrito, el pago o el área privada.
Para comprobar qué está pasando, abre las herramientas del navegador (F12), ve a la pestaña Network y recarga. En la columna de tamaño verás (memory cache) o (disk cache) cuando el archivo sale de la caché, y un estado 304 cuando se ha revalidado. Haz clic en un archivo y, en Headers, mira sus Response Headers para ver Cache-Control y ETag. La casilla Disable cache simula una primera visita. También sirve curl -I https://tudominio.com/archivo.css desde la terminal.
Preguntas frecuentes
¿Por qué sigo viendo mi web antigua si ya la he cambiado?
Puede ser la caché de tu navegador, la del servidor o la de una CDN. Prueba una recarga forzada (Ctrl+F5), una ventana privada y, si no cambia, vacía la caché del servidor o de la CDN. Si el problema lo sufren también tus visitas, probablemente falta versionar los archivos.
¿Qué valor de max-age debo poner?
No hay un valor universal. Para archivos con nombre versionado, un año es lo habitual; para el HTML, no-cache o unos pocos minutos.
¿La caché influye en el SEO?
No como factor directo, pero una buena caché acelera las visitas repetidas y reduce la carga del servidor, lo que ayuda a la experiencia general. Lo que sí perjudica es servir contenido obsoleto o romper la web por una caché mal planteada.