Journal

WP-Cron WordPress et WooCommerce : corriger les tâches planifiées en retard avec un cron serveur (sans surcharge)

Quand WordPress affiche « Un événement planifié est en retard » ou que WooCommerce accumule des tâches (e-mails, webhooks, renouvellements), la cause est souvent la même : WP-Cron dépend du trafic. S’il n’y a pas assez de visites, certaines tâches se déclenchent en retard. A l’inverse, sur un site très visité, WP-Cron peut s’exécuter trop souvent et consommer des ressources.

Pour une PME en Suisse romande, ce sujet touche directement la fiabilité : publications programmées, mises à jour, envois d’e-mails, et tâches WooCommerce. Que vos clients soient à Lausanne et Vevey (Vaud), Genève et Vernier (Genève), Fribourg et Bulle (Fribourg), Sion et Martigny (Valais), Neuchâtel et La Chaux-de-Fonds (Neuchâtel), Delémont et Porrentruy (Jura), l’objectif reste identique : des tâches planifiées qui tournent régulièrement, sans dépendre des visites.

Sources officielles : WordPress (WP-Cron), WordPress (brancher WP-Cron sur un planificateur système), Make WordPress (Health Check, événements planifiés), WooCommerce (Scheduled Actions et Action Scheduler), WooCommerce Subscriptions (événements planifiés).

1) Comprendre WP-Cron : pourquoi cela se décale

WP-Cron exécute des tâches « au chargement d’une page » : il vérifie une liste d’événements, puis lance ceux dont l’heure est passée. WordPress le décrit clairement dans sa documentation : l’exécution dépend des chargements de pages et des tâches dues peuvent se déclencher pendant ce chargement.

Conséquence : sur un site peu visité, une tâche peut rester en attente. Sur un site très visité, WP-Cron est sollicité plus souvent que nécessaire.

2) Diagnostiquer rapidement (sans plugin exotique)

  • WordPress : Outils > Santé du site, puis vérifier l’état des « événements planifiés ». Make WordPress précise que si WP-Cron ne tourne pas, des fonctions comme les publications programmées et certaines mises à jour peuvent échouer.
  • WooCommerce : Outils > Scheduled Actions (ou WooCommerce > Status > Scheduled Actions selon versions). WooCommerce explique que ces tâches reposent sur Action Scheduler.

Si vous voyez beaucoup d’actions « en attente » ou « en retard », il faut stabiliser l’exécution.

3) La solution la plus fiable : désactiver WP-Cron et déclencher wp-cron.php via un cron serveur

WordPress documente précisément la méthode : créer une tâche cron système qui appelle wp-cron.php, puis désactiver l’exécution automatique de WP-Cron sur chaque chargement de page.

Étape A : désactiver WP-Cron côté WordPress

Dans wp-config.php (avant la ligne « That’s all »), ajouter :

define('DISABLE_WP_CRON', true);

Étape B : créer un cron serveur (toutes les 5 minutes, par exemple)

Le principe : appeler l’URL wp-cron.php à intervalle fixe, via l’outil de votre hébergeur (cronjobs) ou via crontab sur un serveur.

# Exemple (a adapter) : toutes les 5 minutes
*/5 * * * * curl -sS https://votre-domaine.ch/wp-cron.php?doing_wp_cron >/dev/null 2>&1

WordPress insiste sur le fait qu’une fois le cron système en place, laisser WP-Cron tourner sur chaque page devient inutile et consomme des ressources.

4) Cas WooCommerce : Action Scheduler et tâches en file

WooCommerce décrit Action Scheduler comme une file de tâches scalable, utilisée notamment pour des paiements d’abonnements, des webhooks et des événements.

Si le cron est instable, la file grossit. Côté Subscriptions, WooCommerce explique aussi qu’Action Scheduler s’appuie sur WP-Cron et sur des traitements lors des requêtes admin pour avancer la file.

  • Après mise en place du cron serveur, surveiller la baisse des actions « en attente ».
  • Si des erreurs persistent : consulter le guide WooCommerce « Scheduled Actions » et, si Subscriptions est utilisé, la documentation dédiée aux événements planifiés.

5) Checklist de validation (10 minutes)

  • Santé du site : plus d’alerte « événements planifiés ».
  • WooCommerce > Scheduled Actions : le volume « en attente » diminue, les actions récentes s’exécutent.
  • Test réel : publication programmée à +10 minutes, puis confirmation qu’elle part à l’heure.
  • Si boutique : un e-mail transactionnel (commande test) et, si applicable, un webhook testé.

FAQ WP-Cron et WooCommerce (Suisse romande)

Pourquoi « Un événement planifié est en retard » apparaît dans Santé du site ?

Souvent parce que WP-Cron n’a pas été déclenché à temps (manque de trafic, blocage serveur, ou exécution instable). Make WordPress indique que si WP-Cron échoue, des fonctions comme les publications programmées peuvent ne pas fonctionner.

Est-ce utile de désactiver WP-Cron sur un site WordPress en Suisse romande ?

Oui, dès que la fiabilité compte (publications programmées, WooCommerce, e-mails, webhooks). WordPress décrit la méthode officielle : cron système + DISABLE_WP_CRON.

WooCommerce affiche beaucoup de tâches dans « Scheduled Actions » : que faire ?

Vérifier d’abord la régularité du cron. WooCommerce explique qu’Action Scheduler pilote ces tâches en lots et qu’il sert de base à de nombreuses fonctions (abonnements, webhooks).

Quelle fréquence de cron serveur est raisonnable ?

Un intervalle de 5 minutes convient souvent pour un site vitrine et beaucoup de boutiques. Certaines extensions peuvent bénéficier d’une fréquence plus fine, mais il vaut mieux commencer simple, puis ajuster si des tâches restent en retard.

Besoin de fiabiliser WP-Cron et les Scheduled Actions WooCommerce ?

Pour diagnostiquer les événements planifiés, mettre en place un cron serveur propre, et stabiliser les tâches WooCommerce sans surcharge, contactez clickclick.ch.

Partez sur de bonnes bases

Prêt·e à lancer votre prochain site performant ?

Clarifiez votre périmètre, choisissez un forfait et planifiez un appel découverte en moins de 48 h. Nous vous aidons à aligner UX, performance et ressources.

Réponse sous 1 jour ouvré · Workshop de cadrage offert pour les projets complets.