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.
Le mécanisme WP-Cron présente plusieurs limitations techniques qui impactent la fiabilité de vos tâches planifiées :
La solution professionnelle consiste à remplacer WP-Cron par un cron système fiable :
Ces tâches WordPress dépendent de WP-Cron et nécessitent une surveillance particulière :
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.
Plusieurs approches complémentaires permettent de surveiller efficacement vos tâches WordPress :
Quand WP-Cron ne fonctionne pas comme attendu, utilisez ces techniques de diagnostic :
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 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.
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.
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.
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é.
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.
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.
Commencez gratuitement, sans carte bancaire.