Avec App Router, nous choisissons entre app/robots.txt statique et app/robots.ts ou app/robots.js généré.
Nous privilégions le statique si possible
Une politique simple limite les dépendances runtime.
Pour la génération, nous utilisons MetadataRoute.Robots
import type { MetadataRoute } from 'next'
export default function robots(): MetadataRoute.Robots {
return { rules: { userAgent: '*', allow: '/' }, sitemap: 'https://example.com/sitemap.xml' }
}
Nous contrôlons cache et dynamic
Le comportement de cache dépend de l’implémentation de la route générée. Nous comparons toujours le code au fichier publié.
Les previews privés demandent un vrai contrôle d’accès
Nous utilisons authentification et évitons un Sitemap: pointant vers un host de preview.
Nous vérifions le déploiement
Nous ouvrons /robots.txt, utilisons le validator et testons des URL dans le tester.