Guides robots.txt par plateforme

Next.js robots.txt : comment nous utilisons App Router et MetadataRoute.Robots

Notre flux pour app/robots.txt, app/robots.ts, MetadataRoute.Robots, sitemap, cache, preview et déploiement.

Par Robots.txt Tools Editorial TeamDernière vérification le 2026-10-012 min de lecture

Méthode éditoriale : ce guide documente le processus de vérification de l’équipe éditoriale Robots.txt Tools. La première personne décrit cette méthode et ne revendique ni mission client ni étude de cas personnelle.

Next.js robots.txt : comment nous utilisons App Router et MetadataRoute.Robots

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.

Comportement actuel de l’App Router

Next.js accepte app/robots.txt statique et app/robots.ts / app/robots.js généré avec MetadataRoute.Robots. Les routes metadata générées peuvent être mises en cache selon leur implémentation. Nous vérifions donc version du framework et réponse publique au lieu de supposer un recalcul à chaque requête.

Nous privilégions le statique pour une politique stable. La génération n’est utile que lorsqu’elle apporte une vraie valeur, par exemple plusieurs groupes de crawlers ou un hostname contrôlé par environnement. Nous évitons les API externes dans cette route.

Les erreurs que nous testons au release

Sitemap pointant vers une preview, middleware/proxy interceptant /robots.txt, conflit entre fichier statique et route générée, cache ancien et branche staging active en production. Le smoke test vérifie statut, content-type, body et hostname du sitemap sur le domaine public.

Nous rendons le hostname de production explicite

Lorsque sitemap ou canonical dépendent d’une variable d’environnement, nous préférons une valeur de production explicite à un host reconstruit depuis une requête quelconque. /robots.txt fait partie de nos smoke tests : statut, content-type, corps et hostname sont vérifiés après chaque déploiement. Une configuration manquante doit échouer tôt plutôt que publier silencieusement une URL de preview.

Guides associés