Google Search Console signale souvent des erreurs de type « soft 404 » sur les sites Next.js, ce qui peut gaspiller le budget de crawl.
Ce qu'est réellement une erreur soft 404
Une véritable réponse 404 envoie un code d'état HTTP 404, indiquant aux navigateurs et aux robots que la ressource demandée n'existe pas. À l'inverse, une erreur soft 404 renvoie un statut 200 OK tout en ne délivrant que peu ou pas de contenu. Les moteurs de recherche interprètent le code 200 comme une page saine, alors que la page n'apporte aucune valeur. Il en résulte un gaspillage des cycles de crawl et un signal envoyé à Google indiquant que la qualité du contenu du site est faible.
Pourquoi Next.js tombe dans le piège
Le routage dynamique de Next.js vous permet de servir des pages comme /products/[slug] sans coder en dur chaque URL. Lorsqu'un produit disparaît de la base de données, le composant s'affiche tout de même, et si le code ne vérifie pas l'absence de données, Next.js répond par défaut avec un statut 200 OK. La même chose se produit lorsqu'un utilisateur fait une faute de frappe dans une URL ou lorsque d'anciennes routes subsistent après une refonte. La page se charge, mais elle n'offre aucun contenu pertinent, ce qui déclenche l'alerte soft 404 dans Search Console.
Les enjeux pour les propriétaires de sites
- Gaspillage du budget de crawl – Les robots allouent un nombre limité de requêtes par site. Les erreurs soft 404 consomment ce quota, laissant moins de chances aux pages réelles d'être indexées.
- Pénalité SEO – Des erreurs soft 404 répétées indiquent aux moteurs de recherche que le site est de faible qualité.
- Impact sur l'expérience utilisateur – Les visiteurs qui arrivent sur une page vide repartent immédiatement, ce qui augmente le taux de rebond et nuit aux conversions.
Comment transformer une soft 404 en une véritable 404
1. Utilisez l'helper notFound intégré
- App Router – Importez
notFounddepuisnext/navigation. Après la récupération des données, appeleznotFound()si le résultat est absent. Next.js enverra alors un véritable statut 404. - Pages Router – Retournez
{ notFound: true }depuisgetStaticPropsougetServerSidePropslorsque la récupération des données échoue. Cela produit le même résultat pour l'ancienne API de routage.
2. Déployez une page 404 personnalisée
La page d'erreur par défaut laisse les utilisateurs désemparés. Créez app/not-found.js (App Router) ou pages/404.js (Pages Router) avec des liens de navigation, une barre de recherche ou des suggestions de contenus connexes. Une page 404 bien conçue retient les visiteurs sur le site au lieu de les envoyer directement vers la sortie.
3. Nettoyez les routes orphelines
Supprimez les pages statiques qui n'ont plus d'utilité. Si un fichier subsiste mais que son contenu est vide, ajoutez une réponse notFound ou supprimez complètement le fichier. Des audits réguliers des répertoires pages ou app permettent d'éviter que des URL mortes ne s'éparpillent.
4. Configurez des redirections permanentes (301) pour le contenu déplacé
Lorsqu'une URL de page change, une redirection 301 indique aux navigateurs et aux robots que la ressource a été déplacée de façon permanente. Ajoutez des redirections dans next.config.js sous la clé redirects. Cela empêche l'ancienne URL de renvoyer un code 200 sans contenu.
5. Surveillez et réagissez aux alertes de Search Console
Consultez régulièrement Google Search Console pour repérer les soft 404. Utilisez un crawler automatisé pour faire remonter les nouvelles erreurs avant qu'elles ne s'accumulent. Considérez chaque alerte comme un signal pour vérifier la logique de récupération des données sous-jacente.
L'essentiel
Une page qui renvoie un statut 200 OK tout en ne délivrant aucun contenu épuise silencieusement votre valeur SEO. Dans Next.js, les routes dynamiques et les récupérations de données non vérifiées rendent les erreurs soft 404 fréquentes, mais vous pouvez les éliminer. Utilisez notFound, créez une page 404 personnalisée utile, nettoyez les routes orphelines, configurez des redirections 301 et restez vigilant dans Search Console pour protéger votre budget de crawl, préserver votre classement et maintenir les visiteurs sur votre site.
