Astro vs Next.js : la vérité technique derrière 40 % de performance en plus sur les sites statiques

Pour choisir le framework d’un blog technique, j’ai longtemps hésité : Next.js vient de Vercel et a un écosystème React puissant ; Astro a la réputation d’offrir des « performances explosives » et un « Lighthouse parfait ». Les articles comparatifs se contredisent — Astro plus rapide ici, Next.js plus complet là — et on finit par ne plus savoir.
J’ai passé deux jours à tester les deux avec le même contenu : deux versions de blog, Lighthouse, temps de build, déploiement en production. Résultat : Astro passe de 88 à 100 au Lighthouse, le premier affichage est presque deux fois plus rapide.
Cet article résume mon expérience. Sans hype, avec des chiffres réels — performance, architecture, écosystème et déploiement en quatre dimensions. À la fin, vous saurez lequel choisir.
Duel de performance — qui est vraiment le roi de la vitesse ?
Dans une comparaison Astro Next.js, la performance est incontournable. Pour un blog ou une doc, on veut un chargement rapide et un bon SEO.
Volume JavaScript : 90 % d’écart, ce n’est pas une blague
Commençons par les chiffres les plus parlants. Avec le même contenu, j’ai construit deux blogs (~30 articles, surlignage de code, images) et comparé la taille du bundle JavaScript :
- Next.js export statique : page d’accueil ~85 Ko JS (gzip)
- Astro : page d’accueil ~8 Ko JS (gzip)
L’écart est réel. La promesse officielle d’Astro « 90 % de JavaScript en moins » correspond à mes mesures.
Pourquoi un tel écart ? L’architecture. Next.js, même en SSG, embarque la runtime React, la logique d’hydratation et le routing. Astro rend par défaut du HTML pur — sans JavaScript, sauf si vous ajoutez client:* sur une composante.
En clair : Next.js livre tout le pack React même pour du contenu statique ; Astro ne livre que ce dont vous avez besoin.
Lighthouse : Astro atteint facilement le maximum
La taille du bundle ne suffit pas — l’expérience utilisateur compte. J’ai mesuré les deux sites en production sur Vercel avec Chrome DevTools Lighthouse :
Blog Astro :
- Performance : 100
- Accessibilité : 98
- Bonnes pratiques : 100
- SEO : 100
Blog Next.js (SSG) :
- Performance : 88
- Accessibilité : 98
- Bonnes pratiques : 96
- SEO : 100
L’écart Performance vient surtout du FCP (First Contentful Paint) et du TTI (Time to Interactive). Astro affiche souvent le premier contenu en ~0,5 s, Next.js en 1–1,5 s.
Sous réseau mobile 3G, l’écart se creuse. En simulation Slow 4G, Astro reste à 95+, Next.js tombe autour de 75.
Pour les blogs et docs, l’avantage performance d’Astro est tangible.
Vitesse de build : encore plus visible sur les gros projets
Le temps de build compte aussi. Sur un site de docs de 1 000 pages (Starlight vs Nextra) :
- Astro (Starlight) : ~18 s
- Next.js (Nextra) : ~52 s
Astro est presque 3× plus rapide — proche de la comparaison officielle avec Gatsby.
Pour être juste : Next.js 15 a nettement amélioré le build (avant 80+ s, ~50 s aujourd’hui grâce au parallélisme). L’écart avec Astro reste toutefois notable.
Cas réels : comment les grandes entreprises choisissent
Les chiffres seuls ne suffisent pas — des exemples aident.
Astro, entre autres :
- Documentation développeurs IKEA
- Blog officiel NordVPN
- Docs Firebase
- Centre développeurs Cloudflare
Point commun : contenu d’abord, vitesse extrême, SEO fort.
Next.js, entre autres :
- E-commerce Nike
- Pages marketing Spotify
- Plateforme de contenu Hulu
- Parties de TikTok
Next.js domine quand il faut du dynamique, de l’interaction ou de la personnalisation.
La règle : site purement contenu → Astro ; interaction dynamique → Next.js.
Architecture technique — Islands vs RSC pour le statique
Après les benchmarks, la question : quelle technologie se cache derrière Astro et Next.js ?
Astro Islands : océan de HTML, îlots d’interaction
Le cœur d’Astro est l’architecture Islands. La page est un « océan » de HTML statique ; seuls quelques « îlots » (recherche, commentaires, bouton like) ont besoin de JavaScript.
Par défaut : toute la page en HTML statique. Avec client:*, vous activez des composantes précises :
---
import SearchBox from '../components/SearchBox.jsx'
import StaticHeader from '../components/Header.astro'
---
<StaticHeader /> <!-- HTML pur, pas de JS -->
<SearchBox client:load /> <!-- Îlot : charge du JS -->
Avantages :
- JavaScript à la demande : seules les parties interactives
- Hydratation isolée : îlots en parallèle, sans interférence
- Stratégies flexibles :
client:load,client:idle,client:visible
Exemple : surlignage de code en CSS (pas de JS), bascule dark mode avec client:load → page d’accueil ~5 Ko JS seulement.
Chez Next.js, même un surlignage statique passe par la runtime React.
Next.js RSC : Server Components allègent le client
Next.js 15 mise sur les React Server Components (RSC) — idée proche : rendre côté serveur quand c’est possible.
Deux catégories :
- Server Components (par défaut) : rendus serveur, pas de JS navigateur
- Client Components (
'use client') : interaction, JS envoyé au client
// app/components/Header.jsx
// Par défaut : Server Component, pas de JS
export default function Header() {
return <header>My Blog</header>
}
// app/components/SearchBox.jsx
'use client' // JS client explicite
import { useState } from 'react'
export default function SearchBox() {
const [query, setQuery] = useState('')
// ...
}
Proche des Astro Islands — mais avec des différences :
1. Comportement par défaut
- Astro : zéro JS, îlots manuels
- Next.js : runtime React conservée, moins de code composant
2. Scénarios
- Astro Islands : statique + peu d’interaction
- Next.js RSC : beaucoup de dynamique, data fetching serveur
3. Lien au framework
- Astro : React, Vue, Svelte mélangables
- Next.js : centré React
Sites statiques : qui convient le mieux ?
Pour du contenu purement statique (blog, docs, portfolio), Astro Islands est plus léger. Un blog Markdown pur peut tourner sans aucun JS ; Next.js demande au minimum ~40–50 Ko de runtime.
Pour des mises à jour fréquentes, Next.js ISR brille : CMS, régénération sélective de pages sans rebuild complet.
Astro 4+ propose Server Islands pour le rendu dynamique différé — l’ISR de Next.js reste cependant plus mature.
Recommandation :
- Plus de 90 % statique : Astro
- Mises à jour fréquentes : Next.js + ISR
- Hybride : selon la stack d’équipe, les deux conviennent
Fonctionnalités et écosystème — expérience développeur comparée
Markdown : Astro prêt à l’emploi, Next.js demande du setup
Pour blog ou docs, Astro est nettement plus agréable.
Markdown Astro :
.mddanssrc/pages/→ page immédiate- MDX intégré
- Content Collections pour un CMS typé :
// src/content/config.ts
import { defineCollection, z } from 'astro:content'
const blog = defineCollection({
schema: z.object({
title: z.string(),
date: z.date(),
tags: z.array(z.string())
})
})
export const collections = { blog }
Typage TypeScript, RSS, sitemap — peu d’effort.
Markdown Next.js :
@next/mdxounext-mdx-remote- remark/rehype à câbler soi-même
- souvent contentlayer ou équivalent
Next.js fonctionne — Astro mène plus vite les débutants au but.
Compatibilité frameworks : Astro hub multi-framework
Astro autorise React, Vue, Svelte, Solid, Preact dans le même projet :
---
import ReactNav from './ReactNav.jsx'
import VueForm from './VueForm.vue'
import SvelteChart from './SvelteChart.svelte'
---
<ReactNav client:load />
<VueForm client:visible />
<SvelteChart client:idle />
Next.js est centré React — pas un défaut, mais un positionnement différent.
Pour les sites statiques, la flexibilité d’Astro est un vrai atout : réutiliser des composants existants.
Écosystème plugins : masse Next.js, focus Astro
Next.js :
- Énorme écosystème npm/React
- Intégrations Vercel (Analytics, Edge Config, KV)
- communauté très active
Astro :
- 400+ intégrations officielles et communautaires
- Starlight pour la doc
- optimisation d’images, sitemap, RSS officiels
Pour blog/docs, Astro suffit. Pour des apps complexes, React via Next.js l’emporte.
Courbe d’apprentissage
Astro : HTML/CSS/JS suffisent ; syntaxe .astro proche des SFC Vue ; docs claires — opérationnel en ~10 minutes.
Next.js : React requis ; App Router avec Server/Client Components, layouts, data fetching — plus de concepts.
Pour un blog rapide, Astro est souvent plus confortable.
Solutions docs : Starlight vs Nextra
Astro Starlight :
- Officiel, intégration profonde
- sidebar, recherche, i18n automatiques
- compatible Lighthouse, thème moderne
Next.js Nextra :
- par Vercel, basé sur Next.js
- très personnalisable, composants React
- un peu plus lent que Starlight, mais solide
Avec Starlight, j’ai mis une doc en ligne en ~2 h, déploiement inclus — très fluide.
Cas d’usage — arbre de décision
Quand choisir Astro ?
Au moins deux critères → Astro :
1. Contenu d’abord, interaction ensuite
- Blog, docs, site corporate, landing
- ~90 %+ de contenu statique
- peu d’interaction (recherche, commentaires, dark mode)
2. Performance et SEO sont des KPI durs
- Lighthouse proche de 100
- Core Web Vitals impactent le ranking
- beaucoup d’utilisateurs mobile / réseau faible
3. Workflow Markdown
- articles en Markdown, images locales
- API de contenu typée
- RSS/sitemap prêts à l’emploi
4. Multi-framework
- React et Vue dans l’équipe
- réutilisation de composants
- pas de lien à un seul framework
5. Démarrage rapide
- peu de théorie framework
- site fonctionnel en minutes
- stack d’équipe hétérogène
Quand choisir Next.js ?
1. Mises à jour dynamiques
- CMS headless (Contentful, Sanity)
- ISR pour régénération planifiée
- contenu généré par les utilisateurs (commentaires, likes)
2. Routes dynamiques complexes
- e-commerce, communauté, beaucoup de data fetching SSR
3. React-first
- équipe experte React
- librairies React spécifiques
- Auth, Analytics, Edge Functions dans la stack Next.js
4. Rendu hybride
- pages statiques et SSR mélangées
- personnalisation selon la connexion
- API Routes comme BFF
5. Écosystème Vercel
- déploiement et intégrations sur une plateforme
Pratique : histoires de migration
Next.js → Astro :
- Blog situ2001 : statique, Lighthouse 88→100, build divisé par deux
- Doc technique (~1 000 pages) : build 80 s→20 s, premier affichage ~40 % plus rapide
Raisons : pas de runtime React lourde, performance, meilleur Markdown.
Next.js reste pertinent :
- plateforme e-learning avec login et progression
- e-commerce avec ISR
- marketing SaaS avec démos dynamiques
Raisons : SSR/dynamique, expertise React, workflow Vercel.
Coût de migration
Faible (1–2 jours) :
- blog Markdown pur
- pas de composants React complexes
- pas d’API spécifiques Next.js
Moyen (1–2 semaines) :
- composants React custom (Astro Islands)
- pipeline images à ajuster
- layout/routing à refaire
Élevé (déconseillé) :
- nombreux Hooks/state
- API Routes, Middleware
- data fetching serveur complexe
Règle : ~90 % statique → migration rentable ; plus de 30 % dynamique → restez sur Next.js.
Trois questions pour trancher
Q1 : À quelle fréquence mettez-vous à jour le contenu ?
- quotidien/hebdomadaire → Next.js (ISR)
- rarement → Astro (performance)
Q2 : Quel niveau d’interactivité ?
- recherche/commentaires → Astro (Islands)
- beaucoup d’interaction utilisateur → Next.js
Q3 : Stack de l’équipe ?
- multi-framework / HTML → Astro
- React-first → Next.js
Vous devriez avoir une direction claire.
Conseils pratiques — prise en main et déploiement
La théorie suffit — voici la mise en œuvre. Quel que soit le framework, cette section aide à démarrer vite.
Démarrage rapide : Hello World en 10 minutes
Astro :
# Créer le projet
npm create astro@latest my-blog
# Choisir le modèle (Blog ou Empty)
cd my-blog
npm install
npm run dev
http://localhost:4321 — éditez src/pages/index.astro, changement immédiat.
Next.js :
# Créer le projet
npx create-next-app@latest my-blog
# TypeScript, App Router, Tailwind…
cd my-blog
npm run dev
http://localhost:3000, éditez app/page.tsx.
Les deux démarrent vite ; les modèles Astro sont plus orientés blog, Next.js plutôt application.
Starters recommandés
Astro :
Next.js :
Mon favori blog : AstroPaper.
Déploiement comparé
Vercel :
- Astro : zero-config,
npm run build - Next.js : natif, auto-optimisation
- rapide à l’international, un peu plus lent en Chine ; free tier ~100 Go/mois
Netlify :
- les deux simples ; free tier plus généreux, Functions
- builds souvent un peu plus lents que Vercel
Cloudflare Pages :
- les deux supportés, déploiements rapides
- CDN global, bande passante illimitée (free)
- environnement de build parfois instable
GitHub Pages :
- Astro : configuration directe
- Next.js :
output: 'export', limitations - gratuit, souvent lent en Chine, pas de Server Components
Optimisation pour les utilisateurs en Chine
- CDN : Cloudflare Pages souvent plus rapide que Vercel
- Polices : locales ou CDN adapté à la Chine plutôt que Google Fonts
- Commentaires : Giscus plutôt que Disqus
- Images : OSS/COS plutôt qu’Imgur
Mon blog tourne sur Cloudflare Pages — correct en Chine.
Limites et contournements
Astro :
- ❌ moins adapté aux dashboards/SaaS très interactifs
- ❌ mises à jour temps réel moins flexibles que Next.js
- ✅ statique dans Astro, dynamique en service séparé
Next.js :
- ❌ souvent overkill pour un blog simple
- ❌ App Router plus raide
- ✅ pour du purement statique, envisagez Astro
Checklist performance (général) :
- ☑ WebP, lazy loading
- ☑
font-display: swap - ☑ scripts tiers différés
- ☑ HTTP/2, Brotli
- ☑ en-têtes Cache-Control adaptés
Ressources d’apprentissage
Astro :
Next.js :
Conclusion
Astro vs Next.js — pas de « meilleur » absolu. Tout dépend de votre scénario :
| Dimension | Astro | Next.js |
|---|---|---|
| Performance | Lighthouse 100, ~90 % de JS en moins | bon, overhead runtime React |
| Cas d’usage | blog, docs, marketing (statique) | apps, e-commerce, communauté |
| Courbe d’apprentissage | douce, ~10 minutes | raide, React + App Router |
| Markdown | prêt à l’emploi, Content Collections | config supplémentaire |
| Frameworks | React, Vue, Svelte mélangables | centré React |
| Écosystème | 400+ intégrations, ciblé | immense écosystème React |
| Déploiement | Vercel, Netlify, Cloudflare | Vercel optimal |
| Build | ~3× plus rapide (vs Next.js 14) | Next.js 15 amélioré, toujours plus lent |
Ma recommandation :
- Blog perso, docs techniques : Astro
- Site corporate, landing : Astro — la performance est un avantage
- CMS : mises à jour rares → Astro ; fréquentes → Next.js
- E-commerce, apps complexes : Next.js
- Équipe experte React : Next.js
J’utilise Astro car ~95 % de mon blog est statique, le plaisir d’un Lighthouse parfait et un meilleur flux d’écriture Markdown.
Pour un SaaS avec démo et dashboard, je choisirais à nouveau Next.js.
Testez maintenant :
# Astro
npm create astro@latest test-astro
cd test-astro && npm install && npm run dev
# Next.js
npx create-next-app@latest test-nextjs
cd test-nextjs && npm run dev
Lancez Lighthouse dans Chrome DevTools — les chiffres valent mieux que dix articles comparatifs.
En bref : le framework n’est qu’un outil, le contenu compte. Astro ou Next.js — commencer à écrire importe plus que comparer sans fin.
Questions en commentaires — bonne mise en ligne !
FAQ
Quel est l'écart de performance entre Astro et Next.js ?
• Astro ~40 % plus rapide que Next.js
• JavaScript réduit de 90 % (Next.js 85 Ko vs Astro 8 Ko)
• Lighthouse : Astro 100, Next.js 88
• Premier affichage : Astro 0,5 s, Next.js 1–1,5 s
• Build (1 000 pages) : Astro 18 s vs Next.js 52 s — environ 3× plus rapide
Sous réseau mobile 3G, l'écart se creuse : Astro reste à 95+, Next.js tombe autour de 75.
Quelle différence entre l'architecture Islands d'Astro et les RSC de Next.js ?
• Zéro JS par défaut, îlots interactifs via les directives client:*
• Seules les composantes interactives chargent du JavaScript
• Idéal pour du surtout statique avec peu d'interactivité
• Agnostique au framework : React/Vue/Svelte mélangables
Next.js RSC :
• La runtime React est quand même envoyée, moins de code composant
• Server Components rendus côté serveur sans JS navigateur
• Client Components nécessitent 'use client'
• Mieux pour beaucoup de contenu dynamique et data fetching serveur
• Fortement lié à React
Quand choisir Astro, quand choisir Next.js ?
• Plus de 90 % de contenu statique (blog, docs, marketing)
• Performance et SEO sont des exigences fortes
• Markdown prêt à l'emploi
• Multi-framework
• Prise en main rapide
Choisir Next.js :
• Mises à jour dynamiques (CMS, ISR)
• Routes dynamiques complexes (e-commerce, communauté)
• Intégration React profonde
• Rendu hybride (partie statique + SSR)
• Écosystème Vercel
Liste de décision :
• Fréquence de mise à jour : rare → Astro, fréquente → Next.js
• Niveau d'interactivité : faible → Astro, élevé → Next.js
• Stack d'équipe : multi-framework → Astro, React-first → Next.js
La migration de Next.js vers Astro coûte-t-elle cher ?
• Blog Markdown pur
• Pas de composants React complexes
• Pas d'API spécifiques Next.js
Moyen (1–2 semaines) :
• Composants React custom (utilisables en Astro Islands)
• Pipeline d'images à ajuster
• Layout et routing à refaire
Élevé (migration déconseillée) :
• Beaucoup de Hooks React et state management
• API Routes/Middleware Next.js
• Data fetching serveur complexe
Conseil : ~90 % statique → migration rentable ; plus de 30 % dynamique → restez sur Next.js.
Quelle différence de support Markdown entre Astro et Next.js ?
• Prêt à l'emploi : .md dans src/pages/ rendu immédiatement
• MDX intégré, composants dans Markdown
• Content Collections API pour un CMS typé
• RSS/Sitemap automatiques
Next.js :
• @next/mdx ou next-mdx-remote requis
• Chaîne remark/rehype à configurer
• Souvent contentlayer ou équivalent
Pour blog ou docs, Astro est nettement plus confortable.
Quelle différence de déploiement entre Astro et Next.js ?
Vercel :
• Astro : détection zero-config
• Next.js : support natif, meilleure expérience
• Rapide à l'international, un peu plus lent en Chine
Cloudflare Pages :
• Les deux supportés
• CDN global, bande passante illimitée en free tier
• Souvent plus rapide en Chine que Vercel
GitHub Pages :
• Astro : configuration simple
• Next.js : export statique requis, fonctionnalités limitées
Pour les utilisateurs en Chine : Cloudflare Pages recommandé.
11 min de lecture · Publié le: 2 déc. 2025 · Mis à jour le: 27 juil. 2026
Guide Astro
Si vous arrivez depuis la recherche, le plus rapide est de passer à l’article précédent ou suivant de cette série.
Précédent
Guide complet SSR Astro : 3 étapes pour activer le rendu côté serveur
Vous hésitez entre SSR et SSG sur Astro ? Ce guide couvre les scénarios réels, la configuration des adaptateurs Vercel/Netlify/Node.js et la stratégie hybride SSR/SSG — de l'initiation à la mise en production en 30 minutes.
Partie 10 sur 18
Suivant
Astro vs Next.js : quel framework pour un site statique ? Performance, coût et cas d'usage
Comparaison approfondie d'Astro et Next.js pour les sites statiques : performance (Astro ~40 % plus rapide, ~90 % de JS en moins), limites, expérience de développement et arbre de décision pour choisir en 30 minutes.
Partie 12 sur 18



Commentaires
Connectez-vous avec GitHub pour laisser un commentaire