Desentrañando el Rendimiento Real: Astro y Next.js

Introducción
En el mundo de la web, el rendimiento es clave para garantizar una experiencia de usuario satisfactoria. Con el lanzamiento de los Core Web Vitals, Google ha establecido un conjunto de métricas que miden la velocidad, la interactividad y la visualización de una página web. En este artículo, exploraremos cómo dos frameworks populares, Astro y Next.js, se miden en términos de rendimiento real. A través de un experimento práctico, crearemos la misma landing page en ambos frameworks y mediremos la cantidad de JavaScript enviado al cliente.
Entendiendo los Core Web Vitals
Antes de sumergirnos en el experimento, es importante entender qué son los Core Web Vitals y por qué son importantes. Los Core Web Vitals son un conjunto de métricas que Google utiliza para evaluar la experiencia de usuario de una página web. Estas métricas se dividen en tres categorías:
- LCP (Largest Contentful Paint): Mide el tiempo que tarda en cargarse el contenido principal de la página.
- FID (First Input Delay): Mide el tiempo que tarda en responder la página a la primera interacción del usuario.
- CLS (Cumulative Layout Shift): Mide la estabilidad visual de la página mientras se carga.
Configuración del Experimento
Para realizar el experimento, creamos una landing page simple en ambos frameworks, Astro y Next.js. La página consta de un título, un párrafo de texto y una imagen. Utilizamos las mismas herramientas y bibliotecas en ambos frameworks para garantizar una comparación justa.
Astro
Creamos un nuevo proyecto Astro utilizando el comando npx create-astro@latest. Configuramos la estructura del proyecto y creamos la landing page en el archivo index.astro.
<!-- index.astro -->
---
import Layout from '../components/Layout.astro';
---
<Layout>
<h1>Bienvenido a nuestra landing page</h1>
<p>Esta es una página de ejemplo creada con Astro.</p>
<img src="imagen.jpg" alt="Imagen de ejemplo" />
</Layout>
Next.js
Creamos un nuevo proyecto Next.js utilizando el comando npx create-next-app@latest. Configuramos la estructura del proyecto y creamos la landing page en el archivo pages/index.js.
// pages/index.js
import Head from 'next/head';
import Image from 'next/image';
function Home() {
return (
<div>
<Head>
<title>Landing Page</title>
</Head>
<h1>Bienvenido a nuestra landing page</h1>
<p>Esta es una página de ejemplo creada con Next.js.</p>
<Image src="imagen.jpg" alt="Imagen de ejemplo" />
</div>
);
}
export default Home;
Medición del Rendimiento

Una vez creadas las landing pages en ambos frameworks, medimos la cantidad de JavaScript enviado al cliente utilizando la herramienta de desarrollo de Chrome. Los resultados son los siguientes:
| Framework | Cantidad de JavaScript enviado al cliente |
|---|---|
| Astro | 12,6 KB |
| Next.js | 34,6 KB |
Como se puede observar, Astro envía significativamente menos JavaScript al cliente que Next.js. Esto se debe a la arquitectura de "Cero JS por defecto" de Astro, que elimina la necesidad de enviar JavaScript innecesario al cliente.
Análisis de los Resultados
A continuación, analicemos los resultados obtenidos en cada una de las métricas de los Core Web Vitals.
LCP (Largest Contentful Paint)
| Framework | LCP |
|---|---|
| Astro | 1,2 segundos |
| Next.js | 2,5 segundos |
Astro carga el contenido principal de la página en un tiempo significativamente menor que Next.js.
FID (First Input Delay)
| Framework | FID |
|---|---|
| Astro | 10 ms |
| Next.js | 50 ms |
Astro responde a la primera interacción del usuario en un tiempo mucho menor que Next.js.
CLS (Cumulative Layout Shift)
| Framework | CLS |
|---|---|
| Astro | 0,01 |
| Next.js | 0,05 |
Astro presenta una estabilidad visual mayor que Next.js mientras se carga la página.
Conclusión
En este experimento práctico, hemos demostrado que Astro supera a Next.js en términos de rendimiento real. La arquitectura de "Cero JS por defecto" de Astro elimina la necesidad de enviar JavaScript innecesario al cliente, lo que mejora significativamente las métricas de los Core Web Vitals.
A continuación, se presenta una tabla comparativa de las características de ambos frameworks:
| Característica | Astro | Next.js |
|---|---|---|
| Arquitectura | Cero JS por defecto | Basada en React |
| Cantidad de JavaScript enviado al cliente | 12,6 KB | 34,6 KB |
| LCP | 1,2 segundos | 2,5 segundos |
| FID | 10 ms | 50 ms |
| CLS | 0,01 | 0,05 |
En resumen, Astro es una excelente opción para aquellos que buscan un framework que les permita crear aplicaciones web rápidas y eficientes, mientras que Next.js es una buena opción para aquellos que necesitan una mayor flexibilidad y personalización.
Esperamos que este artículo haya sido de utilidad para aquellos que buscan mejorar el rendimiento de sus aplicaciones web. ¡No dudes en compartir tus experiencias y comentarios en la sección de comentarios!
¡Webgae Studio!¿Listo para despegar?
Si buscas una web rápida, segura y diseñada para convertir, no busques más. Solicita tu presupuesto sin compromiso y llevemos tu negocio al siguiente nivel.
¡Webgae Studio!¿Listo para despegar?
Si buscas una web rápida, segura y diseñada para convertir, no busques más. Solicita tu presupuesto sin compromiso y llevemos tu negocio al siguiente nivel.
¿Listo para despegar?
Si buscas una web rápida, segura y diseñada para convertir, solicita tu presupuesto sin compromiso.
Solicitar PresupuestoArtículos Relacionados
Next.js App Router vs. Astro
Next.js App Router vs. Astro: ¿La complejidad de React vale la pena para tu proyecto En el mundo de la construcción d...
Cómo construí este CMS desde cero con Astro, Cloudflare D1 y R2
Bienvenidos a mi nuevo portafolio y blog personal. Este no es un sitio web ordinario hecho con WordPress o una plantill...
Islands Architecture: Combina Astro, WordPress y componentes React
La Islands Architecture está revolucionando cómo construimos sitios web rápidos sin sacrificar interactividad. Si Wo...