Guías Prácticas

Cómo configurar la caché del navegador (browser caching) en tu web

Cómo configurar la caché del navegador (browser caching) en tu web

Los tiempos de caché del navegador (browser caching) se configuran mediante reglas de caché HTTP que indican durante cuánto tiempo deben guardarse los archivos estáticos de tu sitio web en el navegador del visitante. En la práctica, se definen cabeceras como Cache-Control y, en algunos entornos, Expires para archivos CSS, JavaScript, imágenes, fuentes e iconos; por ejemplo, 1 año para CSS y JS versionados, entre 30 días y 1 año para imágenes, y periodos cortos o revalidación para páginas HTML. Una configuración correcta evita que los mismos archivos se descarguen una y otra vez, acelera la carga de las páginas y ayuda a mejorar métricas de Core Web Vitals.

En esta guía veremos cómo funciona la caché del navegador, qué duración conviene asignar a cada tipo de archivo y cómo aplicarla paso a paso en Apache, Nginx, LiteSpeed, WordPress y CDN. El objetivo no es solo conseguir una puntuación verde en una herramienta de velocidad; se trata de servir archivos actualizados al usuario, usar mejor los recursos del servidor, reducir el TTFB y el consumo de ancho de banda, y lograr una mejora perceptible en las visitas recurrentes. Especialmente en hosting compartido, hosting WordPress y proyectos web corporativos, una buena estrategia de caché es una de las optimizaciones de rendimiento más eficaces y económicas. Paquetes de hosting web Hostragons

¿Qué es la caché del navegador?

La caché del navegador consiste en guardar temporalmente en el dispositivo del usuario los recursos estáticos que se descargan al abrir una página web. Cuando una persona entra en tu página de inicio, el navegador descarga el logotipo, la hoja CSS, los archivos JavaScript, las fuentes y las imágenes. Si esos archivos tienen cabeceras de caché bien configuradas, al pasar a una segunda página o volver más tarde al sitio, el navegador no tendrá que pedir de nuevo parte de esos recursos al servidor. Como resultado, la página carga más rápido.

Imagina, por ejemplo, que tu página de inicio pesa 2 MB. Si 1,4 MB corresponden a imágenes, 300 KB a CSS y JS, y 100 KB a fuentes, en la primera visita es normal que esos recursos se descarguen. Pero en la segunda visita, si el navegador puede reutilizar los archivos estáticos desde el almacenamiento local, la cantidad de datos transferidos por la red cae de forma drástica. Esta diferencia se nota todavía más en conexiones móviles, redes lentas y sitios con mucho tráfico.

No conviene confundir la caché del navegador con la caché del lado del servidor. La caché de servidor guarda salidas PHP, resultados de consultas a la base de datos o páginas generadas en el propio servidor. La caché del navegador, en cambio, permite reutilizar recursos almacenados en el dispositivo del visitante. Para obtener el mejor rendimiento, ambas capas deben planificarse juntas. En sitios WordPress, la caché de página, la caché de objetos, la caché CDN y la caché del navegador suelen formar parte de la misma estrategia de optimización. Hosting de WordPress y optimización del rendimiento

¿Por qué el browser caching es importante para el SEO?

Google valora los sitios que ofrecen una experiencia rápida, estable y cómoda para el usuario. La caché del navegador no garantiza por sí sola mejores posiciones en los resultados de búsqueda; sin embargo, sí contribuye al rendimiento SEO porque influye en la velocidad de carga, la latencia de interacción y la eficiencia con la que se sirven los recursos. Marca una diferencia notable en escenarios como visitas recurrentes, navegación por categorías, paso entre fichas de producto o lectura de varios artículos dentro de un blog.

En los estándares SEO de 2026, el rendimiento técnico no se reduce a una puntuación de Lighthouse. La experiencia de usuario que evalúa Google está relacionada con LCP, INP, CLS, TTFB y datos reales de usuarios. Si los archivos CSS y JS se descargan innecesariamente en cada página, el LCP puede empeorar. Si las fuentes se solicitan de nuevo constantemente, la estabilidad visual puede verse afectada. Si las imágenes pesadas no se almacenan en caché, el usuario móvil percibirá el sitio como lento.

  • Visitas recurrentes más rápidas: El usuario no vuelve a descargar los mismos archivos.
  • Menor consumo de ancho de banda: Disminuye el tráfico del servidor y se aprovechan mejor los recursos del hosting.
  • Mejor eficiencia de rastreo: La entrega de recursos estáticos es más ordenada tanto para bots como para usuarios.
  • Menor riesgo de rebote: Las páginas que abren rápido favorecen la interacción del visitante.
  • Rendimiento más consistente: Se equilibran mejor los picos de carga en el hosting y en la CDN.

Cabeceras HTTP de caché esenciales

Los tiempos de caché del navegador se gestionan mediante cabeceras de respuesta HTTP. Las más habituales son Cache-Control, Expires, ETag y Last-Modified. En proyectos modernos, el punto principal de control es la cabecera Cache-Control; Expires se usa sobre todo por compatibilidad con navegadores o configuraciones antiguas.

Cache-Control

Cache-Control indica al navegador y a los sistemas intermedios de caché cómo debe almacenarse un archivo. Las directivas más utilizadas son estas:

  • max-age: Indica durante cuántos segundos se considera fresco el recurso. Por ejemplo, max-age=31536000 equivale aproximadamente a 1 año.
  • public: Señala que el recurso puede almacenarse en el navegador y en cachés compartidas, como una CDN.
  • private: Indica que el recurso solo debe guardarse en el navegador del usuario.
  • no-cache: Obliga a revalidar el recurso con el servidor antes de usarlo; no significa que la caché esté totalmente desactivada.
  • no-store: Indica que el recurso no debe guardarse en ningún sitio; es apropiado para pagos, paneles privados y páginas con datos personales.
  • immutable: Comunica que el recurso no cambiará hasta que expire; es ideal para activos con nombre de archivo versionado.

Una cabecera típica para un archivo estático podría ser: Cache-Control: public, max-age=31536000, immutable. Esto le dice al navegador que puede guardar el archivo durante 1 año y que no necesita comprobarlo de nuevo mientras el nombre del archivo no cambie.

Expires

La cabecera Expires indica hasta qué fecha y hora es válido un recurso. Por ejemplo, para una imagen se puede definir un valor Expires situado 30 días en el futuro. Sin embargo, como Expires utiliza una fecha absoluta, es menos flexible que Cache-Control. En configuraciones actuales se prioriza Cache-Control, mientras que Expires puede añadirse como apoyo para compatibilidad hacia atrás.

ETag y Last-Modified

ETag y Last-Modified son mecanismos de validación. El navegador puede preguntar al servidor si la versión del archivo que tiene almacenada sigue estando actualizada. Si el archivo no ha cambiado, el servidor devuelve una respuesta 304 Not Modified y no se descarga de nuevo el cuerpo del archivo. Este método es especialmente útil para HTML, contenidos que cambian con frecuencia o archivos a los que no quieres asignar una caché demasiado larga.

¿Qué tiempo de caché conviene para cada tipo de archivo?

Uno de los errores más comunes es aplicar la misma duración a todos los tipos de archivo. Sin embargo, HTML, CSS, JS, imágenes, fuentes y respuestas API tienen patrones de actualización distintos. La regla general es sencilla: si puedes cambiar el nombre del archivo, puedes cachearlo durante más tiempo; si el contenido cambia a menudo sin cambiar el nombre, conviene usar periodos cortos o revalidación.

¿Qué tiempo de caché conviene para cada tipo de archivo?
Tipo de recursoDuración recomendadaCabecera recomendadaNota
Páginas HTML0-10 minutos o revalidaciónno-cache, max-age=0Si el contenido cambia con frecuencia, la frescura manda.
CSS y JS30 días-1 añopublic, max-age=31536000, immutableEl archivo debe estar versionado: por ejemplo, style.v3.css.
Imágenes30 días-1 añopublic, max-age=2592000 o 31536000Logotipos e iconos pueden durar más; banners de campaña, menos.
Fuentes6 meses-1 añopublic, max-age=31536000, immutableLos archivos WOFF2 suelen cambiar muy poco.
PDF y medios7 días-6 mesespublic, max-age=604800 o 15552000En catálogos que se actualizan, hay que elegir la duración con cuidado.
Admin y páginas de pagoSin cachéno-store, privateLa prioridad es la seguridad y la protección de datos personales.

Esta tabla es un buen punto de partida general. En una tienda online, las páginas HTML con información de stock y precios no deberían cachearse de forma agresiva. En cambio, las imágenes de producto pueden guardarse durante 1 año si se cambia el nombre del archivo cuando se actualizan. En una web corporativa, el logotipo, las fuentes y los archivos del tema pueden conservarse durante mucho tiempo; pero si los banners de promociones cambian a menudo, una duración de 7 a 30 días puede ser más segura.

Cómo planificar los tiempos de caché del navegador

Para crear una estrategia de caché eficaz, primero clasifica los archivos de tu sitio. Técnicamente, lo habitual es escribir reglas según la extensión del archivo; estratégicamente, lo importante es decidir la duración en función de la frecuencia de actualización.

1. Separa recursos estáticos y dinámicos

Archivos como CSS, JS, JPG, PNG, WebP, SVG y WOFF2 son recursos estáticos. HTML, carrito, panel de usuario, resultados de búsqueda y respuestas API se consideran dinámicos. Los recursos estáticos pueden cachearse durante más tiempo, mientras que el contenido dinámico debe gestionarse con más prudencia. En especial, no debe usarse caché public en contenidos personalizados para un usuario concreto.

2. Usa versionado de archivos

La forma segura de aplicar tiempos de caché largos es versionar los archivos. Si cacheas style.css durante 1 año y después modificas su contenido, algunos usuarios podrían seguir viendo el diseño antiguo. En su lugar, utiliza nombres como style.2026.01.css, app.v12.js o archivos con hash, por ejemplo app.8f3a2.js. Así, cuando publicas una actualización, se llama a un nuevo nombre de archivo y el navegador descarga el recurso actualizado.

Los temas de WordPress y las herramientas modernas de build pueden automatizar este proceso. Si desarrollas un tema, usar el parámetro version en las funciones wp_enqueue_style y wp_enqueue_script facilita la gestión de versiones mediante query string o nombre de archivo. Aun así, como algunas configuraciones de CDN tratan los query strings de forma distinta, añadir un hash directamente al nombre del archivo suele ser un método más robusto.

3. No seas agresivo con el HTML

Las páginas HTML contienen el contenido principal que ve el usuario, por lo que normalmente se gestionan con caché corta o revalidación. En artículos de blog, una caché de 5-10 minutos puede ser suficiente; en noticias, promociones o páginas con precios, conviene usar periodos más breves. Si utilizas caché de página en WordPress, piensa la cabecera de caché del navegador junto con la caché de servidor y el mecanismo de purge de la CDN.

4. Desactiva la caché en páginas sensibles

En páginas de inicio de sesión, área de cliente, proceso de pago, resumen de pedido, facturas y cualquier pantalla con datos personales, conviene usar cabeceras como Cache-Control: no-store, private. La caché del navegador sirve para mejorar el rendimiento, pero nunca debe poner en riesgo la privacidad. El uso de SSL también es un requisito básico en este punto. Certificados SSL Hostragons

Configuración de caché del navegador con Apache .htaccess

En servidores Apache, la caché del navegador suele configurarse mediante el archivo .htaccess. Para muchos propietarios de sitios en hosting compartido, esta es la vía más práctica. Antes de empezar, los módulos mod_expires y mod_headers deben estar activos. En la mayoría de entornos de hosting de calidad, estos módulos ya vienen habilitados.

Puedes trabajar con esta lógica: duración larga para imágenes y fuentes, duración larga para CSS y JS, y revalidación corta para HTML. En las reglas que añadas a .htaccess se definen valores ExpiresByType y Header set Cache-Control según el tipo de archivo. Por ejemplo, se puede aplicar 1 año a image/webp, image/jpeg, image/png e image/svg+xml; 1 año a text/css y application/javascript; y no-cache a text/html.

Antes de tocar el archivo .htaccess, haz una copia de seguridad. Una regla mal escrita puede provocar un error 500 Internal Server Error. Después de los cambios, abre el sitio en una ventana de incógnito y revisa en la pestaña Network de DevTools la sección response headers del archivo correspondiente. Si no aparece Cache-Control, puede que el módulo del servidor esté desactivado, que la CDN esté modificando la cabecera o que otro plugin esté sobrescribiendo los encabezados.

Como valores iniciales en Apache, puedes usar max-age=31536000 para CSS y JS, max-age=31536000 para imágenes, max-age=2592000 para PDF, y max-age=0 con no-cache para HTML. Estos valores son adecuados para empezar, pero deben ajustarse al ritmo de publicación de tu sitio. Al utilizar ajustes de rendimiento mediante .htaccess en la infraestructura de hosting de Hostragons, es recomendable comprobar que no entren en conflicto con la configuración de caché de tu tema o tus plugins. ajustes de rendimiento de Apache .htaccess

Configuración de browser caching con Nginx

En servidores Nginx, las cabeceras de caché se definen dentro de bloques server o location. Nginx es muy utilizado en proyectos con mucho tráfico por su alto rendimiento al servir archivos estáticos. La idea básica es establecer valores expires y add_header Cache-Control mediante reglas location basadas en extensiones.

Un enfoque típico sería aplicar expires 1y y Cache-Control public, immutable a recursos estáticos como CSS, JS, WebP, JPG, PNG, SVG y WOFF2. Para salidas HTML, suele preferirse expires off o no-cache. Si utilizas una CDN, también debes probar cómo interpreta la CDN las cabeceras Cache-Control que llegan desde el servidor de origen.

Un detalle importante en Nginx es que la directiva add_header, en ciertas situaciones, solo se aplica a determinados códigos de respuesta. En configuraciones modernas puede usarse el parámetro always. Además, si la misma cabecera se añade desde la aplicación, desde Nginx y desde la CDN, pueden aparecer valores Cache-Control duplicados o contradictorios. En ese caso, conviene aclarar la cadena de prioridad y elegir una única fuente de autoridad.

Caché en LiteSpeed y sitios WordPress

Caché en LiteSpeed y sitios WordPress

Los servidores LiteSpeed ofrecen una gran ventaja de rendimiento en proyectos WordPress, especialmente junto con el plugin LiteSpeed Cache. Aun así, hay que distinguir entre caché del navegador y caché de página. Cuando se activa la opción Browser Cache en LiteSpeed Cache, las cabeceras de caché para archivos estáticos pueden aplicarse automáticamente. De todos modos, es importante revisar las duraciones.

En WordPress, la práctica recomendada es cachear los activos estáticos durante periodos largos y mantener activo el versionado de archivos. Cuando actualices el tema, cambies CSS o modifiques JavaScript, el plugin debe limpiar la caché; si usas CDN, también habrá que realizar el purge correspondiente. De lo contrario, algunos usuarios podrían ver un diseño antiguo o experimentar comportamientos rotos en JavaScript.

Los plugins de caché populares incluyen opciones como Browser Cache, Minify, Combine, Critical CSS, integración con CDN y Object Cache. Activarlo todo de forma agresiva al mismo tiempo no siempre es buena idea. Primero configura correctamente las cabeceras de caché del navegador y después prueba la minificación y combinación de archivos. En 2026, con HTTP/2 y HTTP/3 ampliamente extendidos, unir todos los archivos ya no es tan crítico como antes; incluso puede reducir la eficiencia de la caché en algunos casos.

Si tu sitio WordPress va lento, el problema quizá no sea solo la caché del navegador. Una base de datos inflada, un tema pesado, demasiados plugins, imágenes sin optimizar o un hosting con pocos recursos también afectan al rendimiento. Por eso, evalúa la configuración de caché junto con un hosting de calidad, una versión actual de PHP y una configuración SSL correcta. Hosting WordPress Hostragons

Cómo ajustar los tiempos de caché al usar una CDN

Una CDN entrega tus archivos estáticos desde servidores edge cercanos geográficamente al usuario. La caché del navegador, por su parte, guarda el archivo en el propio navegador del visitante. Cuando estas dos capas trabajan juntas, la mejora de rendimiento es más evidente. Pero la duración de edge cache que defines en el panel de la CDN debe estar alineada con las cabeceras Cache-Control del servidor de origen.

Un enfoque general puede ser este: asigna 1 año de Cache-Control a los archivos estáticos en el servidor de origen y define en la CDN un TTL igual o controlado. Cuando haya cambios, versiona el nombre del archivo o ejecuta un purge en la CDN. En páginas HTML, si decides usar caché de CDN, crea reglas específicas; deja siempre fuera de caché áreas como carrito, cuenta, pagos y panel de administración.

Un problema frecuente en sitios con CDN es que, tras una actualización, siguen apareciendo archivos antiguos. La causa suele ser que se cambió el contenido sin cambiar el nombre del archivo, o que no se hizo purge de la CDN. El método más sólido es generar archivos con hash durante el proceso de build y llamar al nuevo nombre desde el HTML. Así, aunque el navegador y la CDN conserven el archivo viejo, la página nueva solicitará el archivo nuevo.

Lista de comprobación paso a paso

La siguiente lista de comprobación ofrece un plan práctico para configurar los tiempos de caché del navegador. En una web corporativa pequeña puede aplicarse en 30-60 minutos; en tiendas online o proyectos a medida, conviene reservar más tiempo para pruebas.

  • 1. Haz un inventario de archivos: Separa CSS, JS, imágenes, fuentes, PDF, HTML y respuestas API.
  • 2. Define la frecuencia de actualización: Anota qué archivos cambian a diario y cuáles solo una vez al mes.
  • 3. Elige una estrategia de versionado: Usa hash en el nombre del archivo, parámetro de versión o número de build.
  • 4. Añade reglas en el servidor: Define cabeceras Cache-Control en Apache, Nginx, LiteSpeed o en el panel de la CDN.
  • 5. Excluye las páginas sensibles: Usa no-store en admin, pagos, carrito, área de usuario y páginas con datos personales.
  • 6. Prueba la configuración: Verifica con Chrome DevTools, curl -I, WebPageTest, Lighthouse y pruebas en dispositivos reales.
  • 7. Monitoriza después de publicar: Comprueba si aparecen archivos antiguos, diseños rotos o errores de JavaScript.

Cómo probar la caché del navegador

La forma más rápida de saber si la configuración funciona es utilizar las herramientas de desarrollo del navegador. En Chrome, abre la página, entra en la pestaña Network de DevTools, haz clic en un archivo CSS o una imagen y revisa el valor de Cache-Control en Response Headers. En la segunda carga, puedes ver expresiones como memory cache o disk cache en la columna Status.

Si prefieres la línea de comandos, el comando curl -I tudominio.com/archivo.css muestra las cabeceras de respuesta. Ahí puedes comprobar Cache-Control, Expires, ETag y Last-Modified. Si no aparece la cabecera esperada, puede que una de las capas —aplicación, servidor web o CDN— esté cambiando la configuración.

Para pruebas de rendimiento puedes usar Lighthouse, PageSpeed Insights y WebPageTest. Pero no apliques sus recomendaciones a ciegas: interprétalas según escenarios reales de usuario. Por ejemplo, Lighthouse puede recomendar tiempos de caché largos para archivos estáticos, pero no espera la misma agresividad en tus páginas HTML. Además, estas herramientas a veces muestran advertencias sobre scripts de terceros; en Google Fonts, redes publicitarias o scripts de redes sociales, es posible que tú no controles la duración de caché.

Errores frecuentes

La caché del navegador parece sencilla, pero una mala configuración puede generar problemas de actualización, riesgos de seguridad y fricciones en la experiencia de usuario. Los siguientes errores son especialmente habituales al empezar.

  • Aplicar 1 año de caché a todos los recursos: HTML, respuestas API y contenidos personalizados no deben entrar en esa regla.
  • Usar caché larga sin versionar archivos: Los usuarios pueden seguir viendo CSS o JS antiguos.
  • Olvidar el purge de la CDN: Aunque el origen esté actualizado, la CDN puede seguir sirviendo archivos viejos.
  • Acumular plugins de caché: Varios plugins pueden escribir las mismas cabeceras y crear conflictos.
  • Malinterpretar avisos de terceros: Las cabeceras de caché de scripts externos pueden no estar bajo tu control.
  • Cachear páginas sensibles: En pagos y cuentas de usuario debe utilizarse no-store.

Valores iniciales recomendados

Para un sitio nuevo, una configuración segura puede resumirse así: CSS y JS versionados, 1 año; imágenes, 1 año; imágenes de campañas que cambian a menudo, 30 días; fuentes, 1 año; PDF, entre 7 y 180 días según su frecuencia de actualización; páginas HTML, no-cache o una duración corta de pocos minutos. Este enfoque mantiene un buen equilibrio entre rendimiento y contenido actualizado.

Si tu sitio es una web corporativa de presentación, los tiempos de caché largos suelen funcionar sin problemas. Si tienes una tienda online, puedes aplicar caché larga a los archivos estáticos de la ficha de producto, pero debes excluir precio, stock, carrito y datos de usuario. Si gestionas un medio, blog o portal de noticias, puedes guardar imágenes y archivos del tema durante más tiempo y cachear el HTML durante periodos cortos según tu ritmo de publicación. El dominio, el SSL y la infraestructura de hosting también forman parte de la cadena de rendimiento. Consulta de dominio Hostragons Soluciones de hosting empresarial Hostragons

Conclusión

Los tiempos de caché del navegador, bien planificados, pueden mejorar de forma notable el rendimiento de tu sitio en visitas recurrentes. La regla básica es aplicar duraciones largas a archivos estáticos versionados y usar periodos cortos o no-store en HTML y páginas con datos personales. En Apache, Nginx, LiteSpeed, WordPress y CDN, la lógica es la misma: identifica el tipo de recurso, determina su frecuencia de actualización, prueba las cabeceras Cache-Control y sigue monitorizando después de publicar.

En resumen, el browser caching es una optimización de velocidad de bajo coste y alto impacto. Si alojas tu sitio en la infraestructura de Hostragons, puedes reforzar tanto la experiencia de usuario como el SEO técnico seleccionando los ajustes de caché adecuados para tu tipo de hosting. Para encontrar la solución de alojamiento que mejor encaja con tu proyecto, revisa las opciones de hosting de Hostragons o comprueba paso a paso la configuración de caché de tu sitio actual. Paquetes de Hosting Hostragons

Preguntas frecuentes

¿Cuál debe ser el tiempo de caché del navegador?

Para archivos estáticos versionados como CSS, JS, imágenes y fuentes, lo ideal suele estar entre 30 días y 1 año. En páginas HTML, como la actualidad del contenido es importante, conviene usar no-cache, max-age=0 o un periodo corto de pocos minutos.

¿Cuál es la diferencia entre Cache-Control y Expires?

Cache-Control es una cabecera HTTP moderna y más flexible; utiliza reglas basadas en segundos, como max-age. Expires define una fecha y hora concretas. En proyectos actuales, Cache-Control debe tener prioridad y Expires puede añadirse para compatibilidad con sistemas antiguos.

¿Cómo activar browser caching en WordPress?

En plugins como LiteSpeed Cache, WP Rocket o W3 Total Cache puedes activar la opción Browser Cache o caché del navegador. También puedes añadir cabeceras Cache-Control por tipo de archivo mediante .htaccess o configuración del servidor.

Si uso una caché larga, ¿dejarán de verse las actualizaciones del sitio?

Si modificas un archivo CSS o JS sin cambiar su nombre, algunos usuarios pueden seguir viendo la versión antigua. Para evitarlo, utiliza versionado de archivos, nombres con hash y purge de CDN cuando corresponda.

¿Deben cachearse las páginas de pago y el área de usuario?

No. En páginas con datos personales como pago, carrito, cuenta, factura y panel de administración deben usarse cabeceras seguras como Cache-Control: no-store, private. No se debe sacrificar la seguridad por rendimiento.

Comparte este artículo:
Sophia Mendes

Especialista en Soluciones en la Nube

Tiene más de 8 años de experiencia en arquitectura de nube y gestión de datos. Se especializa en el diseño de aplicaciones basadas en la nube.

Todos los artículos →