Blog

Articles sur le développement web, l'accessibilité et les bonnes pratiques

Blog

Découvrez mes articles sur le développement web, l'accessibilité et les bonnes pratiques.

Comment optimiser les performances de votre site Next.js

Comment optimiser les performances de votre site Next.js

Pierrick Merli
Pierrick Merli
15 septembre 2023
8 min de lecture

Comment optimiser les performances de votre site Next.js

Les performances web sont cruciales pour offrir une bonne expérience utilisateur et améliorer votre référencement. Dans cet article, nous allons explorer différentes techniques pour optimiser votre site Next.js.

1. Utiliser les Images Optimisées

Next.js propose un composant Image qui optimise automatiquement vos images. Il redimensionne, optimise et sert les images au format moderne comme WebP lorsque le navigateur le supporte.

import Image from 'next/image'

export default function OptimizedImage() {
  return (
    <Image
      src="/images/profile.jpg"
      alt="Description"
      width={500}
      height={300}
      priority
    />
  )
}

2. Mettre en place le Server-Side Rendering (SSR)

Le SSR permet de générer le HTML de vos pages côté serveur, ce qui améliore le temps de chargement initial et le SEO.

export async function getServerSideProps() {
  const res = await fetch('https://api.example.com/data')
  const data = await res.json()

  return { props: { data } }
}

3. Utiliser la Static Generation

Pour les pages dont le contenu ne change pas fréquemment, utilisez la génération statique pour pré-rendre les pages au moment de la construction.

export async function getStaticProps() {
  const res = await fetch('https://api.example.com/data')
  const data = await res.json()

  return {
    props: { data },
    revalidate: 60 // Régénère la page toutes les 60 secondes si nécessaire
  }
}

4. Optimiser les polices

Utilisez next/font pour optimiser le chargement des polices et éviter les changements de mise en page.

import { Inter } from 'next/font/google'

const inter = Inter({ subsets: ['latin'] })

export default function Layout({ children }) {
  return (
    <div className={inter.className}>
      {children}
    </div>
  )
}

5. Mettre en place le Code Splitting

Next.js divise automatiquement votre code par page, mais vous pouvez également utiliser le chargement dynamique pour les composants lourds.

import dynamic from 'next/dynamic'

const HeavyComponent = dynamic(() => import('../components/HeavyComponent'), {
  loading: () => <p>Chargement...</p>,
})

En suivant ces bonnes pratiques, vous améliorerez significativement les performances de votre site Next.js, offrant ainsi une meilleure expérience à vos utilisateurs.