Tu vois “429 Too Many Requests” — voici ce qui se passe

Le site répond mais renvoie une page blanche avec “429 Too Many Requests”, ou pire, il charge normalement pour toi et bloque tous tes vrais visiteurs. Cette erreur signifie qu’un composant de la chaîne — ton hébergeur, un CDN, un plugin de sécurité, ou l’API REST de WordPress — a décidé qu’une IP (ou un user agent) envoyait trop de requêtes sur une trop courte période, et l’a mise en liste de blocage temporaire.

C’est gérable. Dans la majorité des cas, 20 à 40 minutes de diagnostic suffisent à identifier la source et à corriger sans rien désactiver de critique.

Pourquoi ça arrive : les 4 sources habituelles

Solution 1 — Identifier l’origine exacte (5 minutes)

Avant de modifier quoi que ce soit, ouvre l’onglet Réseau de DevTools (F12 → Network), recharge la page en erreur et repère la requête qui retourne 429. Regarde :

Cette étape évite de corriger la mauvaise couche et d’ouvrir une faille sur une autre.

Solution 2 — Débloquer une IP légitimement bannie

Si toi ou un client précis es bloqué :

Wordfence : Tableau de bord WordPress → Wordfence → Firewall → Blocked IPs. Repère l’IP, clique “Unblock”. Si l’IP revient en permanence, augmente le seuil dans Firewall Options → Rate Limiting (ex. passe “Human requests” de 120 à 240/minute).

Cloudflare : Security → WAF → Tools → IP Access Rules. Cherche la règle qui bloque l’IP et supprime-la, ou crée une règle “Allow” pour ton IP de bureau.

Hébergeur (Nginx/Apache) : certains panels (cPanel, Plesk) ont une section “ModSecurity” ou “IP Blocker”. Sinon, contacte le support — ils peuvent vider le cache de rate-limiting côté serveur.

Solution 3 — Stopper les attaques sur wp-login.php

La protection la plus efficace sans plugin lourd :

Ajouter une authentification HTTP basique sur wp-login.php via .htaccess (hébergements Apache) :

<Files wp-login.php>
  AuthType Basic
  AuthName "Accès restreint"
  AuthUserFile /chemin/absolu/.htpasswd
  Require valid-user
</Files>

Génère ton .htpasswd via un outil en ligne ou htpasswd -c .htpasswd tonnom. Ce fichier doit être hors du webroot ou protégé.

Résultat : un bot qui martèle /wp-login.php reçoit un 401 dès la première couche, bien avant que WordPress charge, et ne consomme plus de quota de requêtes PHP.

Solution 4 — Corriger un rate limit trop agressif sur l’API REST

Si l’URL bloquée contient /wp-json/, c’est l’API REST. Deux scénarios :

Plugin de sécurité trop strict : dans Wordfence → Firewall → All Options, cherche “Throttle API requests” et monte la valeur. Commence à 120 req/min avant de valider.

Hébergeur qui limite les requêtes PHP : contacte ton hébergeur avec les logs en main. Sur O2Switch, la limite est configurable depuis cPanel → “Limit d’entrées PHP”. Sur les offres cloud (Kinsta, WP Engine), les règles de rate limiting sont dans leur dashboard dédié.

Désactiver l’API REST pour les non-connectés (option agressive, à peser selon ton projet) : certains plugins comme Disable REST API le font en un clic. Attention : WooCommerce, Gutenberg et bon nombre de plugins en ont besoin — teste toujours en staging.

Solution 5 — Traiter la boucle de login interne

Si le 429 apparaît uniquement lors de la connexion ou en back-office, active le mode debug pour isoler le plugin responsable :

  1. Ajoute dans wp-config.php :
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
  1. Désactive les plugins un par un (ou en bloc via FTP en renommant le dossier pluginsplugins_off) pour identifier le fautif.
  2. Une fois identifié, cherche dans sa documentation si une option “heartbeat” ou “token refresh interval” est configurable. WooCommerce, par exemple, permet de réduire la fréquence de vérification de session.

Pour les problèmes de plugins plus larges, la méthode de rollback propre après une MAJ cassée suit le même principe d’isolation.

Tableau récapitulatif : cause → solution

OrigineSignal dans les logsAction
Attaque sur wp-login.phpCentaines de POST sur /wp-login.phpAuth HTTP basique + ban IP via Wordfence/Cloudflare
Plugin sécurité trop strictX-RateLimit-Limit dans les headersMonter le seuil ou débloquer l’IP
Hébergeur mutualisé429 sur toutes les pages, sans header identifiantContacter l’hébergeur, passer sur une offre dédiée
Boucle interne (plugin)429 uniquement en back-office/connexionDésactiver les plugins un par un, ajuster le heartbeat
CDN (Cloudflare, BunnyCDN)Header CF-RAY ou X-CDN présentRègle “Allow” pour IP de confiance dans le dashboard CDN

Le 429 peut-il affecter le SEO ?

Oui, si Googlebot reçoit des 429 répétés sur tes URLs, il réduira sa fréquence de crawl et peut désindexer des pages. Vérifie la Google Search Console → Couverture pour repérer les erreurs de crawl. Un travail sur la performance et les Core Web Vitals réduit aussi le nombre de requêtes par visite, ce qui diminue la pression sur les seuils.

Mon hébergeur mutualisé déclenche le 429 sans qu'il y ait d'attaque. Que faire ?

Les offres mutualisées ont des quotas bas par conception. Si ton site a un trafic réel et régulier, la bonne question n’est pas comment contourner la limite, c’est si l’hébergement est adapté. Un VPS ou une offre cloud WordPress dédiée règle le problème structurellement. Voir aussi combien coûte vraiment un site en 2026 pour calibrer le budget hébergement.

Désactiver l'API REST WordPress est-il risqué ?

Oui si tu utilises Gutenberg, WooCommerce ou tout plugin moderne. Ces outils dépendent de l’API REST pour fonctionner. La désactivation totale pour les visiteurs non connectés est viable sur un site vitrine simple, mais à tester impérativement sur un environnement de staging avant la mise en production.

Cloudflare peut-il déclencher un 429 sans que WordPress soit en cause ?

Oui. Cloudflare a son propre rate limiter (Rules → Rate Limiting Rules), indépendant de WordPress. Si une règle WAF est trop agressive, elle bloque avant même que la requête atteigne ton serveur. Le header CF-RAY dans la réponse 429 confirme que c’est Cloudflare qui bloque. La correction se fait entièrement dans le dashboard Cloudflare, WordPress n’a rien à voir.

Quand passer la main à un pro

Si après ces étapes le 429 revient en boucle sans source identifiable, si tes logs montrent un volume d’attaque soutenu (plusieurs milliers de requêtes par heure), ou si le problème touche un site e-commerce avec des transactions en cours — c’est le moment de déléguer. Un plan de maintenance avec surveillance proactive détecte ce type d’anomalie avant qu’elle impacte les visiteurs. Et si tu n’as pas les accès serveur pour agir, commence par réclamer tous tes accès à ton agence actuelle — sans logs, tu travailles à l’aveugle.

Ce problème, Peechy s'en occupe

Plutôt que de tout gérer seul, confiez votre site à une agence qui s'occupe de tout — hébergement, sécurité, maintenance et corrections. Encore plus simple en abonnement : on règle les soucis avant même que vous les remarquiez.

Confier mon site à Peechy