Pourquoi le choix du framework n'est pas un détail technique
Lorsqu'un client engage un site vitrine, la première décision technique est le choix du framework. Il s'agit en quelque sorte des fondations de l'édifice : invisibles pour le visiteur qui parcourt les pages, mais déterminantes pour la solidité, la durée de vie et la capacité d'évolution du site.
En 2026, les options ne manquent pas : WordPress, Webflow, Next.js, Astro, SvelteKit et une dizaine d'autres. Nuxt.js a été retenu comme outil principal pour les projets de sites vitrines professionnels. Les raisons détaillées ci-dessous reposent sur une utilisation quotidienne, non sur un argumentaire marketing.
Nuxt.js, présentation en trente secondes
Nuxt.js est un framework basé sur Vue.js. Vue.js est une bibliothèque JavaScript permettant de construire des interfaces web interactives. Nuxt ajoute par-dessus les éléments nécessaires à un site vitrine : rendu côté serveur (SSR) pour le SEO, routage automatique des pages, gestion des balises meta, optimisation des performances à la compilation.
Pour résumer : Vue.js est le moteur, Nuxt est le véhicule complet prêt à circuler.
Les raisons techniques qui font la différence
Le rendu côté serveur (SSR) pour un SEO de premier plan
Le problème des applications JavaScript classiques (React brut, Vue.js brut) : le contenu est généré dans le navigateur du visiteur. Lorsque Googlebot parcourt le site, il voit une page quasi vide tant que le JavaScript ne s'est pas exécuté et n'a pas généré le HTML. L'opération peut durer plusieurs secondes, parfois trop longtemps pour les robots d'indexation.
Nuxt résout cette contrainte nativement. Le HTML complet est généré sur le serveur avant d'être envoyé au navigateur. Google accède directement à l'ensemble du contenu, des balises et de la structure.
- Indexation immédiate et fiable par les moteurs de recherche
- Balises meta, Open Graph et données structurées Schema.org rendues côté serveur
- Aucun recours à un pre-rendering ou à une solution de contournement
Des performances de chargement satisfaisantes pour Google et pour les visiteurs
Un site Nuxt.js correctement configuré atteint un score Google Lighthouse de 95 et plus sur desktop, et de 85 et plus sur mobile. Les mécanismes en cause :
- Code splitting automatique : chaque page ne charge que le JavaScript qui lui est nécessaire, et non l'ensemble du bundle
- Prefetching intelligent : Nuxt précharge les pages liées dès qu'un lien est survolé, avant même le clic
- Optimisation des assets : images, CSS et JavaScript sont optimisés automatiquement à la compilation
- Absence de code mort : à la différence d'un WordPress multiplugins, aucun JavaScript inutile n'est chargé
En pratique, un site vitrine Nuxt se charge en moins d'une seconde sur une connexion 4G correcte. Mon propre site (jondelweb.com) tourne autour de 0,6 seconde.
Une architecture par composants pour la maintenabilité et la cohérence
Chaque élément du site, header, footer, carte de service, formulaire de contact, bouton CTA, est un composant réutilisable et indépendant. Les conséquences concrètes :
- La modification du header effectuée une seule fois se propage automatiquement à toutes les pages
- Un composant "bouton" conserve le même style partout, sans incohérence visuelle
- Chaque composant peut être testé isolément
- Les composants d'un projet sont réutilisables sur le projet suivant
Le routing automatique : une URL correspond à un fichier
Sous Nuxt, la structure du dossier pages/ correspond directement à la structure des URL :
pages/
index.vue -> /
a-propos.vue -> /a-propos
contact.vue -> /contact
projets/
index.vue -> /projets
[slug].vue -> /projets/mon-projet
Aucun fichier de configuration du routeur n'est à maintenir. Créer un fichier crée l'URL. Le renommer modifie l'URL. Le mécanisme est délibérément simple.
Un multi-langue intégré nativement
Pour un site bilingue français et anglais, le module @nuxtjs/i18n prend en charge l'ensemble :
- URL préfixées par langue (
/en/about,/a-propos) - Balises hreflang automatiques permettant à Google de servir la bonne version linguistique
- Détection automatique de la langue du navigateur
- Changement de langue sans rechargement de page
- SEO différencié par langue : meta title et description distincts pour chaque version
Sous WordPress, la même fonctionnalité nécessite un plugin premium comme WPML (39 euros par an au minimum) et plusieurs heures de configuration. Sous Nuxt, elle est native et gratuite.
Un écosystème de modules officiels et maintenus
- @nuxt/ui : composants prêts à l'emploi (boutons, modales, formulaires) fondés sur Tailwind CSS
- @nuxtjs/sitemap : génération automatique du sitemap.xml pour le SEO
- @nuxt/image : optimisation automatique des images (redimensionnement, format WebP, lazy loading)
- @nuxtjs/robots : configuration du robots.txt
Chaque module est maintenu par l'équipe Nuxt ou par la communauté officielle. Les dépendances ne reposent pas sur un développeur isolé susceptible d'abandonner son projet.
Un déploiement flexible selon les besoins et le budget
Un site Nuxt peut être déployé de plusieurs façons :
- Serveur Node.js : SSR complet, configuration la plus flexible pour les sites dynamiques
- En statique : pré-rendu à la compilation, hébergement gratuit possible sur Netlify ou Vercel
- En mode hybride : certaines pages en SSR, d'autres en statique, selon les besoins
Le coût d'hébergement d'un site Nuxt statique peut tomber à zéro euro par mois. Vercel et Netlify proposent un tier gratuit largement suffisant pour un site vitrine.
Nuxt.js face à la concurrence : comparatifs
Nuxt.js face à WordPress pour un site vitrine professionnel
| Critère | Nuxt.js | WordPress |
|---|---|---|
| Performance | Moins d'une seconde | Deux à six secondes |
| SEO | Natif et excellent | Correct avec plugins |
| Sécurité | Élevée | Moyenne (cible des attaques) |
| Gestion des contenus | Code ou headless CMS | Back-office natif abouti |
| Personnalisation | Illimitée | Limitée par thèmes et plugins |
| Coût de maintenance | Faible | Moyen à élevé |
WordPress conserve un avantage net sur la gestion de contenu par un utilisateur non technique. Nuxt présente un avantage sur l'ensemble des autres critères.
Nuxt.js face à Next.js (React)
| Critère | Nuxt.js (Vue) | Next.js (React) |
|---|---|---|
| Courbe d'apprentissage | Plus douce | Plus raide |
| Expérience développeur | Excellente | Excellente |
| Performance | Comparable | Comparable |
| Écosystème | Solide, en croissance | Massif (React domine le marché) |
| Convention ou configuration | Plus de conventions | Plus de liberté |
Les deux frameworks sont de qualité équivalente. Next.js dispose d'un écosystème plus large. Nuxt.js offre une expérience de développement plus fluide et une courbe d'apprentissage plus progressive, ce qui justifie le choix retenu comme outil principal.
Nuxt.js face à Astro
| Critère | Nuxt.js | Astro |
|---|---|---|
| Interactivité | Excellente (comparable à une SPA) | Minimale par défaut |
| SSR | Natif | Supporté, pas central |
| Applications complexes | Oui | Orienté contenu statique |
| Performance statique | Excellente | Légèrement supérieure (zéro JS par défaut) |
Astro est excellent pour un blog pur ou un site entièrement statique. Nuxt reprend l'avantage dès qu'une interactivité significative est requise : formulaires, animations, composants dynamiques, espace client.
Les types de projets pour lesquels Nuxt.js est pertinent
- Sites vitrines professionnels : performance, SEO et multi-langue sont natifs
- Portfolios de créateurs ou d'agences : composants réutilisables, routing dynamique pour les projets
- Applications web lorsque le site vitrine évolue vers un outil métier (CRM, tableau de bord, espace client)
- Sites multilingues : i18n de premier ordre, sans plugin tiers
Les types de projets pour lesquels Nuxt.js n'est pas adapté
- Blogs avec publication quotidienne : un CMS comme WordPress ou un générateur statique (Hugo, Astro) reste plus adapté si le client publie seul chaque jour
- Budget inférieur à 1 000 euros. Le sur-mesure a un coût minimum incompressible
- Client entièrement autonome sur les contenus. L'ajout d'un headless CMS (Strapi, Sanity, Notion en back-office) reste possible, au prix d'une complexité supplémentaire
Stack Nuxt.js type pour un site vitrine
Pour les lecteurs qui s'intéressent au détail technique, voici la stack utilisée sur les projets vitrines :
Framework : Nuxt 4 (Vue.js 3)
UI : @nuxt/ui (Tailwind CSS sous le capot)
SEO : useSeoMeta() + @nuxtjs/sitemap + Schema.org JSON-LD
i18n : @nuxtjs/i18n (FR/EN)
Fonts : Google Fonts (Inter) avec preconnect
Analytics : GTM + GA4 avec Consent Mode v2 (RGPD)
Hébergement : Node.js (SSR) ou Vercel/Netlify (statique)
Versioning : Git
Cette stack fait tourner mon propre site (jondelweb.com). Score Lighthouse desktop : 95 et plus. C'est également celle proposée aux clients lorsque le sur-mesure est l'option adaptée à leur besoin.
Un projet de site vitrine à cadrer ? Prenons contact. L'orientation donnée sera fondée sur votre besoin réel, y compris si Nuxt n'est pas la bonne réponse.

