Séance 11 : Nuxt Avancé, SEO & Optimisations
🎯 Objectifs de la séance
Maîtriser les balises méta dynamiques et le référencement naturel (SEO) avec
useHead()etuseSeoMeta().Mettre en place un Sitemap XML et un fichier
robots.txtdynamiques via Nitro.Optimiser les performances : lazy loading de composants, code splitting et gestion des images avec
@nuxt/image.Comprendre les stratégies de mise en cache et de revalidation (ISR / SWR).
🔍 1. Maîtriser le SEO avec useSeoMeta
useSeoMeta() offre une autocomplétion TypeScript complète pour l'ensemble des balises standard, Open Graph (Facebook/LinkedIn) et Twitter Cards.
<!-- app/pages/tasks/[id].vue -->
<script setup lang="ts">
const route = useRoute()
const { data: task } = await useFetch(`/api/tasks/${route.params.id}`)
useSeoMeta({
title: () => `${task.value?.title ?? 'Tâche'} — DevFlow`,
ogTitle: () => task.value?.title ?? 'Détail de la tâche',
description: () => task.value?.description ?? 'Suivi de tâche interne DevSquad.',
ogDescription: () => task.value?.description ?? 'Détail de la tâche.',
ogImage: '/images/og-devflow-preview.png',
twitterCard: 'summary_large_image'
})
</script>⚡ 2. Optimisation des Performances
A. Lazy Loading des Composants Lourds
Nuxt préfixe automatiquement tous les composants d'un préfixe Lazy pour les charger uniquement lorsqu'ils sont affichés :
B. Optimisation des Images (@nuxt/image)
🛠️ 3. Travaux Pratiques
Ajouter
useSeoMetadynamique sur toutes les pages deDevFlow.Générer une route serveur
server/api/sitemap.xml.tsqui liste dynamiquement toutes les tâches publiques.Remplacer les composants de modale par des versions
LazyAppModalpour réduire le bundle initial.
Last updated