Générateur Retry-After

Configurez votre maintenance pour le SEO

Code prêt à l’emploi pour Apache, Nginx, PHP et Cloudflare.

Pourquoi le Retry-After est crucial

Le header Retry-After indique aux robots (Google, Bing) et aux clients HTTP quand réessayer. Sans ce header :

  • Google peut réduire la fréquence de crawl
  • Après 24-48h, risque de perte de classement
  • Après 72h+, risque de désindexation

Avec le header correctement configuré :

  • Google comprend que c’est temporaire
  • Pas d’impact sur l’indexation (jusqu’à 48h)
  • Récupération immédiate après la maintenance

Formats acceptés

Format en secondes (recommandé)

Retry-After: 3600

Signifie : « Réessayez dans 3600 secondes (1 heure) »

Avantages : Simple, universel, calculé automatiquement depuis maintenant.

Format date HTTP

Retry-After: Thu, 26 Dec 2024 18:00:00 GMT

Signifie : « Réessayez après le 26 décembre à 18h UTC »

Avantages : Précis pour une heure de fin connue.

Inconvénients : Doit être en UTC/GMT, format strict requis.

Nous recommandons le format en secondes car il est plus simple et évite les erreurs de timezone.

Exemples de code générés

Apache (.htaccess)

.htaccess

RewriteEngine On

# Exclure votre IP
RewriteCond %{REMOTE_ADDR} !^123\\.456\\.789\\.012$

# Exclure les fichiers statiques
RewriteCond %{REQUEST_URI} !\\.(css|js|png|jpg|gif|ico|svg|woff2?)$ [NC]

# Exclure la page maintenance
RewriteCond %{REQUEST_URI} !^/maintenance\\.html$

# Retourner 503
RewriteRule ^(.*)$ /maintenance.html [R=503,L]

# Headers
<IfModule mod_headers.c>
    Header always set Retry-After "3600"
    Header always set Cache-Control "no-store, no-cache, must-revalidate"
</IfModule>

ErrorDocument 503 /maintenance.html

Nginx

nginx.conf

server {
    # ... config existante ...
    
    # Mode maintenance (décommenter pour activer)
    # set $maintenance 1;
    
    if ($maintenance = 1) {
        return 503;
    }
    
    # Exclure votre IP
    if ($remote_addr = "123.456.789.012") {
        set $maintenance 0;
    }
    
    error_page 503 @maintenance;
    
    location @maintenance {
        add_header Retry-After 3600 always;
        add_header Cache-Control "no-store" always;
        root /var/www/errors;
        try_files /maintenance.html =503;
    }
}

PHP universel

maintenance.php (à inclure en haut de index.php)

<?php
$maintenance_mode = file_exists(__DIR__ . '/.maintenance');
$allowed_ips = ['123.456.789.012'];
$retry_after = 3600; // 1 heure

if ($maintenance_mode && !in_array($_SERVER['REMOTE_ADDR'], $allowed_ips)) {
    http_response_code(503);
    header('Retry-After: ' . $retry_after);
    header('Cache-Control: no-store, no-cache, must-revalidate');
    include __DIR__ . '/maintenance.html';
    exit;
}

Besoin d’une page maintenance ?

Générez une page HTML professionnelle et personnalisée.