- Inicio
- Blog
- Desarrollo web
- De 1,7 MB a menos de 300 KB: la optimización de este mismo sitio
De 1,7 MB a menos de 300 KB: la optimización de este mismo sitio
Caso técnico con números medidos, no estimados: qué pesaba, qué hice y cuánto bajó cada cosa.
La versión anterior de este sitio pesaba 1.698 KB. Lo medí, no lo estimé. Y era el sitio de alguien que ofrece "optimización de rendimiento" como servicio, lo cual lo hacía peor.
Este es el detalle de qué encontré y qué hice, con los números de cada paso.
Qué pesaba
| Recurso | Antes | Después |
|---|---|---|
integrate.png | 1.109 KB | 25 KB |
github.png | 361 KB | 7 KB |
starbucks.jpeg | 196 KB | 31 KB |
workana.jpeg | 14 KB | 4 KB |
| Total imágenes | 1.681 KB | 69 KB |
El 99% del peso del sitio eran cuatro imágenes. Una sola —un PNG decorativo usado como fondo de una tarjeta— pesaba más de un megabyte.
1. Las imágenes: −96%
Tres problemas al mismo tiempo:
- Formato equivocado. PNG es para gráficos con transparencia, no para fotos. Para una foto, PNG puede pesar diez veces más que WebP con la misma calidad visible.
- Tamaño equivocado. La imagen tenía muchos más píxeles de los que se mostraban en pantalla. El navegador la descargaba entera para después achicarla.
- Sin compresión. Guardada al 100% de calidad, cuando entre 72 y 80 es indistinguible a simple vista.
La solución fue redimensionar al tamaño real de uso, convertir a WebP con calidad 72 y dejar un JPEG como respaldo para navegadores viejos. De 1.681 KB a 69 KB.
¿Querés saber cuánto pesa tu web y qué se puede bajar?
Que la mida2. Una librería de iconos entera para usar tres
El sitio cargaba boxicons.min.css desde un CDN externo. Esa hoja de estilos define miles de iconos. Se usaban tres.
Además de peso, tenía dos costos peores: bloqueaba el renderizado (el navegador no dibujaba nada hasta terminar de descargarla) y dependía de un servidor de terceros que si está lento, tu web está lenta.
La solución fue reemplazarlos por SVG escritos directamente en el HTML. Cero peticiones externas, cero bloqueo, y unos pocos cientos de bytes.
3. Las fuentes bloqueaban la primera pintura
El sitio cargaba tres familias tipográficas con doce variantes de peso desde Google Fonts, de forma bloqueante.
Dos cambios simples: pedir solo los pesos que realmente se usan (de doce a siete), y cargar la hoja de forma no bloqueante, de manera que la página se dibuje con una fuente del sistema y cambie cuando la tipografía llegue.
4. Cosas que no pesan pero rompen
Aprovechando la reconstrucción, dos correcciones que no son de peso pero afectaban la experiencia:
cursor: noneglobal. El sitio ocultaba el puntero del sistema y dibujaba uno propio con JavaScript. Si el JS fallaba o tardaba, el usuario se quedaba sin puntero visible. Ahora solo se activa cuando el JS confirmó que corre y hay un mouse real.- Contraste por debajo del mínimo. El color de los textos secundarios daba 3,0:1 sobre el fondo, cuando el mínimo accesible es 4,5:1. Y ese color se usaba justo en el subtítulo principal. Ahora está en 6,0:1.
Qué te llevás de esto
Si tenés una web lenta, arrancá por las imágenes. En la enorme mayoría de los casos son el 90% del problema y es lo más barato de arreglar: no requiere rehacer nada, solo procesarlas bien.
Después mirá qué está cargando tu sitio desde servidores de terceros. Cada uno es una dependencia que puede fallar o demorar.
Y medí antes de tocar. Sin el número de antes, no podés demostrar la mejora.
Preguntas frecuentes
¿Con qué convertiste las imágenes?
Con un script de Python usando Pillow: redimensiona al ancho real de uso, convierte a WebP con calidad 72 y genera un JPEG progresivo de respaldo. Se puede hacer igual con Squoosh de Google, sin instalar nada.
¿WebP funciona en todos los navegadores?
En todos los actuales. Para los muy viejos se deja un JPEG de respaldo con la etiqueta picture, que es lo que hice acá.
¿Cuánto influye el peso en el posicionamiento?
La velocidad es un factor de ranking, sobre todo en móvil. Pero el impacto más grande no es ese: es que la gente no espera. Una web lenta pierde visitas antes de que Google llegue a evaluarla.
Quién escribe esto
Soy Lucas Juarez, desarrollador full stack. Trabajo con negocios de Argentina y LATAM resolviendo cosas concretas: automatizar lo que se hace a mano y desarrollar las webs y sistemas que lo sostienen. Escribo sobre lo que implemento, no sobre lo que leí.
Seguí leyendo
7 señales de que tu página web te está haciendo perder clientes
Siete señales concretas, con cómo revisar cada una vos mismo en cinco minutos.
Leer → Desarrollo webCómo migrar una web sin perder posicionamiento en Google
Los 12 pasos concretos, en orden, y qué monitorear después. El miedo a migrar es razonable pero evitable.
Leer →Servicio relacionado: Desarrollo web · Todo sobre desarrollo web