Skip to content

09. Optimizaciones de Rendimiento

9.1 Lazy loading e importación inteligente

Section titled “9.1 Lazy loading e importación inteligente”

El lazy loading (carga diferida) y la importación inteligente son técnicas que retrasan la carga de recursos hasta que son realmente necesarios, mejorando significativamente el rendimiento inicial.

  • Reducir el tiempo de carga inicial de la página
  • Minimizar el tamaño del bundle JavaScript
  • Mejorar métricas de rendimiento (FCP, LCP, TTI)
  • Optimizar el uso de ancho de banda
  • Cargar recursos solo cuando el usuario los necesita

1. Lazy Loading de Imágenes

  • Cargar imágenes cuando entran en viewport
  • Atributo loading="lazy" nativo
  • Reduce carga inicial significativamente
  • Mejora LCP (Largest Contentful Paint)

2. Lazy Loading de Componentes

  • Dividir código en chunks separados
  • Cargar componentes bajo demanda
  • Reduce bundle inicial de JavaScript
  • Mejora TTI (Time to Interactive)

3. Lazy Loading de Scripts

  • Diferir carga de scripts no críticos
  • Usar async o defer
  • Priorizar contenido sobre funcionalidad
  • Mejora FCP (First Contentful Paint)

Dynamic Imports

  • Sintaxis: import() como función
  • Retorna una Promise
  • Crea chunks automáticamente
  • Carga bajo demanda

Code Splitting

  • División automática del código
  • Chunks por ruta o componente
  • Optimización del bundle
  • Carga paralela eficiente

Tree Shaking

  • Eliminación de código no usado
  • Análisis estático de imports
  • Reduce tamaño del bundle
  • Automático en build de producción
EstrategiaCuándo UsarVentaja
EagerRecursos críticosDisponible inmediatamente
LazyRecursos below-the-foldCarga inicial rápida
PrefetchRecursos probablesNavegación rápida
PreloadRecursos críticos futurosOptimiza ruta crítica
  • Rendimiento: Carga inicial hasta 50% más rápida
  • Experiencia: Usuario ve contenido antes
  • Recursos: Menos consumo de datos
  • SEO: Mejores Core Web Vitals
  • Escalabilidad: Soporta más contenido
  • FCP: First Contentful Paint (↓ 30-40%)
  • LCP: Largest Contentful Paint (↓ 20-30%)
  • TTI: Time to Interactive (↓ 40-50%)
  • TBT: Total Blocking Time (↓ 50-60%)
  • Bundle Size: Tamaño inicial (↓ 40-70%)
  • Layout Shift: Reservar espacio para contenido lazy
  • Fallbacks: Proporcionar placeholders
  • Priorización: Cargar contenido crítico primero
  • Testing: Probar en conexiones lentas
  • Accesibilidad: No afectar navegación por teclado

9.2 Compresión y optimización de imágenes

Section titled “9.2 Compresión y optimización de imágenes”

La optimización de imágenes es crucial para el rendimiento web, ya que las imágenes suelen representar el 50-70% del peso total de una página.

  • Reducir el tamaño de archivos sin perder calidad perceptible
  • Mejorar tiempos de carga de la página
  • Reducir consumo de ancho de banda
  • Mejorar métricas de rendimiento (LCP)
  • Optimizar para diferentes dispositivos y resoluciones

1. WebP

  • Compresión superior a JPEG/PNG (25-35% más pequeño)
  • Soporta transparencia y animación
  • Amplio soporte en navegadores modernos
  • Ideal para fotos y gráficos

2. AVIF

  • Compresión aún mejor que WebP (50% más pequeño que JPEG)
  • Excelente calidad a tamaños pequeños
  • Soporte creciente en navegadores
  • Mejor para fotografías de alta calidad

3. SVG

  • Formato vectorial escalable
  • Perfecto para iconos y logos
  • Tamaño muy pequeño
  • Se puede manipular con CSS/JS

4. Formatos tradicionales

  • JPEG: Fotos, sin transparencia
  • PNG: Gráficos con transparencia
  • GIF: Animaciones simples (obsoleto, usar WebP/AVIF)

1. Compresión

  • Lossy: Reduce calidad imperceptiblemente (JPEG, WebP)
  • Lossless: Sin pérdida de calidad (PNG, WebP lossless)
  • Herramientas: Sharp, ImageMagick, Squoosh

2. Responsive Images

  • Diferentes tamaños para diferentes dispositivos
  • Atributo srcset y sizes
  • Picture element para art direction
  • Ahorra ancho de banda en móviles

3. Lazy Loading

  • Cargar imágenes cuando son visibles
  • Atributo loading="lazy"
  • Reduce carga inicial

4. Dimensiones Explícitas

  • Especificar width y height
  • Previene CLS (Cumulative Layout Shift)
  • Mejora experiencia de usuario

Astro proporciona componente <Image> integrado:

  • Optimización automática de imágenes
  • Generación de múltiples formatos
  • Responsive images automático
  • Lazy loading por defecto
  • Usa Sharp internamente
FormatoTamañoCalidadTransparenciaSoporte
JPEG100%AltaUniversal
PNG150%AltaUniversal
WebP70%Alta95%+
AVIF50%Muy Alta85%+
SVGMínimoEscalableUniversal
  1. Usar formatos modernos: WebP/AVIF con fallback
  2. Dimensiones correctas: No cargar imágenes más grandes de lo necesario
  3. Compresión adecuada: Balance entre calidad y tamaño
  4. Lazy loading: Para imágenes below-the-fold
  5. CDN: Servir imágenes desde CDN
  6. Caché: Headers de caché apropiados
  7. Alt text: Siempre incluir para accesibilidad
  • LCP: Mejora hasta 40% con imágenes optimizadas
  • Peso página: Reducción de 50-70%
  • Tiempo carga: 30-50% más rápido
  • Datos móviles: Ahorro significativo para usuarios

9.3 Análisis de rendimiento con Lighthouse

Section titled “9.3 Análisis de rendimiento con Lighthouse”

Lighthouse es una herramienta automatizada de código abierto desarrollada por Google para mejorar la calidad de las páginas web mediante auditorías de rendimiento, accesibilidad, SEO y mejores prácticas.

  • Medir rendimiento real de páginas web
  • Identificar problemas y oportunidades de mejora
  • Proporcionar recomendaciones accionables
  • Monitorear Core Web Vitals
  • Validar mejores prácticas web

1. Performance (Rendimiento)

  • Métricas de velocidad de carga
  • Core Web Vitals (FCP, LCP, CLS, etc.)
  • Oportunidades de optimización
  • Diagnósticos de problemas

2. Accessibility (Accesibilidad)

  • Contraste de colores
  • Etiquetas ARIA
  • Navegación por teclado
  • Textos alternativos

3. Best Practices (Mejores Prácticas)

  • HTTPS
  • Errores de consola
  • Librerías vulnerables
  • Uso de APIs modernas

4. SEO

  • Meta tags
  • Estructura de contenido
  • Robots.txt y sitemap
  • Mobile-friendly

5. PWA (Progressive Web App)

  • Service workers
  • Manifest
  • Instalabilidad
  • Offline functionality

Métricas principales de Google

MétricaNombreObjetivoMide
LCPLargest Contentful Paint< 2.5sVelocidad de carga
FIDFirst Input Delay< 100msInteractividad
CLSCumulative Layout Shift< 0.1Estabilidad visual
FCPFirst Contentful Paint< 1.8sRenderizado inicial
TTITime to Interactive< 3.8sInteractividad completa
TBTTotal Blocking Time< 200msBloqueo del hilo principal
  1. Navegación: Carga la página en Chrome
  2. Auditoría: Ejecuta tests automatizados
  3. Medición: Recopila métricas de rendimiento
  4. Análisis: Evalúa contra mejores prácticas
  5. Reporte: Genera informe con puntuaciones y recomendaciones

1. Chrome DevTools

  • Integrado en el navegador
  • Fácil de usar
  • Ideal para desarrollo

2. CLI (Command Line)

  • Automatización
  • CI/CD integration
  • Reportes programáticos

3. PageSpeed Insights

  • Interfaz web de Google
  • Datos de campo reales (CrUX)
  • No requiere instalación

4. Lighthouse CI

  • Integración continua
  • Monitoreo automático
  • Prevención de regresiones
  1. Ejecutar en modo incógnito: Evitar extensiones
  2. Simular condiciones reales: Throttling de red
  3. Múltiples ejecuciones: Promediar resultados
  4. Ambiente consistente: Mismas condiciones
  5. Priorizar Core Web Vitals: Impacto en SEO
  6. Monitoreo continuo: CI/CD integration
RangoColorSignificado
90-100🟢 VerdeExcelente
50-89🟠 NaranjaNecesita mejora
0-49🔴 RojoPobre

Para mejorar Performance:

  • Minimizar JavaScript
  • Optimizar imágenes
  • Lazy loading
  • Caché efectivo
  • CDN

Para mejorar Accessibility:

  • Alt text en imágenes
  • Contraste adecuado
  • Labels en formularios
  • Estructura semántica

Para mejorar SEO:

  • Meta descriptions
  • Títulos únicos
  • Sitemap
  • Mobile-friendly
🐝