Étude

WordPress lent subitement: cron bloqué, tâches planifiées et pics CPU sur mutualisé

Dépannage WordPress en Suisse romande: WordPress lent du jour au lendemain, pics CPU, wp-cron saturé, tâches planifiées nettoyées, cache stabilisé et monitoring remis en place pour éviter les ralentissements.

Contexte

Une PME en Suisse romande a remarqué une dégradation nette: pages qui chargent en plusieurs secondes, admin lente, et parfois des erreurs temporaires sur certaines actions. Aucun changement majeur n’avait été fait côté design. L’hébergeur indiquait des pics CPU et des processus PHP qui s’accumulent, typique d’une saturation sur mutualisé.

Symptômes observés

  • Site lent sur toutes les pages, y compris pour les visiteurs.
  • Back-office WordPress très lent (liste des pages, médias, plugins).
  • Pics CPU et processus PHP longs côté hébergeur.
  • Ralentissements plus visibles à certaines heures.

Objectifs du dépannage

  • Identifier la source de charge (cron, requêtes, plugin, trafic, bot).
  • Rétablir des temps de réponse stables, surtout sur pages d’entrée.
  • Réduire les traitements en arrière-plan qui s’accumulent.
  • Mettre en place un monitoring simple pour prévenir les récidives.

Diagnostic (méthode)

  • Analyse hébergeur: heures de pics, endpoints sollicités, consommation PHP.
  • Contrôle des tâches planifiées WordPress (wp-cron).
  • Vérification du plugin Action Scheduler (souvent utilisé par WooCommerce et d’autres plugins).
  • Audit rapide des requêtes lentes via Query Monitor (si admin accessible).
  • Contrôle bots: pics sur /wp-json, xmlrpc.php, ou pages campagnes.

Cause identifiée

Un plugin déclenchait une série de tâches planifiées trop fréquentes (wp-cron), et certaines tâches échouaient puis se relançaient, créant une file d’attente. Le phénomène était amplifié par des visites répétées (bots) qui déclenchent wp-cron à chaque chargement, saturant le serveur.


Correctifs appliqués

1) Stabiliser le cron

  • Identification des hooks/tâches trop fréquentes et désactivation du module en cause.
  • Nettoyage de la file des tâches en échec (Action Scheduler).
  • Passage à un cron système (si disponible) pour éviter le déclenchement par les visiteurs.

2) Réduction de charge

  • Contrôle des plugins lourds et réduction des fonctions doublonnées.
  • Optimisation cache (page cache + navigateur) et purge maîtrisée.
  • Protection basique contre les bots agressifs (règles CDN/WAF si actif).

3) Monitoring

  • Ajout d’un suivi uptime et d’alertes sur indisponibilité.
  • Contrôles réguliers: file Action Scheduler, logs d’erreurs, ressources PHP.

Exemple technique : lister les événements wp-cron (WP-CLI)

Permet d’identifier les tâches trop fréquentes et celles en retard.

wp cron event list --fields=hook,next_run,recurrence
wp cron event list --due-now

Exemple technique : désactiver wp-cron et utiliser un cron système

Réduit fortement la charge sur les sites soumis aux bots et aux pics de trafic.

define('DISABLE_WP_CRON', true);
*/5 * * * * curl -s https://www.exemple.ch/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Exemple technique : Action Scheduler (file de tâches) via WP-CLI

Sur certains environnements, la commande existe via WooCommerce ou le plugin Action Scheduler.

wp action-scheduler list --status=failed
wp action-scheduler run --status=pending --batch-size=25

Exemple technique : repérer les endpoints très sollicités (logs)

Selon hébergeur, on peut identifier rapidement les routes qui déclenchent la charge.

Exemples à surveiller:
- /wp-cron.php
- /wp-admin/admin-ajax.php
- /wp-json/
- /xmlrpc.php

Résultats

  • Temps de réponse redevenus stables, admin plus fluide.
  • Charge CPU réduite en supprimant les relances de tâches en échec.
  • Cache plus efficace grâce à une purge contrôlée.
  • Meilleure visibilité sur les incidents via monitoring et points de contrôle.

Prévention mise en place

  • Contrôle mensuel de wp-cron et des tâches planifiées (retards, échecs).
  • Limiter les plugins qui ajoutent des tâches fréquentes sans valeur métier.
  • Si trafic variable: cron système + règles anti-bots basiques.
  • Revue trimestrielle des ressources PHP et de la configuration cache/CDN.

Points clés à retenir

  • Un WordPress lent « d’un coup » est souvent lié à des tâches planifiées qui s’emballent.
  • wp-cron déclenché par les visiteurs est fragile sur mutualisé, surtout avec des bots.
  • Nettoyer la file de tâches et passer sur un cron système améliore la stabilité.

Un projet similaire ou un souci WordPress ?

Que ce soit pour lancer un projet, améliorer un site existant ou résoudre un problème, on vous aide à clarifier la situation et à avancer simplement.