Optimización de Carga de CSS Crítico y Diferido
Clase 22 de 34 • Curso de CSS Avanzado y Responsive Design
Resumen
Una página web que cargue rápido mejora enormemente la experiencia del usuario. Optimizar la carga de estilos CSS, diferenciando entre aquellos esenciales y no esenciales, puede ayudar a que los visitantes vean inmediatamente el contenido principal, mientras otros estilos menos importantes se cargan después.
¿Qué son los estilos CSS críticos y por qué cargarlos primero?
Los estilos críticos son aquellos que afectan directamente lo primero que ve el usuario al cargar una página. Estos deben cargarse inmediatamente para evitar demoras en la visualización del contenido principal. Para cargar estos estilos, se utiliza el método tradicional:
<link rel="stylesheet" href="estilos-criticos.css">
Ejemplo práctico de estilos críticos básicos:
body {
font-family: TuFuenteFavorita;
background-color: #violetaOscuro;
text-align: center;
padding: 50px;
}
h1 {
color: #violetaMuyOscuro;
}
Estos estilos aseguran que el contenido esencial esté disponible desde el principio.
¿Cómo cargar estilos CSS no críticos de forma diferida?
Para cargar estilos no esenciales después de que la página esté completamente lista, es recomendable:
- Utilizar un enlace con atributo
media="print"
para retrasar la carga. - Establecer
onload="this.media='all'"
para señalar al navegador cuándo aplicarse.
Implementación en HTML:
<link rel="stylesheet" href="estilos-no-criticos.css" media="print" onload="this.media='all'">
Ejemplo de estilos no críticos:
.extra {
background-color: #violetaClaro;
padding: 10px;
font-size: 1.2rem;
border-radius: 10px;
border: 2px solid #violetaOscuro;
}
Esto provoca que los estilos no prioritarios se carguen una vez que lo esencial esté listo.
¿Qué precaución tomar si JavaScript está deshabilitado?
Si JavaScript está desactivado en algún navegador, la carga diferida no funcionará correctamente. Para evitar este problema, se recomienda:
- Utilizar la etiqueta
<noscript>
donde se cargue el CSS no crítico de forma tradicional.
Ejemplo práctico con <noscript>
:
<noscript>
<link rel="stylesheet" href="estilos-no-criticos.css">
</noscript>
Esto garantiza que el CSS no crítico siempre se cargue, incluso con JavaScript deshabilitado.
¿En qué beneficia esta optimización a sitios con proyectos grandes?
Aunque en proyectos pequeños la diferencia puede ser mínima e incluso imperceptible, para proyectos más grandes, esta técnica mejora considerablemente la rapidez de carga. Esto repercute directamente en una experiencia positiva para los usuarios finales y mejora el posicionamiento web.
¿Has probado ya esta técnica de CSS crítico y diferido en tus proyectos? ¡Cuéntanos tu experiencia en los comentarios!