J’ai passé trois ans à maintenir des blogs WordPress. Trois ans à chasser les plugins en conflit, à appliquer des correctifs de sécurité en urgence le vendredi soir, et à regarder mes scores Lighthouse stagner entre 55 et 70 malgré des heures d’optimisation. Puis j’ai découvert Astro. Et je ne suis jamais revenu en arrière.
Le problème WordPress
WordPress fait encore tourner 43 % du web en 2026. C’est impressionnant, et c’est exactement pour cela qu’il reste une cible de choix. Sur la seule année 2025, plus de 11 000 vulnérabilités ont été répertoriées dans son écosystème. Presque toutes proviennent des thèmes et des plugins plutôt que du cœur du CMS, mais un blog standard en compte facilement une vingtaine.
Le vrai souci est structurel. WordPress est un CMS dynamique. Chaque visite déclenche des requêtes PHP vers une base de données MySQL, le serveur génère la page à la volée, la compresse et l’envoie. C’est une architecture des années 2000 qui s’accorde mal avec les exigences actuelles de Google, qui pénalise les pages mettant plus de 2,5 secondes à afficher leur contenu principal (le LCP).
On peut toujours installer WP Rocket, configurer un CDN et activer un cache agressif, mais on finit par lutter contre la nature de l’outil. J’ai préféré arrêter de lutter.
Zéro JavaScript par défaut
Astro part du principe qu’un blog n’a pas besoin de JavaScript. Les articles, les pages de catégories, la barre latérale, tout cela est du contenu statique. Il n’y a aucune raison de charger un runtime React de 150 Ko pour afficher du texte.
Avec Astro, chaque page est compilée en HTML et CSS purs au moment du build. Aucun JavaScript n’arrive dans le navigateur sans demande explicite. Sur ce blog, la page que vous consultez pèse moins de 20 Ko, contre les 800 Ko à 2 Mo habituels d’un WordPress basique.
L’architecture en îlots
Imaginez une page comme un archipel. La majorité des îles sont statiques (l’article, la navigation, le pied de page), mais quelques-unes sont interactives (un widget de commentaires, un formulaire de newsletter). L’architecture en îlots d’Astro permet d’hydrater uniquement ces composants interactifs.
---
// Ce code s'exécute uniquement au build, côté serveur
import CommentWidget from '../components/CommentWidget.jsx';
---
<article>
<h1>{frontmatter.title}</h1>
<div set:html={content} />
<!-- Ce composant charge du JS uniquement quand il devient visible -->
<CommentWidget client:visible />
</article>
La directive client:visible indique au navigateur de ne charger le JavaScript du widget que lorsque l’utilisateur le fait défiler à l’écran. Le chargement initial n’est donc pas bloqué.
Ce qui a changé avec Astro 5
La version 5 m’a définitivement convaincu de franchir le pas pour plusieurs raisons.
L’API Content Layer offre un système unifié et typé pour gérer le contenu. On peut récupérer ses articles depuis des fichiers Markdown locaux, un CMS headless ou une API. Tout est vérifié avec Zod, ce qui évite les erreurs silencieuses liées à un frontmatter mal rempli.
Les Server Islands reprennent le concept des îlots mais côté serveur. On peut désormais associer une page entièrement statique, cachée sur un CDN, avec des composants dynamiques personnalisés, comme un message d’accueil pour un utilisateur connecté, sans dégrader les performances globales.
Les temps de compilation ont aussi fondu. Lors du passage d’un blog de 200 articles Markdown, le build complet a pris moins de 4 secondes, contre plus de 20 secondes auparavant. L’adoption de Vite 6 et les améliorations du compilateur MDX y sont pour beaucoup.
Mes nouveaux Core Web Vitals
Voici les scores PageSpeed Insights mesurés sur ce blog Astro, comparés à mon ancienne installation WordPress optimisée avec WP Rocket :
| Métrique | WordPress + WP Rocket | Astro 5 (statique) | Seuil Google “Bon” |
|---|---|---|---|
| LCP | 2,8 s | 0,9 s | ≤ 2,5 s |
| INP | 210 ms | 45 ms | ≤ 200 ms |
| CLS | 0,12 | 0,02 | ≤ 0,1 |
| Score Lighthouse | 68 / 100 | 99 / 100 | N/A |
Mon ancien WordPress peinait à s’approcher des seuils recommandés. La version Astro les surpasse largement dès la première installation. Ce n’est pas le résultat d’une optimisation poussée, mais simplement d’une architecture adaptée.
Une migration accessible
Transférer 180 articles depuis WordPress m’a pris une après-midi. Le processus a été direct :
- Export en XML depuis l’outil natif de WordPress
- Conversion en Markdown avec le paquet npm
wordpress-export-to-markdown - Création du projet avec
npm create astro@latest - Déplacement des fichiers
.mddans le dossiersrc/content/blog/ - Déploiement sur Cloudflare Pages
Le référencement n’a pas bougé. Les URLs sont restées identiques et les balises meta ont été reprises grâce à astro-seo. Le trafic organique est revenu à la normale en deux semaines et continue de progresser.
Ce que je ne regrette pas
L’interface d’administration WordPress a été remplacée par VS Code et des fichiers Markdown. Pour mon usage de développeur, c’est plus pratique.
Je me passe volontiers de WooCommerce, Jetpack et Yoast. Cela fait trois points d’entrée en moins pour les attaques. Pour le SEO, quelques balises bien placées dans Astro suffisent.
Les correctifs en urgence ont disparu. Une page HTML statique ne craint ni les injections SQL ni les failles PHP.
Je conserve une liberté totale sur le design, j’obtiens des performances inédites et mes frais d’hébergement sont tombés à zéro grâce aux offres gratuites de Cloudflare Pages ou Netlify.
Astro n’est pas la réponse à tout
Si vous maintenez une boutique e-commerce avec beaucoup de passage, une plateforme communautaire avec de multiples contributeurs non techniques, ou un service très dynamique, WordPress ou un CMS headless reste un meilleur choix.
En revanche, pour un blog ciblé (technologie, finances, jardinage, voyage) où vous cherchez des performances qui soutiennent votre SEO sans avoir à vous battre avec le serveur, Astro 5 est la solution la plus cohérente à l’heure actuelle. Produire du web statique pour du contenu statique est tout simplement logique.
📚 Pour aller plus loin
- Optimiser son blog Astro avec Cloudflare : Un blog Astro génère un HTML léger. Cloudflare peut le distribuer sur son réseau mondial gratuitement.
- Vercel vs Coolify : pourquoi j’ai choisi l’auto-hébergement : Si vous hébergez sur Vercel, apprenez comment migrer vers Coolify pour réduire votre facture d’hébergement.