Monitoring WP-Cron WordPress

Maîtrisez la surveillance de WP-Cron pour un WordPress fiable

WordPress alimente plus de 40% des sites web dans le monde. Derrière chaque site WordPress se cache WP-Cron, le système de tâches planifiées qui gère tout : des publications programmées aux backups automatiques, en passant par l'envoi d'emails et les mises à jour de plugins. Quand WP-Cron cesse de fonctionner, les conséquences peuvent être désastreuses.

Contrairement au cron système Linux, WP-Cron ne fonctionne pas de manière autonome. Il dépend des visites du site pour s'exécuter, ce qui crée un problème fondamental : un site à faible trafic peut avoir des tâches en retard de plusieurs heures. De plus, les plugins de cache agressif peuvent bloquer complètement l'exécution de WP-Cron sans aucune alerte.

La solution recommandée consiste à désactiver le WP-Cron natif au profit d'un cron système, puis à surveiller ce cron avec MoniTao. Cette approche garantit une exécution fiable et prévisible de vos tâches WordPress, indépendamment du trafic de votre site.

Problèmes Courants de WP-Cron

Le mécanisme WP-Cron présente plusieurs limitations techniques qui impactent la fiabilité de vos tâches planifiées :

Bonne Pratique : Cron Système

La solution professionnelle consiste à remplacer WP-Cron par un cron système fiable :

  1. Désactiver WP-Cron natif : Ajoutez define('DISABLE_WP_CRON', true); dans votre fichier wp-config.php. Cela empêche WordPress de vérifier les tâches à chaque page load.
  2. Configurer le cron système : Ajoutez une entrée crontab qui appelle wp-cron.php toutes les 5 minutes : */5 * * * * wget -q -O /dev/null https://votre-site.com/wp-cron.php?doing_wp_cron
  3. Surveiller avec MoniTao : Créez un heartbeat MoniTao pour ce cron système. Si le cron ne s'exécute pas, vous serez alerté immédiatement au lieu de découvrir le problème des jours plus tard.

Tâches WordPress Critiques

Ces tâches WordPress dépendent de WP-Cron et nécessitent une surveillance particulière :

Exemple d'Intégration Heartbeat

Voici comment intégrer un heartbeat MoniTao directement dans vos tâches WordPress :

// Dans functions.php ou un plugin personnalisé

// Créer un hook personnalisé pour le heartbeat
add_action('monitao_hourly_heartbeat', 'monitao_send_heartbeat');

function monitao_send_heartbeat() {
    $ping_url = 'https://api.monitao.com/ping/votre-token';

    $response = wp_remote_post($ping_url, [
        'timeout' => 10,
        'body' => json_encode(['status' => 'ok']),
        'headers' => ['Content-Type' => 'application/json']
    ]);

    if (is_wp_error($response)) {
        error_log('MoniTao heartbeat failed: ' . $response->get_error_message());
    }
}

// Planifier le heartbeat (si pas déjà planifié)
if (!wp_next_scheduled('monitao_hourly_heartbeat')) {
    wp_schedule_event(time(), 'hourly', 'monitao_hourly_heartbeat');
}

Ce code crée une tâche WP-Cron qui ping MoniTao toutes les heures. Si le ping cesse d'arriver, MoniTao vous alerte que votre WP-Cron ne fonctionne plus. Vous pouvez adapter l'intervalle (hourly, twicedaily, daily) selon vos besoins.

Stratégies de Monitoring WordPress

Plusieurs approches complémentaires permettent de surveiller efficacement vos tâches WordPress :

Débugger WP-Cron

Quand WP-Cron ne fonctionne pas comme attendu, utilisez ces techniques de diagnostic :

Checklist WP-Cron

  • Ajouter DISABLE_WP_CRON dans wp-config.php
  • Configurer le cron système pour appeler wp-cron.php
  • Créer un heartbeat MoniTao pour ce cron
  • Identifier toutes les tâches critiques (backups, emails)
  • Installer WP-CLI ou WP Crontrol pour le diagnostic
  • Tester manuellement une exécution de wp-cron.php

Questions Fréquentes

Mes articles programmés ne se publient pas à l'heure prévue. Pourquoi ?

WP-Cron n'a pas été déclenché entre le moment de la planification et l'heure de publication. Sans trafic sur votre site (ou avec un cache agressif), WP-Cron reste inactif. La solution : désactivez le WP-Cron natif et configurez un cron système qui appelle wp-cron.php toutes les 5 minutes.

WP-Cron ralentit mon site. Comment l'optimiser ?

WP-Cron natif s'exécute à chaque page load, ajoutant une latence. En ajoutant DISABLE_WP_CRON et en utilisant un cron système, vous supprimez complètement cette surcharge. Les visiteurs ne déclenchent plus les tâches planifiées, ce qui améliore significativement les temps de réponse.

Comment voir les tâches WP-Cron en attente et leur statut ?

Installez le plugin WP Crontrol depuis le repository WordPress. Il affiche toutes les tâches planifiées, leur hook, leur prochaine exécution, et permet de les exécuter manuellement. En ligne de commande, utilisez wp cron event list avec WP-CLI.

Mon backup UpdraftPlus ne s'exécute pas automatiquement. Que faire ?

UpdraftPlus dépend entièrement de WP-Cron. Vérifiez d'abord que WP-Cron fonctionne en consultant la page UpdraftPlus > Settings > Advanced. Si "Unable to use WP-Cron" apparaît, configurez un cron système. Surveillez ensuite ce cron avec MoniTao pour être alerté si les backups cessent.

Mon hébergement mutualisé ne permet pas les crons. Quelles alternatives ?

Plusieurs solutions existent : utilisez un service de cron externe gratuit (cron-job.org, EasyCron) pour appeler votre wp-cron.php, ou utilisez le mode ALTERNATE_WP_CRON qui contourne certaines limitations. MoniTao peut surveiller ces appels externes pour garantir leur fiabilité.

Comment savoir si WP-Cron fonctionne correctement ?

Créez un heartbeat MoniTao qui ping depuis une tâche WP-Cron (voir l'exemple de code). Si le ping s'arrête, WP-Cron est en panne. Vous pouvez aussi vérifier manuellement en appelant https://votre-site.com/wp-cron.php?doing_wp_cron dans votre navigateur et en vérifiant les logs serveur.

WordPress Fiable avec un Cron Surveillé

WP-Cron est un système simple mais fragile, conçu pour des sites à trafic régulier. Dans la réalité, de nombreux sites WordPress ont un trafic irrégulier ou utilisent des caches agressifs qui rendent WP-Cron peu fiable. Les conséquences vont des articles non publiés aux backups manquants.

La solution professionnelle combine un cron système fiable avec un monitoring externe MoniTao. Cette approche garantit que vos tâches WordPress s'exécutent selon le planning prévu, et vous alerte immédiatement en cas de problème. Commencez par surveiller vos tâches les plus critiques : backups et publications programmées.

Prêt à dormir sur vos deux oreilles ?

Commencez gratuitement, sans carte bancaire.