Performances et surveillance

Remplacer WP-Cron par une tâche planifiée de l'hébergement

Vérifié le 5 min de lecture WordPress performances cron

WordPress utilise WP-Cron pour exécuter les événements en attente, comme les publications planifiées et les tâches des extensions. En général, ce sont les visites qui déclenchent leur exécution. Cela simplifie l'installation, mais un site avec peu de trafic peut exécuter les tâches en retard et un site très actif peut préférer un déclenchement système.

Il ne s'agit pas de supprimer les tâches, mais de changer la façon dont elles démarrent. Désactiver WP-Cron sans remplaçant opérationnel peut laisser en attente des publications, des e-mails ou des opérations de la boutique.

Option avec Softaculous

Dans WordPress Manager by Softaculous, repérez la bonne installation et l'option WordPress Cron (wp-cron.php). Softaculous propose de désactiver le déclenchement par les visites et de le remplacer par une tâche système.

Vérifiez ensuite Tâches Cron dans cPanel : contrôlez que la tâche a bien été créée, quelle installation elle exécute et à quelle fréquence. Le mode documenté par Softaculous peut être horaire ; ne supposez pas qu'il convient à des tâches qui doivent s'exécuter toutes les quelques minutes. N'ajoutez pas une autre tâche équivalente s'il en existe déjà une.

Consultez le gestionnaire officiel de Softaculous pour connaître les fonctions de votre version et testez un événement planifié avant de considérer le changement comme terminé.

Configuration manuelle

Gardez une copie de wp-config.php et vérifiez les tâches existantes. Depuis les Tâches Cron de cPanel, préparez une tâche avec la fréquence dont l'application a besoin. Toutes les cinq minutes peut être un point de départ, mais cela ne garantit ni une précision à la seconde ni qu'une tâche longue soit terminée avant la suivante.

Si vous utilisez une requête HTTPS, testez d'abord cette commande avec le domaine et le chemin réels de WordPress :

curl --fail --silent --show-error --max-time 60 --output /dev/null 'https://votredomaine.com/wp-cron.php?doing_wp_cron'

Vérifiez que la réponse n'est pas une redirection, une page de connexion, un défi du pare-feu ou une copie en cache. La commande ne suit pas les redirections : utilisez la bonne URL finale. Le délai d'attente du client ne prouve pas que le travail du serveur s'est arrêté.

Si WordPress se trouve dans un sous-répertoire, incluez-le. Dans le formulaire de cPanel, les champs de date et d'heure sont séparés de la commande ; n'y collez pas une ligne complète de crontab s'il ne demande que la commande.

Une fois le remplaçant testé et planifié, ajoutez dans wp-config.php, avant le chargement de WordPress :

define('DISABLE_WP_CRON', true);

Si la constante existe déjà, changez sa valeur sans la dupliquer. La procédure de WordPress explique ce changement de déclencheur.

Vérifier les tâches et éviter les doublons

Vérifiez une publication planifiée de test et les événements importants de vos extensions. Contrôlez les tâches en retard et les erreurs. Une réponse HTTP correcte ne garantit pas que tous les callbacks se sont terminés sans erreur.

Si vous préférez exécuter les événements avec WP-CLI, vérifiez avec le développeur le chemin, la version de PHP, le contexte du site et la politique de concurrence. Ne gardez pas en même temps plusieurs tâches équivalentes de Softaculous, HTTP et WP-CLI.

En cas de problème, rétablissez le déclencheur précédent et retirez ou mettez en pause le remplaçant qui ne fonctionne pas. Ne laissez pas DISABLE_WP_CRON actif pendant votre recherche sans autre moyen d'exécuter les événements. En multisite, examinez les besoins de chaque site du réseau.

Cela peut aussi vous aider

Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.