Retour au blog Monitoring - 7 min

Erreur 429 Too Many Requests : pourquoi et comment la résoudre

Le 429 Too Many Requests est une limite assumée. Identifiez le limiteur, lisez Retry-After, et ne levez pas la protection sur la connexion ou le paiement.

Le code 429 Too Many Requests signifie que le client a dépassé un nombre de requêtes autorisé sur une période. C’est une décision du serveur ou d’un service placé devant, pas une exception dans le code de la page. L’en-tête Retry-After, lorsqu’il est présent, indique combien de temps attendre avant de réessayer. Sans lui, le client ne sait pas quand le plafond se rouvre.

Un 429 protège une ressource. Le supprimer partout recrée le problème qu’il empêchait : essais de mots de passe, moisson d’API, ou tests de cartes.

Ce qui répond 429

  • Une extension de limitation des connexions WordPress, après plusieurs mots de passe faux sur wp-login.php.
  • L’API REST, ou une clé WooCommerce, lorsque le quota horaire du compte est atteint. Le corps du message cite souvent la limite et la fenêtre.
  • Une règle Cloudflare de rate limiting, ou le mode de lutte contre les bots, qui compte les requêtes par IP ou par empreinte.
  • Un plafond sur xmlrpc.php ou sur l’URL de coupon, posé après des rafales.
  • Un limiteur applicatif sur la recherche interne ou sur l’ajout au panier, déclenché par un script de surveillance trop bavard.
  • Une règle unique pour tout le monde, si basse que le robot d’indexation la franchit en explorant le catalogue.

Le site peut rester en 200 sur la page d’accueil pendant que seule l’URL limitée répond 429. Mesurer la mauvaise URL fait croire à une panne générale.

Identifier le limiteur

  1. Notez l’URL, l’IP et l’heure. Un 429 sur /wp-login.php n’a pas la même origine qu’un 429 sur /wp-json/.
  2. Lisez les en-têtes. Retry-After donne le délai. Un en-tête du type X-RateLimit-Remaining ou un message Cloudflare nomme le palier.
  3. Comparez une autre IP, par exemple un partage mobile. Si elle passe, le blocage est lié à l’adresse, pas à l’application.
  4. Regardez quel composant a écrit la page : HTML du plugin de sécurité, page d’erreur Cloudflare, ou JSON de votre API. Ce n’est pas le même réglage à ouvrir.
  5. Contrôlez l’URL depuis l’extérieur avec un test d’URL. Un seul appel ne doit pas recevoir 429. S’il le reçoit, le plafond est déjà saturé ou la règle bloque des clients qui n’ont presque rien envoyé.

Les fonctions de contrôle automatique décrites dans les fonctionnalités de surveillance doivent elles-mêmes rester sous le plafond : un contrôle toutes les minutes sur une URL limitée finit par fabriquer le 429 qu’il surveille.

Assouplir sans tout ouvrir

Origine du 429Ajustement
Connexion WordPressLaisser le plafond sur wp-login.php, allonger un peu la fenêtre si vos équipes se bloquent elles-mêmes
APIAugmenter le quota du compte qui intègre, ou espacer les appels
CloudflareRelever le seuil de la règle, exclure les IP d’administration, garder un seuil bas sur la connexion
Robot d’indexationVérifier le robot, puis lui appliquer une règle distincte
Script de supervisionBaisser sa fréquence sur cette URL au lieu de couper la protection
Coupon ou recherchePlafonner ces URL seulement, pas tout le nom de domaine

Attendez la fin de Retry-After avant de déclarer le correctif bon. Un essai immédiat retombe dans le même compteur.

Ce qu’il ne faut pas faire

Ne désactivez pas la limite sur la page de connexion et sur le paiement pour faire disparaître l’erreur. Ne mettez pas l’ensemble du site en liste blanche. Ne traitez pas le 429 comme une surcharge à résoudre par un 503 : le serveur n’est pas forcément à court de ressources, il applique une règle. Ne multipliez pas les relances automatiques sans lire Retry-After.

Une fois la règle identifiée, vérifiez qu’une page qui ne devrait jamais être limitée, par exemple une fiche produit, répond toujours 200. C’est le même réflexe que pour tester si un site répond vraiment : le code de l’URL qui compte, pas une moyenne du domaine.

Questions fréquentes

Un 429 est-il une panne du serveur ?

Non. Le serveur a choisi de refuser temporairement parce qu’un plafond est atteint. Le site peut répondre 200 sur toutes les autres URL.

Faut-il réessayer tout de suite ?

Non. Si la réponse contient Retry-After, attendez le délai indiqué, en secondes ou jusqu’à la date HTTP. Enchaîner les essais prolonge le blocage.

Googlebot peut-il recevoir un 429 ?

Oui, si une règle trop basse compte ses requêtes comme celles d’un robot indésirable. Il faut alors reconnaître Googlebot et lui laisser un plafond à part, pas supprimer toute limite.

Surveiller mes URL