
Pourquoi votre site Next.js est lent (et comment y remédier)
Votre site Next.js lent nuit-il à vos classements et conversions ? Découvrez les véritables causes de mauvais Core Web Vitals et comment Belk Digital les résout.
Introduction
Votre score Lighthouse indique 45. Votre client demande pourquoi la page d'accueil met quatre secondes à devenir interactive. Et quelque part lors d'une rétrospective de sprint, quelqu'un pose la question évidente : n'avons-nous pas construit cela avec Next.js pour que ce soit rapide par défaut ?
C'est une question légitime, et la réponse honnête est non. Next.js vous donne les outils pour créer un site véritablement rapide, mais il n'en construit pas un pour vous. Laissé sur les paramètres par défaut, une application Next.js peut fournir les mêmes bundles surchargés, des images non optimisées et une surcharge d'hydratation que n'importe quel autre framework JavaScript — parfois pire, car les équipes supposent que la vitesse est intégrée.
Ce guide détaille pourquoi les sites Next.js ralentissent réellement, comment confirmer si le vôtre en fait partie, et la séquence de correctifs que nous utilisons chez Belk Digital pour reprendre le contrôle des sites critiques en termes de performances. Explorez nos services de performance Next.js spécialisés ou demandez un audit Core Web Vitals pour évaluer votre application.
Le paradoxe de la vitesse de Next.js : pourquoi moderne ne signifie pas automatiquement rapide
Next.js a été conçu pour résoudre les problèmes de performances qui affectaient les premières applications React : écrans blancs vides, bundles clients surdimensionnés, mauvais référencement naturel lié au rendu purement côté client. Le rendu côté serveur (SSR), la génération statique, le fractionnement automatique du code et le modèle de diffusion de l'App Router existent tous spécifiquement pour accélérer le chargement des pages.
Rien de tout cela ne se produit automatiquement une fois qu'un projet dépasse le stade de la démonstration. Ajoutez suffisamment de composants clients, de scripts tiers et d'images non optimisées, et un site Next.js régresse vers les problèmes qu'il était censé prévenir. Le framework fournit la capacité ; l'implémentation décide du résultat.
Next.js offre SSR, SSG, ISR et le streaming via App Router, mais aucun ne fournit de vitesse automatiquement sans une architecture réfléchie.
La mise à l'échelle d'une application avec trop de composants clients et de scripts tiers provoque une régression vers les problèmes de performances monolithiques de React.
La qualité de l'implémentation, la gestion des ressources et les stratégies de récupération de données déterminent les performances finales.
Indicateur 1 : L'excès de "use client"
Le paradigme des Server Components (RSC) de React dans le Next.js App Router est un changement fondamental, pas seulement une nouvelle API. Par défaut, les composants dans l'App Router sont rendus sur le serveur et envoient du HTML sans surcharge JavaScript au client. La directive `"use client"` contourne cela, renvoyant le rendu et la charge utile JavaScript au navigateur.
Le problème survient lorsque les développeurs, habitués aux anciens modèles React, placent une directive `"use client"` au sommet d'un fichier de mise en page (layout) entier ou d'un wrapper de page principale juste pour utiliser un hook d'état au fin fond de la hiérarchie. Faire cela désactive les avantages du serveur pour tout cet arbre de composants.
L'impact :
Le navigateur doit maintenant télécharger, analyser et exécuter du JavaScript pour une grande partie de votre page avant qu'elle ne devienne interactive, faisant grimper la métrique Interaction to Next Paint (INP) et le Total Blocking Time (TBT).
Indicateur 2 : L'optimisation des images ignorée
Le composant `<Image />` intégré de Next.js est l'une de ses fonctionnalités les plus puissantes. Il redimensionne, optimise et sert automatiquement les images dans des formats modernes (comme WebP ou AVIF) en fonction de l'appareil qui fait la requête. Cependant, de nombreuses équipes évitent de l'utiliser car il nécessite de configurer des domaines autorisés, de gérer les exigences de largeur et de hauteur, ou simplement parce que l'équipe a migré d'anciens composants React en utilisant la balise `<img>` standard.
L'impact :
Servir un fichier PNG de 3 Mo destiné à un ordinateur de bureau à un appareil mobile sur une connexion 3G détruira absolument votre Largest Contentful Paint (LCP). C'est de loin le tueur de performances le plus facile à trouver et le plus rapide à corriger lors d'un audit Next.js.
Indicateur 3 : Fuites de scripts tiers
Les équipes marketing ont besoin de Google Analytics, des pixels Meta, des scripts de chat en direct et des outils de carte de chaleur. Ceux-ci sont souvent injectés sans réflexion dans l'élément `<head>` via un gestionnaire de balises (GTM). Dans une application Next.js, l'exécution du thread principal est en concurrence pour le temps CPU avec le processus d'hydratation du framework.
Lorsque des scripts tiers bloquent le thread principal pendant l'initialisation de la page, le navigateur ne peut pas traiter les interactions de l'utilisateur. Next.js fournit un composant `<Script />` intégré avec un attribut de stratégie (stratégies `beforeInteractive`, `afterInteractive` ou `lazyOnload`) qui priorise l'exécution du script. Ne pas l'utiliser est une défaite forcée.
L'impact :
Un Total Blocking Time (TBT) élevé et un INP accru donnent l'impression que la page est cassée ou qu'elle ne répond pas aux premiers balayages et clics.
Indicateur 4 : Chaînes de requêtes de données en cascade
Next.js permet la récupération de données au niveau des composants. C'est une excellente fonctionnalité pour l'expérience développeur, mais cela peut créer des cascades de récupération massives si ce n'est pas surveillé attentivement. Si le composant A récupère des données, puis rend le composant B, qui récupère ses propres données, puis rend le composant C... l'utilisateur attend la somme de trois allers-retours vers la base de données ou l'API.
L'impact :
Des temps lents jusqu'au premier octet (TTFB) et un rendu initial différé.
Le lien entre les Vitals et votre entreprise
La vitesse n'est pas un exercice académique pour les ingénieurs. Les Core Web Vitals (CWV) — LCP, CLS, INP — sont des facteurs de classement directs pour la recherche Google. Un site Next.js mal optimisé est souvent surclassé par un site statique de base simplement parce que Google privilégie les résultats à chargement rapide et les expériences stables. (Apprenez-en plus sur la façon dont les Core Web Vitals impactent vos résultats financiers).
La méthodologie Belk Digital pour réparer Next.js
Lorsque nous diagnostiquons des applications Next.js lentes, nous ne devinons pas. Nous exécutons une séquence d'audit déterministe :
- Analyse de la carte des bundles : Nous analysons le bundle de build de Next.js pour identifier les modules surdimensionnés et le code client qui appartient au serveur.
- Audit de récupération de données : Nous cartographions la hiérarchie de rendu par rapport aux appels API (ou CMS) pour identifier les cascades néfastes et implémenter des modèles asynchrones parallèles à l'aide des primitives natives de React.
- Optimisation des ressources : Nous convertissons les images d'impact au composant `<Image />` avec des stratégies de chargement (eager/lazy) et des dimensions appropriées mises en œuvre, souvent soutenues par un CMS headless robuste.
- Attribution de la stratégie de script : Nous déplaçons les traqueurs analytiques et les frameworks lourds vers le composant `<Script />` avec la bonne stratégie (`worker` ou `lazyOnload`).
- Surveillance du cache : Nous mettons en place des diagnostics pour détecter lorsque le cache de Next.js est contourné de manière inattendue (nécessitant souvent un développement Next.js spécialisé).
Le résultat
Nos clients voient des baisses spectaculaires du LCP, un TBT quasi nul et des sites qui semblent instantanés plutôt que lents. Lorsque les Core Web Vitals se stabilisent dans la zone verte, vos classements dans les moteurs de recherche, les scores de qualité publicitaire et les taux de conversion s'améliorent.
Conclusion
Next.js est indéniablement rapide — si vous le construisez de la manière prévue par le framework. Mais à mesure que votre application évolue, les paramètres par défaut ne sauveront pas des décisions architecturales négligées.
Si votre site Next.js est lent, ne blâmez pas le framework ; examinez l'implémentation. Et si vous avez besoin d'une correction de niveau expert, sachez que choisir le bon partenaire numérique peut résoudre vos problèmes de performances de façon permanente. Contactez notre équipe d'ingénierie chez Belk Digital pour un audit de performance dédié.
Questions Fréquentes
Besoin d'un expert pour cela ?
Si vous cherchez à mettre en œuvre ces stratégies pour votre entreprise, notre équipe peut vous aider à planifier, construire et évoluer en toute confiance.
ContactPrêt à Transformer Votre Présence Digitale?
Let's discuss how we can help you achieve your digital goals and create an exceptional online presence.
