Optimización de WebFonts para Mejorar el Rendimiento Web
Clase 14 de 38 • Curso de Optimización Web
Resumen
¿Por qué los WebFonts afectan el rendimiento de una página web?
Los WebFonts, aunque populares por permitir personalización tipográfica en sitios web, representan un desafío considerable para el rendimiento de las páginas. Tener múltiples fuentes web puede ralentizar significativamente el tiempo de carga. Es recomendable limitar el uso a un máximo de dos WebFonts, o incluso evitarlos por completo en casos donde el rendimiento es crítico. Vamos a explorar tres métodos para optimizar la carga de estos recursos y minimizar su impacto en el rendimiento.
¿Cuáles son las tres estrategias de carga de WebFonts comunes?
Existe una variedad de estrategias para cargar WebFonts que, aunque necesarias para el diseño, traen consigo ciertos inconvenientes. Vamos a abordar tres métodos básicos de carga:
-
Carga normal mediante CSS: Los WebFonts se añaden mediante un enlace en el CSS, lo que resulta bloqueante para el proceso de renderización, deteniendo el parsing del HTML hasta que la fuente se descarga por completo.
-
Shift de fuente (Flash of Unstyled Text - FoUT): Consiste en usar una fuente del sistema predeterminada (ej. Arial) mientras los WebFonts deseados se cargan en paralelo. Esto genera un "FLASH" perceptible cuando las fuentes cambian, un fenómeno conocido como Flash of Unstyled Text.
-
Texto invisible (Flash of Invisible Text - FOIT): Aquí, ningún texto se muestra hasta que los WebFonts estén completamente descargados, provocando un momento de "invisibilidad" que puede resultar inquietante para el usuario.
¿Cómo podemos optimizar la carga de WebFonts?
Optimizar WebFonts implica un análisis cuidadoso de cómo se carga la fuente y qué herramientas podemos usar para mejorar esta experiencia. Te presento varias estrategias útiles.
Uso de display
en Google Fonts
Una técnica eficiente consiste en usar la propiedad display: swap
en Google Fonts, lo que permite mostrar un texto con una fuente de sistema hasta que la fuente web se cargue y puede intercambiar (swap) automáticamente cuando esté disponible, mejorando así la percepción del usuario.
<link href="https://fonts.googleapis.com/css2?family=Muli:ital,wght@0,400;1,300&display=swap" rel="stylesheet">
WebFontLoader para mayor control
Para obtener un control más granular sobre WebFonts, es recomendable usar WebFontLoader
, una librería open source que facilita la gestión de fuentes desde diversos proveedores, como Google Fonts, TypeKit, y Font Deck.
<script>
WebFont.load({
google: {
families: ['Muli']
}
});
</script>
Implementación de eventos CSS
La librería WebFontLoader
emite eventos según el estado de la fuente (cargando, activa, inactiva), permitiendo ajustes CSS dinámicos para cambiar entre fuentes del sistema y WebFonts elegantemente.
html {
font-family: Arial, sans-serif;
}
html.wf-active {
font-family: 'Muli', sans-serif;
}
¿Por qué limitar los WebFonts en tu proyecto?
Reducir el número de WebFonts no sólo mejora el rendimiento, sino que también ofrece una experiencia más consistente al usuario. Idealmente, usar un único WebFont, o incluso ninguno, es lo más recomendable. Al tomar medidas específicas y utilizar herramientas adecuadas, como WebFontLoader
, garantizamos que las fuentes carguen eficientemente, evitando efectos indeseados como texto invisible o cambios bruscos de fuente. Además, es esencial seguir aprendiendo y considerar estrategias avanzadas, como las detalladas por expertos como Zach Lederman, para alcanzar nuevas metas en la optimización web.