Désactiver WP-Cron : exécuter les tâches WordPress avec une vraie tâche cron

Par défaut, WordPress utilise le fichier wp-cron.php pour exécuter les tâches planifiées en arrière-plan. Cela comprend, par exemple, la publication d'articles planifiés, les tâches des extensions et des thèmes, les processus WooCommerce, l'envoi d'e-mails, les analyses de sécurité, les tâches de mise en cache ou les fonctions de maintenance automatique.

Le mécanisme de cron propre à WordPress s'appelle WP-Cron. Contrairement à une tâche cron de serveur classique, WP-Cron ne s'exécute pas automatiquement à une heure fixe. Au lieu de cela, il est normalement déclenché par les visites sur votre site web. Dès qu'un visiteur, un robot ou vous-même chargez une page, WordPress vérifie si des tâches planifiées sont arrivées à échéance.

Pour les petits sites web, ce principe fonctionne souvent sans problème. Sur les sites à fort trafic, cependant, WP-Cron può générer une charge serveur inutile. Pour les sites web à faible trafic, c'est l'inverse qui peut se produire : les tâches planifiées sont exécutées en retard o pas du tout, parce que personne ne visite le site. Une solution propre consiste donc à désactiver WP-Cron et à configurer à la place une vraie tâche cron dans le cPanel.

Important :
Ne désactivez WP-Cron que si vous allez réellement configurer une vraie tâche cron par la suite. Si WP-Cron est désactivé mais qu'aucune tâche cron de remplacement ne s'exécute, les articles planifiés, les sauvegardes, les tâches de plugins, les actions WooCommerce et d'autres processus d'arrière-plan risquent d'échouer ou d'être exécutés en retard.

Qu'est-ce que WP-Cron ?

WP-Cron est le système interne de planification des tâches de WordPress. Il veille à ce que les tâches planifiées soient exécutées automatiquement. Son nom s'inspire des tâches cron classiques, mais techniquement, WP-Cron fonctionne différemment d'une vraie tâche cron de serveur.

Les tâches typiques qui s'exécutent via WP-Cron sont :

  • publier des articles planifiés,
  • exécuter les tâches automatiques des plugins, thèmes ou de WordPress,
  • effectuer les vérifications de mises à jour,
  • renouveler ou nettoyer les fichiers de cache,
  • lancer des sauvegardes, si un plugin de sauvegarde l'utilise,
  • traiter les processus de commande ou les abonnements WooCommerce,
  • envoyer les e-mails en attente dans la file d'attente,
  • lancer des analyses de sécurité ou de logiciels malveillants,
  • nettoyer les données temporaires et les "transients".

WP-Cron n'est pas fondamentalement mauvais. C'est une solution pratique car elle fonctionne sans configuration de serveur. Pour les sites web de production, les installations WordPress critiques ou les boutiques en ligne, une vraie tâche cron est cependant souvent plus fiable.

Pourquoi WP-Cron peut-il impacter les performances ?

À chaque chargement de page, WordPress vérifie si un événement cron est dû. Cette vérification est normalement minime, mais elle peut devenir perceptible en cas de nombreux visiteurs, de nombreux plugins o de nombreuses tâches planifiées. Les sites web avec WooCommerce, des plugins de membre, de sauvegarde, de sécurité ou des automatisations lourdes peuvent être particulièrement touchés.

Il existe deux cas de figure problématiques typiques :

  • Beaucoup de visiteurs : WP-Cron peut être vérifié très fréquemment et déclencher des processus PHP supplémentaires.
  • Peu de visiteurs : Les tâches arrivées à échéance sont exécutées tardivement car aucune visite de page ne sert de déclencheur.

Une vraie tâche cron résout ces deux problèmes. Elle appelle le fichier cron de WordPress indépendamment des visiteurs à un intervalle fixe, par exemple toutes les 15 ou 30 minutes. Les tâches d'arrière-plan deviennent ainsi plus prévisibles et le site web n'a plus besoin de lancer cette vérification lors des visites normales des internautes.

Avantage de performance :
Avec une vraie tâche cron de serveur, les tâches d'arrière-plan de WordPress sont exécutées de manière contrôlée à intervalles fixes. Cela peut améliorer le temps de réponse du site web tout en garantissant un traitement plus fiable des tâches planifiées.

Quand une vraie tâche cron est-elle judicieuse ?

Une vraie tâche cron est particulièrement recommandée si votre site web exécute régulièrement des processus d'arrière-plan ou s'il est crucial pour votre activité. Cela concerne entre autres les sites d'entreprise, les boutiques en ligne, les espaces membres, les plateformes de cours et les sites web dotés de flux de travail automatisés.

Passer à une vraie tâche cron est judicieux si :

  • les articles planifiés sont publiés en retard,
  • les sauvegardes ne se lancent pas de manière fiable,
  • les tâches WooCommerce s'exécutent avec du retard,
  • les files d'attente d'e-mails ne sont pas traitées régulièrement,
  • votre site web reçoit beaucoup de visiteurs,
  • vous utilisez de nombreux plugins avec des tâches d'arrière-plan,
  • vous suspectez des problèmes de performance dus à des exécutions cron trop fréquentes,
  • vous souhaitez avoir plus de contrôle sur les tâches planifiées de WordPress.

Pour les très petits sites web avec peu de plugins et un trafic normal, WP-Cron est souvent suffisant. Néanmoins, une vraie tâche cron y reste une solution technique propre si vous préférez une exécution fiable.

Étape 1 : Créer une sauvegarde

Avant d'apporter des modifications au fichier wp-config.php, vous devez créer une sauvegarde récente de votre site web. Le fichier wp-config.php fait partie des fichiers de configuration les plus importants de WordPress. Des modifications erronées peuvent empêcher WordPress de se charger correctement.

Sauvegardez au moins :

  • le fichier wp-config.php,
  • vos fichiers WordPress,
  • la base de données WordPress.

Si vous ne faites qu'une petite modification, il suffit dans de nombreux cas de télécharger localement le fichier wp-config.php existant avant de le modifier ou de le dupliquer dans le gestionnaire de fichiers.

Étape 2 : Désactiver WP-Cron dans le fichier wp-config.php

Pour que WordPress n'exécute plus WP-Cron lors des visites normales des pages, vous devez définir une constante dans le fichier wp-config.php.

Vous trouverez le fichier wp-config.php dans le répertoire racine de votre installation WordPress. C'est là que se trouvent généralement aussi les dossiers wp-admin, wp-content et wp-includes.

  1. Connectez-vous à votre cPanel.
  2. Ouvrez le Gestionnaire de fichiers cPanel.
  3. Naviguez jusqu'au répertoire racine de votre installation WordPress.
  4. Recherchez le fichier wp-config.php.
  5. Créez une copie du fichier ou téléchargez-le comme sauvegarde.
  6. Ouvrez le fichier pour le modifier.
  7. Ajoutez la ligne suivante au-dessus de /* That's all, stop editing! Happy publishing. */.
define('DISABLE_WP_CRON', true);

Enregistrez ensuite le fichier. Cela empêchera WordPress de déclencher automatiquement WP-Cron lors des visites normales de pages.

Remarque :
Veillez à ne pas insérer le code tout à la fin après une balise PHP de fermeture. Dans la plupart des installations WordPress, il n'y a pas de ?> final à la fin du fichier wp-config.php. La ligne doit se trouver au-dessus de la mention That's all, stop editing!.

Étape 3 : Configurer une vraie tâche cron dans cPanel

Après avoir désactivé WP-Cron, configurez une vraie tâche cron dans le cPanel. Celle-ci appellera automatiquement le fichier wp-cron.php à intervalle fixe.

  1. Connectez-vous à votre cPanel.
  2. Dans la section Avancé, ouvrez le menu Tâches Cron.
  3. Sous Paramètres courants, choisissez un intervalle approprié.
  4. Pour de nombreux sites web, toutes les 15 minutes ou toutes les 30 minutes est un choix judicieux.
  5. Saisissez une commande cron appropriée dans le champ Commande.
  6. Enregistrez la tâche cron.

Une variante simple et fréquemment utilisée est l'appel via wget :

wget -q -O - https://votredomaine.ch/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Remplacez https://votredomaine.ch par votre domaine réel. Veillez à utiliser la bonne adresse de site web, donc avec https:// et sans faute de frappe.

Commandes cron alternatives

Selon l'environnement d'hébergement, différentes commandes peuvent être utilisées. Si wget n'est pas disponible, curl fonctionne souvent aussi :

curl -s https://votredomaine.ch/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Une autre possibilité est l'appel PHP direct, à condition de connaître le chemin PHP correct :

php /home/nomdutilisateur/public_html/wp-cron.php >/dev/null 2>&1

L'appel PHP direct est techniquement propre, mais suppose que le chemin d'accès complet au serveur soit correct. Ce chemin diffère selon le compte d'hébergement et le répertoire d'installation.

Recommandation pratique :
Pour la plupart des clients CURIAWEB, l'appel wget via le domaine est la solution la plus simple et la plus compréhensible. En cas de doute sur la commande adaptée à votre site, le support CURIAWEB se fera un plaisir de vous aider.

Quel intervalle est judicieux ?

L'intervalle idéal pour la tâche cron dépend des tâches que votre site web doit exécuter. Un intervalle d'une minute est généralement inutile pour les sites WordPress normaux et peut générer une charge élevée. À l'inverse, des intervalles trop longs peuvent retarder l'exécution des tâches.

Type de site web Intervalle recommandé
Site d'entreprise normal ou Blog Toutes les 30 minutes
Site avec des articles planifiés ou des tâches régulières de plugins Toutes les 15 à 30 minutes
Boutique WooCommerce ou Espace membres Toutes les 5 à 15 minutes, selon les besoins
Site très actif avec files d'attente, réservations ou abonnements Toutes les 5 minutes, si c'est techniquement pertinent

Pour de nombreux sites web, toutes les 15 minutes constitue un bon compromis entre une exécution fiable et une consommation raisonnable des ressources.

Comment tester si WP-Cron fonctionne

Après la configuration, vous devez vérifier si les tâches planifiées continuent d'être exécutées. Le moyen le plus simple de le tester est de planifier la publication d'un article ou d'utiliser un plugin capable d'afficher les événements cron.

Vérifications possibles :

  • Planifiez un article de test pour un avenir proche et vérifiez s'il est publié.
  • Contrôlez si les plugins de sauvegarde continuent de se lancer automatiquement.
  • Vérifiez les actions WooCommerce, les files d'attente ou les e-mails planifiés.
  • Utilisez si nécessaire un plugin pour visualiser les événements cron planifiés.
  • Vérifiez dans le cPanel si la tâche cron a été correctement enregistrée.

Si les tâches ne s'exécutent pas, vérifiez d'abord le domaine dans la commande cron, l'orthographe du fichier wp-cron.php et la position de la ligne dans le fichier wp-config.php.

Erreurs fréquentes lors de la configuration

Lors du passage de WP-Cron à une vraie tâche cron, des erreurs similaires surviennent fréquemment. L'aperçu suivant vous aidera à les identifier.

  • WP-Cron désactivé, mais aucune tâche cron configurée : Les tâches planifiées ne s'exécutent plus de manière fiable.
  • Mauvais domaine dans la commande : La tâche cron appelle le mauvais site web ou une URL inaccessible.
  • HTTP au lieu de HTTPS : Utilisez autant que possible l'adresse HTTPS correcte de votre site web.
  • Site web bloqué par le mode maintenance : L'appel cron n'atteint pas WordPress correctement.
  • Un plugin de sécurité bloque wp-cron.php : Certaines règles de sécurité peuvent restreindre l'accès.
  • Intervalle trop court : Des tâches cron trop fréquentes peuvent provoquer une charge inutile.
  • Erreur dans le fichier wp-config.php : Une erreur de syntaxe peut impacter WordPress.

Le fichier wp-cron.php doit-il être accessible publiquement ?

Le fichier wp-cron.php est normalement accessible publiquement via votre domaine. C'est habituel avec WordPress, car l'appel cron se fait par défaut via HTTP. Si vous utilisez des règles de sécurité spéciales, des pare-feu ou des restrictions d'accès, vous devez veiller à ce que votre propre tâche cron puisse toujours appeler le fichier.

Si un plugin de sécurité bloque l'accès, il peut arriver que les tâches planifiées ne s'exécutent plus. Dans ce cas, vous devez autoriser spécifiquement l'appel cron ou passer à un appel PHP direct via le chemin du serveur.

Réactiver WP-Cron

Si vous souhaitez revenir à la fonction par défaut de WordPress, retirez à nouveau la ligne suivante du fichier wp-config.php :

define('DISABLE_WP_CRON', true);

Supprimez ensuite la tâche cron créée dans le cPanel, afin que wp-cron.php ne soit pas appelé en double ou inutilement.

Recommandation pour les clients CURIAWEB

Pour les sites WordPress professionnels, nous recommandons de remplacer WP-Cron par une vraie tâche cron. Cette variante est plus fiable et techniquement plus propre, en particulier pour WooCommerce, les plugins de sauvegarde, les plugins de sécurité, les espaces membres ou les sites avec des publications planifiées.

Chez CURIAWEB.CH, vous pouvez configurer la tâche cron directement dans le cPanel. Pour la plupart des sites web, un intervalle de 15 ou 30 minutes est approprié. Les boutiques en ligne ou les sites ayant de nombreuses tâches urgentes peuvent nécessiter un intervalle plus court.

Foire aux questions sur WP-Cron et les vraies tâches cron

Que se passe-t-il si je désactive WP-Cron ?

WordPress ne déclenche plus automatiquement les tâches planifiées lors des visites de pages. C'est pourquoi une vraie tâche cron doit être configurée pour appeler régulièrement wp-cron.php.

À quelle fréquence la tâche cron doit-elle s'exécuter ?

Pour les sites normaux, 15 à 30 minutes suffisent généralement. Pour WooCommerce, les espaces membres ou les tâches urgentes, 5 à 15 minutes peuvent être judicieuses.

La désactivation de WP-Cron améliore-t-elle toujours les performances ?

Pas toujours de manière sensible, mais techniquement, c'est souvent plus propre. Le plus grand avantage réside dans l'exécution contrôlée et plus fiable des tâches planifiées.

Puis-je supprimer complètement wp-cron.php ?

Non. Le fichier wp-cron.php ne doit pas être supprimé. Il continue d'être appelé par la vraie tâche cron. Seul le déclencheur automatique lors des visites normales de pages est désactivé.

Une vraie tâche cron est-elle recommandée pour WooCommerce ?

Oui. WooCommerce et de nombreuses extensions utilisent des tâches planifiées pour les commandes, les e-mails, les abonnements, les processus de stock ou les files d'attente. Une vraie tâche cron peut ici garantir plus de fiabilité.


Stabilité maximale pour votre site WordPress

Avec CURIAWEB.CH, vous bénéficez d'un hébergement WordPress performant avec serveur localisé en Suisse, gestion cPanel et support personnel.

Vers les tarifs d'hébergement WordPress

Vous n'êtes pas sûr de savoir comment configurer la tâche cron ? Notre support CURIAWEB se fera un plaisir de vous aider.

Cette réponse était-elle pertinente? 0 Utilisateurs l'ont trouvée utile (0 Votes)