STATUS IS UPWIKI DE OPTIMIZACIÓN WEB
20Acelerar
Rendimiento y entrega / Acelerar

Guía de caché del navegador para propietarios de sitios

Establece reglas HTTP claras para que las visitas repetidas eviten descargas innecesarias sin atrapar a los visitantes en páginas antiguas o en contenido personalizado inseguro.

Guía de caché del navegador para propietarios de sitios — GUÍA VISUAL
LEER
7 minutos
FUENTES
6
REVALIDAR
2027-03-27
revisado
Revisor de rendimiento web e ingeniería de releases
LA RESPUESTA BREVE

Empieza con la decisión.

Usa una regla de caché distinta para cada tipo de URL. Asigna una larga vida útil a archivos cuyo contenido nunca cambia en esa URL, como JavaScript, CSS, fuentes e imágenes con nombre por huella (fingerprint). Da a HTML y otras respuestas no versionadas una política que haga que el navegador valide antes de reutilizar cuando la actualidad importe. Publica una nueva URL de activo cada vez que cambie un activo; una larga vida de caché no puede deshacerse de manera fiable para copias que todavía están frescas.

Empieza con cabeceras Cache-Control explícitas y luego verifica las cabeceras y el comportamiento del navegador en un entorno de staging. Combina respuestas amigables con la validación con ETag y, cuando esté disponible, Last-Modified. Trata las respuestas personalizadas, de cuenta, de pago y sensibles por separado de las páginas públicas. SIU utiliza este trabajo como optimización proactiva de uptime: reduce trabajo innecesario en el origen y evita defectos relacionados con caché antes de que interrumpan un sitio usable.

GUÍA VISUAL

Ve el trabajo como un sistema.

Usa este mapa para conectar las decisiones del artículo antes de actuar sobre tácticas individuales.

SIUAcelerar
01Aplica la política al recurso, no al servidor
02Usa los términos de Cache-Control con precisión
03Versiona activos inmutables antes de asignarles una larga duración
04Mantén el HTML actual mediante validación, no mediante caché largo
01

Aplica la política al recurso, no al servidor

Haz un inventario de URLs representativas antes de cambiar cabeceras: página de inicio, página de contenido, shell de aplicación, CSS, JavaScript, imágenes, fuentes, APIs, login, cuenta, checkout y descargas. Para cada una, anota si la respuesta es pública o personalizada, si su URL cambia cuando cambian sus bytes y qué tan rápido debe llegar una corrección a los visitantes.

Crea una matriz de políticas a partir de ese inventario. Un activo público direccionado por contenido necesita una regla distinta al HTML en una dirección estable. Las respuestas sin Cache-Control todavía pueden almacenarse de forma heurística, así que las reglas explícitas son más fáciles de probar.

Periodo de validez

El periodo durante el cual una respuesta almacenada puede reutilizarse; max-age lo da en segundos.

02

Usa los términos de Cache-Control con precisión

Cache-Control indica a navegadores y caches compartidas cómo almacenar y reutilizar una respuesta. max-age=N permite la reutilización mientras esté fresca. s-maxage=N establece la frescura para caches compartidas y sobrescribe max-age allí, pero los navegadores ignoran s-maxage. public permite cualquier caché; private permite caché en el navegador pero evita el almacenamiento en caches compartidas.

no-cache permite el almacenamiento pero requiere validación con el origen antes de reutilizar. no-store significa que las caches no deben almacenar la respuesta, pero no es un control de privacidad completo. Usa must-revalidate cuando servir contenido obsoleto tras la expiración sea inaceptable; un origen no disponible puede entonces devolver 504 en lugar de un recurso obsoleto.

Evita usar no-store a secas

Elimina el almacenamiento en lugar de solamente requerir una comprobación; resérvalo para respuestas que realmente no deben almacenarse.

03

Versiona activos inmutables antes de asignarles una larga duración

Una URL de activo versionada incluye una huella de contenido o versión de release, por ejemplo app.4f2c.js. Cuando los bytes del activo cambian, publica una URL distinta y actualiza la referencia en el HTML. La caché ve un recurso nuevo, así que los visitantes obtienen el nuevo activo sin que una invalidación alcance cada navegador.

Para una representación que no cambiará durante su vida de frescura, Cache-Control: max-age=31536000, immutable es un patrón práctico. immutable indica a clientes que lo soporten que no revaliden condicionalmente mientras esté fresca. No lo apliques ni uses un max-age de un año para un archivo mutable con la misma URL. Conserva los activos fingerprinted anteriores mientras el HTML en caché aún pueda referenciarlos.

El HTML es el manifiesto

El HTML elige las URLs de los activos, así que la secuencia de releases debe conservar la generación referenciada.

04

Mantén el HTML actual mediante validación, no mediante caché largo

El HTML suele tener una URL estable y visible para humanos y cambia con el contenido, referencias a activos, flags de funciones o avisos de seguridad. Un patrón conservador para HTML público es Cache-Control: no-cache con ETag y Last-Modified cuando tu plataforma puede producirlos correctamente. El navegador almacena el cuerpo pero usa una petición condicional antes de reutilizar; una respuesta sin cambios puede retornar 304 Not Modified sin cuerpo.

ETag identifica una versión de recurso. Sobre una respuesta obsoleta, el navegador puede enviarla en If-None-Match; si coincide, el servidor responde 304, de lo contrario envía la nueva representación. La guía de RFC prefiere tanto ETag como Last-Modified en una respuesta 200 cuando sea posible. no-cache no garantiza validación en navegación Atrás o Adelante porque un navegador puede restaurar una instantánea del historial de sesión.

Calidad del validador

Un ETag debe cambiar cuando la representación cambia; pruébalo entre orígenes y despliegues.

05

Separa la entrega pública de respuestas personalizadas y sensibles

Un cache compartido, como un CDN, puede reutilizar una respuesta para múltiples usuarios. No permitas que almacene HTML o datos de API específicos de cuenta para distintos usuarios. Para contenido personalizado que puede residir en el navegador, private, no-cache es un punto de partida sensato: evita el almacenamiento compartido y requiere validación. Un header Set-Cookie por sí solo no detiene el caching.

Para respuestas que no deben almacenarse, usa no-store y revisa el código de la aplicación, reglas del CDN, service workers, almacenamiento del navegador, registros y páginas de error. Solo las cabeceras no constituyen un programa de privacidad, cumplimiento o seguridad de pagos. Haz que revisores cualificados de seguridad, privacidad y pagos evalúen los flujos sensibles y los requisitos aplicables.

Cambios de autorización

Prueba sign-in, sign-out, cambio de cuenta y cambios de permisos con caches de navegador y CDN calientes.

06

Despliega cambios de caché como un release reversible

Captura cabeceras base y comportamiento del cuerpo para peticiones sin caché y repetidas. En staging, despliega activos versionados primero, luego el HTML que los referencia, y prueba HTML en caché más antiguo contra el nuevo origen. Revisa rutas directas al origen y rutas CDN si ambas existen. Las cabeceras en DevTools Network deben mostrar la política prevista y el comportamiento en repeticiones.

Mantén un manifiesto de release con las URLs de activos, reglas de cabeceras y la versión de configuración. Si un release combina archivos de cliente incompatibles, restaura HTML y comportamiento de aplicación compatibles, pero no sobrescribas un archivo fingerprinted publicado. Reapunta el HTML a la generación conocida como buena y conserva ambas generaciones mientras el HTML en caché pueda solicitarlas. Una purga de cache compartida no puede forzar a los navegadores a descartar una respuesta fresca.

Remediación proactiva

Convierte fallos en pruebas de cabeceras, 404s de activos y desajustes de versiones en cambios para la siguiente checklist de release.

ACCIÓN / VERIFICAR

Tu guía práctica de tareas.

  1. 01

    Inventaria las clases de respuesta

    Clasifica URLs de muestra como públicas o personalizadas, mutables o versionadas.

    VERIFICAR: Incluye HTML, assets, APIs, autenticación, cuenta, checkout y errores.
  2. 02

    Captura las cabeceras actuales

    Registra Cache-Control, ETag, Last-Modified, Age, Vary y status en origen y CDN.

    VERIFICAR: Existe una instantánea previa al cambio para cada muestra.
  3. 03

    Fingerprint a los assets mutables

    Haz que el build publique una URL nueva de activo cuando sus bytes cambien.

    VERIFICAR: Un activo cambiado produce una URL cambiada y referencia en el HTML.
  4. 04

    Establece políticas explícitas

    Usa reglas de larga duración solo para URLs versionadas e inmutables; usa políticas centradas en validación para URLs estables.

    VERIFICAR: Las pruebas de cabeceras coinciden con la política prevista.
  5. 05

    Prueba la validación

    Comprueba que un documento sin cambios retorna 304 tras una petición condicional y que uno cambiado retorna 200 con un ETag nuevo.

    VERIFICAR: Trazas de staging muestran ambos caminos.
  6. 06

    Ejercita los límites de privacidad

    Prueba dos cuentas, sign-out, cambios de rol y rutas sensibles con caches calientes.

    VERIFICAR: Ninguna respuesta personalizada cruza entre usuarios.
  7. 07

    Demuestra compatibilidad del release

    Carga HTML previo en caché tras el siguiente release.

    VERIFICAR: HTML previo y actual cargan sus activos referenciados sin 404s ni errores de script.
  8. 08

    Documenta el rollback

    Registra la generación buena, versión de cabeceras, responsable y periodo de retención de activos antiguos.

    VERIFICAR: Un ensayo no productivo restaura la generación buena sin editar una URL inmutable.
TEMAS DE DISCUSIÓN

Compara las ventajas y desventajas; no compartas datos privados.

Usa estas preguntas con tu equipo o la comunidad de propietarios del sitio. Comparte métodos y lecciones, pero nunca pegues credenciales, registros de clientes ni detalles de infraestructura no públicos.

  1. 01

    ¿Qué clases de URL en tu sitio son más difíciles de clasificar como públicas, personalizadas, inmutables o de cambios frecuentes, y cómo estás documentando la decisión?

  2. 02

    ¿Qué prueba de secuenciación de release ha sido la más útil para detectar un desajuste entre HTML antiguo y activo nuevo antes de que un visitante lo experimente?

  3. 03

    ¿Dónde se solapan las reglas de caché de tu CDN, aplicación y navegador, y quién se encarga de verificar que su comportamiento combinado coincide con la política prevista?

RECURSOS POPULARES / DE REFERENCIA

Consulta el material fuente.

IETFRFC 9111: HTTP Caching ↗

Explica frescura, validación, directivas de caché, invalidación y límites con información sensible.

Revisado 2026-09-27
IETFRFC 8246: HTTP Immutable Responses ↗

Define el caching immutable, su alcance y consideraciones sobre corrupción.

Revisado 2026-09-27
MDN Web DocsHTTP caching ↗

Guía práctica sobre validadores, 304s, personalización y busting de caché.

Revisado 2026-09-27
MDN Web DocsCache-Control header ↗

Referencia para max-age, s-maxage, no-cache, no-store, private, public y must-revalidate.

Revisado 2026-09-27
MDN Web DocsETag header ↗

Explica entity tags, If-None-Match y la validación 304.

Revisado 2026-09-27
web.devPrevent unnecessary network requests with the HTTP Cache ↗

Orientación práctica sobre URLs versionadas, validadores, políticas y despliegue.

Revisado 2026-09-27

Política de fuentes. Este artículo usa estándares leídos y documentación técnica de primera mano. Evita afirmaciones de rendimiento no soportadas y separa reglas HTTP de configuraciones específicas de plataforma.

ACLARACIONES RÁPIDAS

Preguntas comunes.

¿Significa no-cache que el navegador no puede almacenar la página?

No. no-cache permite el almacenamiento pero requiere validación exitosa con el origen antes de la reutilización. Usa no-store solo cuando la respuesta no deba almacenarse, reconociendo que no-store por sí sola no es una salvaguarda completa de privacidad.

¿Debería cada archivo estático recibir una vida de caché de un año?

No. Un max-age de un año es apropiado solo cuando los bytes de la URL no cambiarán durante ese periodo, normalmente porque la URL está fingerprinted o versionada. Los archivos mutables con la misma URL necesitan una política más corta o centrada en validación.

¿Puede una purga de CDN arreglar un error de caché en el navegador?

Puede eliminar una copia de cache compartida gestionada, pero no puede forzar a cada navegador a descartar una respuesta fresca. Publica una nueva URL versionada y actualiza las referencias en el HTML; luego usa el plan de rollback para restaurar una generación compatible si es necesario.

Status Is UP Editorial Team · Editores de Uptime Enablement

Revisado por Revisor de rendimiento web e ingeniería de releases. Publicado 2026-09-27; actualizado 2026-09-30.