{"id":7901,"date":"2026-07-14T06:00:00","date_gmt":"2026-07-14T11:00:00","guid":{"rendered":"https:\/\/www.wpconsults.com\/?p=7901"},"modified":"2026-07-23T19:25:53","modified_gmt":"2026-07-24T00:25:53","slug":"alternatives-aux-taches-cron-de-wordpress","status":"publish","type":"post","link":"https:\/\/www.wpconsults.com\/fr\/wordpress-cron-job-alternatives\/","title":{"rendered":"Comparaison des alternatives \u00e0 WP-Cron : Cron du serveur, Action Scheduler et services externes"},"content":{"rendered":"<p class=\"wp-block-paragraph\">WP-Cron ne fonctionne pas selon un horaire fixe. Il s'ex\u00e9cute \u00e0 chaque chargement de page, ce qui explique pourquoi votre article programm\u00e9 n'a pas \u00e9t\u00e9 publi\u00e9 \u00e0 l'heure pr\u00e9vue et pourquoi votre e-mail de renouvellement est arriv\u00e9 avec trois heures de retard.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tout le monde vous dira de le remplacer par un v\u00e9ritable cron de serveur. C'est souvent vrai, mais ce n'est pas toujours le cas ; c'est pourquoi cet article part de votre probl\u00e8me plut\u00f4t que de l'outil.<\/p>\n\n\n\n<div class=\"wp-block-group wpc-takeaways is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading toc-ignore\">Principaux enseignements<\/h2>\n<ul class=\"wp-block-list\">\n<li>WP-Cron est d\u00e9clench\u00e9 par le chargement des pages, et non par l'horloge syst\u00e8me ; ainsi, un site \u00e0 faible trafic ne respecte pas les horaires pr\u00e9vus, tandis qu'un site \u00e0 fort trafic effectue cette v\u00e9rification des milliers de fois par heure.<\/li>\n<li>La solution habituelle consiste \u00e0 <code>define( 'DISABLE_WP_CRON', true );<\/code> en <code>wp-config.php<\/code> ainsi qu'un v\u00e9ritable cron de serveur qui appelle <code>wp-cron.php<\/code> \u00e0 intervalles r\u00e9guliers.<\/li>\n<li><strong>D\u00e9finissez la constante et oubliez le cron du serveur : toutes les t\u00e2ches planifi\u00e9es sur votre site s'arr\u00eateront alors automatiquement.<\/strong> La constante d\u00e9sactive le d\u00e9clencheur, elle ne le remplace pas.<\/li>\n<li>Action Scheduler est une file d'attente, pas une horloge. Sa propre FAQ indique qu'il est lanc\u00e9 par d\u00e9faut par WP-Cron et que les actions en retard sont normales ; il optimise donc le d\u00e9bit, et non la ponctualit\u00e9.<\/li>\n<li>Les services Cron externes ne n\u00e9cessitent aucun acc\u00e8s au serveur et permettent d'ajouter une fonctionnalit\u00e9 de surveillance, au prix d'un point de d\u00e9faillance unique situ\u00e9 en dehors de votre site.<\/li>\n<li>Le WP-Cron par d\u00e9faut convient parfaitement \u00e0 la plupart des petits blogs. WordPress pr\u00e9sente son comportement de mise en file d'attente et de nouvelle tentative comme une fonctionnalit\u00e9, et c'en est effectivement une.<\/li>\n<\/ul>\n<\/div>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id3268_6ddb5a-74 .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);border-top:1px solid var(--global-palette10, #3182CE);border-right:1px solid var(--global-palette10, #3182CE);border-bottom:1px solid var(--global-palette10, #3182CE);border-left:1px solid var(--global-palette10, #3182CE);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:15px 15px 0px 0px rgba(160, 152, 255, 0.31);}.kb-table-of-content-nav.kb-table-of-content-id3268_6ddb5a-74 .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id3268_6ddb5a-74 .kb-table-of-contents-title{font-weight:600;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id3268_6ddb5a-74 .kb-table-of-content-wrap .kb-table-of-content-list{color:var(--global-palette4, #2D3748);font-weight:regular;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:0px;margin-bottom:0px;margin-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id3268_6ddb5a-74 .kb-table-of-content-wrap .kb-table-of-content-list .kb-table-of-contents__entry:hover{color:var(--global-palette1, #3182CE);}.kb-table-of-content-nav.kb-table-of-content-id3268_6ddb5a-74 .kb-table-of-content-wrap .kb-table-of-content-list .active > .kb-table-of-contents__entry{color:var(--global-palette1, #3182CE);}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id3268_6ddb5a-74 .kb-table-of-content-wrap{border-top:1px solid var(--global-palette10, #3182CE);border-right:1px solid var(--global-palette10, #3182CE);border-bottom:1px solid var(--global-palette10, #3182CE);border-left:1px solid var(--global-palette10, #3182CE);}}@media all and (max-width: 767px){.kb-table-of-content-nav.kb-table-of-content-id3268_6ddb5a-74 .kb-table-of-content-wrap{border-top:1px solid var(--global-palette10, #3182CE);border-right:1px solid var(--global-palette10, #3182CE);border-bottom:1px solid var(--global-palette10, #3182CE);border-left:1px solid var(--global-palette10, #3182CE);}}<\/style>\n\n<h2 class=\"wp-block-heading\">Pourquoi WP-Cron ne respecte pas son calendrier ?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">WP-Cron ne se d\u00e9clenche que lorsqu'un utilisateur charge une page. WordPress v\u00e9rifie la liste des t\u00e2ches \u00e0 ex\u00e9cuter \u00e0 chaque chargement de page et ex\u00e9cute celles qui sont en retard ; ainsi, si personne ne visite votre site entre 14 h et 17 h, la t\u00e2che que vous avez programm\u00e9e pour 14 h sera ex\u00e9cut\u00e9e \u00e0 17 h.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce n'est pas mon interpr\u00e9tation, c'est ce qu'indique la documentation de WordPress. Le chapitre consacr\u00e9 au cron dans le \u00ab Plugin Handbook \u00bb l'explique clairement : <strong>\u201c WP-Cron ne s'ex\u00e9cute pas en continu comme le cron syst\u00e8me ; il n'est d\u00e9clench\u00e9 qu'au chargement de la page. \u201d<\/strong>, et cela correspond presque exactement \u00e0 cet exemple de 14 h.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C'est donc le nom qui pose probl\u00e8me. \u00c7a s'appelle \u00ab cron \u00bb et \u00e7a fonctionne comme une liste de t\u00e2ches \u00e0 faire que l'on consulte chaque fois que l'on passe devant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le probl\u00e8me se pose dans les deux sens, ce que la plupart des guides omettent de mentionner. Un site peu fr\u00e9quent\u00e9 ne respecte pas ses d\u00e9lais, tandis qu\u2019un site tr\u00e8s fr\u00e9quent\u00e9 effectue la m\u00eame v\u00e9rification pour chaque requ\u00eate, ce qui <a href=\"https:\/\/wpengine.com\/support\/wp-cron-wordpress-scheduling\/\" rel=\"nofollow noopener\" target=\"_blank\">Documentation de WP Engine<\/a> pr\u00e9cise que \u201c cela oblige le serveur \u00e0 fournir un effort plus important que n\u00e9cessaire et peut entra\u00eener des ralentissements, des d\u00e9lais d'expiration et d'autres probl\u00e8mes de performances \u201d.\u201d<\/p>\n\n\n<h2 class=\"wp-block-heading\">Partez de votre sympt\u00f4me, pas de l'outil<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Chaque sympt\u00f4me n\u00e9cessite une solution adapt\u00e9e, et c'est souvent en choisissant l'outil avant tout que l'on finit par utiliser un service cron externe pour envoyer des requ\u00eates \u00e0 un site dont le v\u00e9ritable probl\u00e8me \u00e9tait une table \u00ab actions \u00bb surcharg\u00e9e. Rep\u00e9rez votre sympt\u00f4me dans ce tableau, puis consultez la section correspondante.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Ce que vous voyez<\/th><th>Qu'est-ce qui ne va pas, au juste ?<\/th><th>Comment y rem\u00e9dier ?<\/th><\/tr><\/thead><tbody>\n<tr><td>Un article programm\u00e9 s'affiche <strong>\u201c Retard par rapport au calendrier pr\u00e9vu \u201d<\/strong><\/td><td>Personne ne consultait une page au moment o\u00f9 la publication devait avoir lieu<\/td><td>Un v\u00e9ritable cron de serveur, de sorte que le d\u00e9clenchement s'arr\u00eate en fonction du nombre de visiteurs<\/td><\/tr>\n<tr><td>Les e-mails et les rappels de renouvellement de WooCommerce arrivent en retard<\/td><td>M\u00eame probl\u00e8me de d\u00e9clenchement, mais sur une file d'attente plus importante<\/td><td>Cron du serveur, et v\u00e9rification dans Action Scheduler des t\u00e2ches bloqu\u00e9es<\/td><\/tr>\n<tr><td>Des milliers de lignes dans <code>wp_actionscheduler_actions<\/code><\/td><td>Un probl\u00e8me de d\u00e9bit, et non un probl\u00e8me de synchronisation<\/td><td>Optimisation et nettoyage du planificateur d'actions, et non cr\u00e9ation d'un nouveau d\u00e9clencheur<\/td><\/tr>\n<tr><td>Votre site re\u00e7oit tr\u00e8s peu de visiteurs<\/td><td>La g\u00e2chette ne se d\u00e9clenche pas assez souvent pour qu'on puisse s'y fier<\/td><td>Cron du serveur ou service cron externe<\/td><\/tr>\n<tr><td>Trafic intense et TTFB lent en cas de charge \u00e9lev\u00e9e<\/td><td>La v\u00e9rification cron s'ex\u00e9cute \u00e0 chaque requ\u00eate<\/td><td><code>DISABLE_WP_CRON<\/code> ainsi qu'une t\u00e2che cron sur le serveur \u00e0 intervalle fixe<\/td><\/tr>\n<tr><td>En r\u00e9alit\u00e9, rien n'est cass\u00e9<\/td><td>Rien<\/td><td>Laisse tomber. Vraiment.<\/td><\/tr>\n<\/tbody><\/table><figcaption class=\"wp-element-caption\">Associez le sympt\u00f4me \u00e0 la cause avant de choisir un outil, car deux de ces probl\u00e8mes ne sont absolument pas li\u00e9s au calage.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Remarquez combien peu de ces lignes indiquent \u201c remplacer WP-Cron \u201d. C'est un choix d\u00e9lib\u00e9r\u00e9, et c'est sur ce point que je ne suis pas d'accord avec les conseils que vous trouverez en t\u00eate des r\u00e9sultats de recherche.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"378\" src=\"https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/wordpress-cron-job-alternatives-serp-ai-overview-7899.avif\" alt=\"Pr\u00e9sentation de l&#039;IA de Google concernant les alternatives aux t\u00e2ches cron de WordPress, recommandant une v\u00e9ritable t\u00e2che cron c\u00f4t\u00e9 serveur\" class=\"wp-image-7899\" srcset=\"https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/wordpress-cron-job-alternatives-serp-ai-overview-7899.avif 1000w, https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/wordpress-cron-job-alternatives-serp-ai-overview-7899-300x113.avif 300w, https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/wordpress-cron-job-alternatives-serp-ai-overview-7899-768x290.avif 768w, https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/wordpress-cron-job-alternatives-serp-ai-overview-7899-18x7.avif 18w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">En recherchant cette expression, on obtient une seule et m\u00eame recommandation g\u00e9n\u00e9rale : la remplacer par un cron c\u00f4t\u00e9 serveur. Captur\u00e9 depuis les \u00c9tats-Unis, le 14 juillet 2026, alors que l'utilisateur n'\u00e9tait pas connect\u00e9. Aucune publicit\u00e9 n'apparaissait sur cette page de r\u00e9sultats de recherche (SERP) ; tous les r\u00e9sultats qui y figuraient \u00e9taient donc naturels.<\/figcaption><\/figure>\n\n\n<h2 class=\"wp-block-heading\">Comparaison entre le cron du serveur, Action Scheduler et les services externes<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Ces trois \u00e9l\u00e9ments ne sont pas concurrents, et les consid\u00e9rer comme une liste restreinte constitue la premi\u00e8re erreur. Un cron de serveur remplace le d\u00e9clencheur, Action Scheduler g\u00e8re une file d'attente de t\u00e2ches, et un service externe remplace le d\u00e9clencheur depuis l'ext\u00e9rieur de votre serveur.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><\/th><th>Cron du serveur r\u00e9el<\/th><th>Planificateur d'actions<\/th><th>Service Cron externe<\/th><\/tr><\/thead><tbody>\n<tr><td><strong>Ce que cela fait r\u00e9ellement<\/strong><\/td><td>Appels <code>wp-cron.php<\/code> sur l'horloge syst\u00e8me<\/td><td>Files d'attente, lots, tentatives de reprise et journaux des t\u00e2ches en arri\u00e8re-plan<\/td><td>Appels <code>wp-cron.php<\/code> depuis un autre serveur<\/td><\/tr>\n<tr><td><strong>Est-ce que \u00e7a r\u00e8gle le probl\u00e8me de la ponctualit\u00e9 ?<\/strong><\/td><td>Oui<\/td><td>Non. Il h\u00e9rite par d\u00e9faut du d\u00e9clencheur de WP-Cron.<\/td><td>Oui<\/td><\/tr>\n<tr><td><strong>Cela am\u00e9liore-t-il le d\u00e9bit ?<\/strong><\/td><td>Non<\/td><td>Oui, c'est justement son r\u00f4le<\/td><td>Non<\/td><\/tr>\n<tr><td><strong>Faut-il un acc\u00e8s au serveur ?<\/strong><\/td><td>Oui, crontab ou un panneau de configuration<\/td><td>Non, il est int\u00e9gr\u00e9 \u00e0 WooCommerce et \u00e0 d'autres plateformes<\/td><td>Non<\/td><\/tr>\n<tr><td><strong>Risque principal<\/strong><\/td><td>Vous d\u00e9finissez la constante et vous n'avez plus \u00e0 vous soucier du cron<\/td><td>Le prendre pour une solution au probl\u00e8me de planification<\/td><td>Un point de d\u00e9faillance unique sur lequel vous n'avez aucun contr\u00f4le<\/td><\/tr>\n<tr><td><strong>Id\u00e9al pour<\/strong><\/td><td>Horaires de publication fixes, renouvellements, sites \u00e0 faible fr\u00e9quentation<\/td><td>Magasins contenant des milliers de t\u00e2ches en file d'attente<\/td><td>H\u00e9bergement g\u00e9r\u00e9 sans acc\u00e8s \u00e0 cron<\/td><\/tr>\n<\/tbody><\/table><figcaption class=\"wp-element-caption\">Ces trois options r\u00e9pondent \u00e0 des probl\u00e8mes diff\u00e9rents ; pour faire une comparaison objective, il faut donc se demander quel est votre probl\u00e8me, et non pas quel outil est le meilleur.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Pour v\u00e9rifier ce qui est r\u00e9ellement programm\u00e9 sur votre site, WP Crontrol est le plugin de r\u00e9f\u00e9rence, et WP-CLI vous fournit la m\u00eame liste avec <code>Liste des \u00e9v\u00e9nements WP Cron<\/code>. V\u00e9rifiez bien avant de modifier quoi que ce soit.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Comment remplacer WP-Cron par un cron de serveur classique<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Il y a deux \u00e9tapes : d\u00e9sactiver le d\u00e9clencheur de chargement de page, puis configurer l'horloge syst\u00e8me pour qu'elle appelle ce m\u00eame fichier \u00e0 intervalles r\u00e9guliers. Effectuez la deuxi\u00e8me \u00e9tape, sinon votre site cessera discr\u00e8tement d'ex\u00e9cuter toutes les t\u00e2ches planifi\u00e9es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00c9tape 1.<\/strong> Ajoutez ceci \u00e0 <code>wp-config.php<\/code>, au-dessus de la ligne indiquant \u201c C'est tout, arr\u00eatez de modifier \u201d :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>define( 'DISABLE_WP_CRON', true );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00c9tape 2.<\/strong> Cr\u00e9ez une v\u00e9ritable t\u00e2che cron sur le serveur, soit via le panneau de configuration de votre h\u00e9bergeur, soit dans le fichier crontab. Une fr\u00e9quence de cinq minutes constitue un r\u00e9glage par d\u00e9faut raisonnable :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>*\/5 * * * * wget -q -O - https:\/\/yoursite.com\/wp-cron.php?doing_wp_cron &gt;\/dev\/null 2&gt;&amp;1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Et maintenant, le plus important : c'est le type de d\u00e9faillance dont personne ne vous met en garde. <code>DISABLE_WP_CRON<\/code> Cela ne d\u00e9sactive pas la planification, mais d\u00e9sactive la <strong>d\u00e9clencheur<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vos \u00e9v\u00e9nements sont toujours en attente dans la base de donn\u00e9es, attendant leur tour. Aucun processus ne vient les ex\u00e9cuter. Par cons\u00e9quent, les articles ne sont pas publi\u00e9s, les e-mails ne sont pas envoy\u00e9s, les sauvegardes ne se lancent pas, et WordPress ne signale aucune erreur, car de son point de vue, la file d'attente n'est tout simplement pas sollicit\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une derni\u00e8re mise en garde si vous utilisez un h\u00e9bergement g\u00e9r\u00e9. La documentation de WP Engine indique que <a href=\"https:\/\/wpengine.com\/support\/wp-cron-wordpress-scheduling\/\" rel=\"nofollow noopener\" target=\"_blank\">ne prend techniquement pas en charge les v\u00e9ritables t\u00e2ches cron c\u00f4t\u00e9 serveur<\/a> et propose \u00e0 la place un service Cron alternatif qui appelle <code>wp-cron.php<\/code> pour vous, ce qui n\u00e9cessite la m\u00eame constante. Ainsi, \u201c il suffit d'utiliser crontab \u201d n'est m\u00eame pas litt\u00e9ralement possible sur certains serveurs, et les guides qui le pr\u00e9conisent ne le mentionnent jamais.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Action Scheduler est une file d'attente, pas une horloge<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Action Scheduler ne garantira pas la ponctualit\u00e9 de vos t\u00e2ches, car il ne contr\u00f4le pas le d\u00e9clencheur. Son <a href=\"https:\/\/actionscheduler.org\/faq\/\" rel=\"nofollow noopener\" target=\"_blank\">FAQ interne<\/a> pr\u00e9cise qu\u2019il \u201c est lanc\u00e9 par WP-Cron \u201d par d\u00e9faut et qu\u2019il est \u201c con\u00e7u pour fonctionner en parall\u00e8le avec WP-Cron sans en modifier le comportement \u201d, et indique que les actions en retard sont normales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Relisez bien cela, car on le pr\u00e9sente r\u00e9guli\u00e8rement comme la solution miracle aux retards dans les projets. Or, il h\u00e9rite pr\u00e9cis\u00e9ment du probl\u00e8me qu'il est cens\u00e9 r\u00e9soudre.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je pr\u00e9f\u00e8re vous le montrer directement sur notre site plut\u00f4t que d'en discuter. La section \u00ab \u00c9tat du site \u00bb de WordPress indique ici qu'une t\u00e2che planifi\u00e9e est en retard, et la t\u00e2che en question est : <code>action_scheduler_run_queue<\/code>, qui correspond \u00e0 l'\u00e9v\u00e9nement WP-Cron charg\u00e9 d'ex\u00e9cuter la file d'attente d'Action Scheduler.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"930\" height=\"350\" src=\"https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/wordpress-site-health-scheduled-event-is-late-7897.avif\" alt=\"Le rapport \u00ab Sant\u00e9 du site WordPress \u00bb signale qu&#039;un \u00e9v\u00e9nement planifi\u00e9 est en retard, en mentionnant la file d&#039;attente d&#039;ex\u00e9cution de l&#039;Action Scheduler\" class=\"wp-image-7897\" srcset=\"https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/wordpress-site-health-scheduled-event-is-late-7897.avif 930w, https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/wordpress-site-health-scheduled-event-is-late-7897-300x113.avif 300w, https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/wordpress-site-health-scheduled-event-is-late-7897-768x289.avif 768w, https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/wordpress-site-health-scheduled-event-is-late-7897-18x7.avif 18w\" sizes=\"auto, (max-width: 930px) 100vw, 930px\" \/><figcaption class=\"wp-element-caption\">\u00ab Site Health \u00bb sur wpconsults.com, 14 juillet 2026. Le processus charg\u00e9 de vider la file d'attente de l'Action Scheduler est lui-m\u00eame un \u00e9v\u00e9nement WP-Cron diff\u00e9r\u00e9.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Alors, \u00e0 quoi sert Action Scheduler ? Au traitement de gros volumes. Il regroupe les t\u00e2ches par lots, effectue des tentatives de r\u00e9ex\u00e9cution, consigne les op\u00e9rations dans un journal et met \u00e0 votre disposition un \u00e9cran d'administration, tout en stockant toutes les donn\u00e9es dans sa propre <code>actionscheduler_<\/code> des tableaux plut\u00f4t que de tout mettre en bloc dans <code>wp_options<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voici \u00e0 quoi cela ressemble dans une boutique r\u00e9elle. Notre site a enregistr\u00e9 1 697 actions, dont 1 565 men\u00e9es \u00e0 bien et <strong>123 a \u00e9chou\u00e9<\/strong>, et je n'aurais pas su que ces erreurs existaient si je n'avais pas ouvert cet \u00e9cran.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"633\" src=\"https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/action-scheduler-pending-actions-screen-7898.avif\" alt=\"\u00c9cran d&#039;administration de l&#039;Action Scheduler affichant les actions planifi\u00e9es en attente et le nombre d&#039;actions ayant \u00e9chou\u00e9\" class=\"wp-image-7898\" srcset=\"https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/action-scheduler-pending-actions-screen-7898.avif 1000w, https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/action-scheduler-pending-actions-screen-7898-300x190.avif 300w, https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/action-scheduler-pending-actions-screen-7898-768x486.avif 768w, https:\/\/www.wpconsults.com\/wp-content\/uploads\/2026\/07\/action-scheduler-pending-actions-screen-7898-18x12.avif 18w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">Outils, puis \u00ab Actions programm\u00e9es \u00bb sur notre propre site. Le nombre d'\u00e9checs correspond au nombre de sites \u00e0 v\u00e9rifier parmi toutes les boutiques utilisant WooCommerce ou Easy Digital Downloads.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Voil\u00e0 un r\u00e9sum\u00e9 honn\u00eate de cet outil. Il est excellent pour g\u00e9rer des milliers de t\u00e2ches, mais ce n\u2019est pas la solution qu\u2019il faut choisir lorsque votre reproche est : \u201c \u00c7a aurait d\u00fb \u00eatre fait \u00e0 3 h 10 du matin. \u201d<\/p>\n\n\n<h2 class=\"wp-block-heading\">Quels sont les avantages des services Cron externes, et quel est leur co\u00fbt ?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Un service cron externe appelle votre <code>wp-cron.php<\/code> depuis un autre site Internet, selon un calendrier fixe. Vous n'avez absolument pas besoin d'acc\u00e9der au serveur, et vous b\u00e9n\u00e9ficiez g\u00e9n\u00e9ralement d'une surveillance et d'alertes, ce qu'une ligne de crontab ne vous offrira jamais.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En contrepartie, le c\u0153ur de votre site se trouve d\u00e9sormais en dehors de celui-ci. Si le service tombe en panne, si votre compte expire ou si la connexion vers votre serveur est interrompue, le d\u00e9clencheur dispara\u00eet et rien sur votre serveur ne s'en rend compte, car aucun \u00e9l\u00e9ment de votre serveur ne surveillait cette connexion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C'est mon raisonnement, et non une faille av\u00e9r\u00e9e dont quelqu'un aurait fait \u00e9tat ; je choisirais quand m\u00eame cette solution sur un h\u00e9bergement g\u00e9r\u00e9 sans acc\u00e8s \u00e0 cron. La surveillance a une certaine valeur, et il vaut mieux \u00eatre alert\u00e9 d'un d\u00e9clencheur manquant que de le d\u00e9couvrir une semaine plus tard.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Qui n'a vraiment pas besoin de remplacer WP-Cron ?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Si votre site ne comporte aucune obligation li\u00e9e \u00e0 des horaires fixes, WP-Cron convient parfaitement et vous pouvez arr\u00eater de lire. Un blog qui publie d\u00e8s que vous cliquez sur \u00ab Publier \u00bb, sans boutique en ligne, sans renouvellements et sans e-mails urgents, n'a rien \u00e0 perdre si une t\u00e2che de nettoyage s'ex\u00e9cute \u00e0 17 h au lieu de 14 h.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress le pr\u00e9cise lui-m\u00eame, et c'est justement la citation que les partisans du \u201c toujours le remplacer \u201d ne vous montrent jamais. Extrait du m\u00eame chapitre du manuel :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Avec le planificateur syst\u00e8me, si le d\u00e9lai s'\u00e9coule sans que la t\u00e2che ait \u00e9t\u00e9 ex\u00e9cut\u00e9e, celle-ci ne sera pas relanc\u00e9e. Avec WP-Cron, toutes les t\u00e2ches planifi\u00e9es sont plac\u00e9es dans une file d'attente et s'ex\u00e9cuteront d\u00e8s que possible (c'est-\u00e0-dire au prochain chargement de la page). Ainsi, m\u00eame si vous ne pouvez pas en \u00eatre s\u00fbr \u00e0 100% <em>quand<\/em> Votre t\u00e2che s'ex\u00e9cutera, vous pouvez en \u00eatre s\u00fbr \u00e0 100% <em>finalement<\/em>.<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">C'est un v\u00e9ritable compromis de conception, dit sans d\u00e9tours. Un syst\u00e8me cron qui se d\u00e9clenche alors que votre site rencontre une erreur saute tout simplement cette ex\u00e9cution et passe \u00e0 la suivante, tandis que WP-Cron conserve la t\u00e2che dans la file d'attente et la r\u00e9essaie d\u00e8s que l'occasion se pr\u00e9sente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aucun des deux mod\u00e8les n'est meilleur en th\u00e9orie ; ils pr\u00e9sentent chacun leurs propres failles. Vous devez choisir entre \u201c \u00e7a fonctionnera, mais je ne sais pas exactement quand \u201d et \u201c \u00e7a fonctionnera \u00e0 3 h 10 du matin, ou \u00e7a ne fonctionnera pas du tout \u201d.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il est \u00e9galement int\u00e9ressant de noter qui tire profit de ces conseils g\u00e9n\u00e9raux. Ce sont principalement les h\u00e9bergeurs et les fournisseurs de solutions de surveillance par cron qui les diffusent, et les principes qu\u2019ils vous exposent sont corrects. C\u2019est le mot \u201c toujours \u201d que je remettrais en question.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Ce que ce site h\u00e9berge r\u00e9ellement, et pourquoi<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Nous sommes r\u00e9solument partisans de l'id\u00e9e que \u201c le timing est essentiel \u201d, c'est pourquoi nous utilisons un d\u00e9clencheur c\u00f4t\u00e9 serveur. Ce blog publie \u00e0 des horaires fixes, et deux articles ont \u00e9t\u00e9 mis en ligne cette semaine exactement \u00e0 l'heure pr\u00e9vue, l'un \u00e0 3 h 10 du matin et l'autre \u00e0 15 h 30, heure de Dacca, alors que mon ordinateur \u00e9tait \u00e9teint et que je dormais.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cela ne fonctionne que parce que le d\u00e9clencheur ne d\u00e9pend pas du fait qu'un visiteur arrive justement \u00e0 3 h 10 du matin. Presque personne ne consulte un blog consacr\u00e9 au r\u00e9f\u00e9rencement \u00e0 cette heure-l\u00e0, ce qui correspond exactement au cas d'\u00e9chec li\u00e9 \u00e0 un faible trafic pr\u00e9sent\u00e9 dans le tableau ci-dessus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notre animateur est <a title=\"\" class=\"aalmanual\" target=\"_blank\"  rel=\"nofollow\"   href=\"https:\/\/www.wpconsults.com\/fr\/shared-hosting-hostinger\/\">Hostinger<\/a>, et comme la plupart des h\u00e9bergeurs, il propose un \u00e9cran d\u00e9di\u00e9 aux t\u00e2ches Cron dans le panneau d'administration ; la configuration se r\u00e9sume donc aux deux \u00e9tapes ci-dessus, rien de plus compliqu\u00e9 que \u00e7a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L'histoire de cette \u00ab guerre \u00bb qui nous a men\u00e9s l\u00e0 o\u00f9 nous en sommes m\u00e9rite d'\u00eatre lue si vous vendez quoi que ce soit : j'ai d\u00e9crit le cas pr\u00e9cis o\u00f9 les e-mails et les renouvellements de WooCommerce arrivaient en retard et <a href=\"https:\/\/www.wpconsults.com\/fr\/correction-des-emails-manquants-de-woocommerce-et-des-renouvellements-retardes-mise-en-place-dun-vrai-job-cron\/\">La mise en place d'une v\u00e9ritable t\u00e2che cron a permis de r\u00e9soudre le probl\u00e8me<\/a>. Cet article pr\u00e9sente la version g\u00e9n\u00e9rale de cette correction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il y a une distinction qu'il convient de bien garder \u00e0 l'esprit lorsque vous \u00eates sur ce site : un e-mail envoy\u00e9 en retard est un <em>planification<\/em> probl\u00e8me, et un e-mail qui n'arrive jamais est g\u00e9n\u00e9ralement un <em>livraison<\/em> probl\u00e8me, dont la solution est tout \u00e0 fait diff\u00e9rente. Si vous ne savez pas de quel probl\u00e8me il s'agit, v\u00e9rifiez si vos e-mails parviennent \u00e0 quitter le b\u00e2timent en <a href=\"https:\/\/www.wpconsults.com\/fr\/configurer-smtp-manuellement-dans-wordpress-2\/\">Configurer correctement le protocole SMTP<\/a> Tout d'abord.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et si vous vous int\u00e9ressez \u00e0 ce sujet davantage pour des raisons de charge du serveur que de temps de chargement, sachez que le surco\u00fbt li\u00e9 au chargement de la page est bien r\u00e9el mais minime, et qu\u2019il est rarement la cause r\u00e9elle du ralentissement. J\u2019ai d\u00e9j\u00e0 \u00e9crit un article sur ce qui fait v\u00e9ritablement la diff\u00e9rence lorsque <a href=\"https:\/\/www.wpconsults.com\/fr\/un-site-wordpress-peut-il-gerer-1-million-de-visiteurs\/\">un site WordPress doit pouvoir g\u00e9rer un trafic important<\/a>, et \u00e0 propos de <a href=\"https:\/\/www.wpconsults.com\/fr\/inp-wordpress\/\">INP et r\u00e9activit\u00e9<\/a> pour ce qui est de la partie front-end.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Alors, faut-il remplacer WP-Cron ?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Si une action doit se produire \u00e0 un moment pr\u00e9cis sur votre site, alors oui, faites-le d\u00e8s aujourd\u2019hui. Les publications programm\u00e9es, les renouvellements d\u2019abonnement, les e-mails transactionnels et les sauvegardes nocturnes m\u00e9ritent tous un d\u00e9clencheur qui ne d\u00e9pende pas du fait qu\u2019un inconnu charge votre page d\u2019accueil.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si aucun \u00e9l\u00e9ment de votre site n'est soumis \u00e0 une \u00e9ch\u00e9ance, ne touchez pas \u00e0 rien. Vous ne feriez qu'ajouter un \u00e9l\u00e9ment suppl\u00e9mentaire et une nouvelle source d'erreur, en \u00e9change d'une ponctualit\u00e9 dont vous ne vous souciez pas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et s'il y a une chose \u00e0 retenir de tout cela : lorsque vous d\u00e9finissez cette constante, assurez-vous que la t\u00e2che cron du serveur s'ex\u00e9cute bien avant de fermer le terminal. Un site avec <code>DISABLE_WP_CRON<\/code> Et aucune t\u00e2che cron ne semble fonctionner parfaitement jusqu'au jour o\u00f9 l'on se rend compte que rien n'a \u00e9t\u00e9 publi\u00e9 depuis une semaine.<\/p>\n\n\n\n<div class=\"wp-block-group wpc-post-cta is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">Les t\u00e2ches planifi\u00e9es continuent-elles \u00e0 s'ex\u00e9cuter en retard ?<\/h3>\n<p class=\"wp-block-paragraph\">Si, apr\u00e8s cela, l'heure n'appara\u00eet toujours pas sur vos publications, vos e-mails ou vos renouvellements, <a href=\"https:\/\/www.wpconsults.com\/fr\/travailler-avec-wpconsults\/\" rel=\"nofollow noopener\" target=\"_blank\">nous contacter<\/a> ou <a href=\"mailto:abdullah@wpconsults.com\">m'envoyer un courriel<\/a> et je t'aiderai \u00e0 d\u00e9terminer lequel de ces trois probl\u00e8mes est r\u00e9ellement le tien.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Comparaison des alternatives \u00e0 la t\u00e2che cron de WordPress : cron du serveur, Action Scheduler et services externes. Partez de votre probl\u00e8me et d\u00e9couvrez pourquoi la plupart des petits sites n'ont absolument pas besoin de remplacer WP-Cron.<\/p>","protected":false},"author":1,"featured_media":7892,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_kb_optimizer_status":2,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","rank_math_title":"WordPress Cron Job Alternatives: Which One Actually Fits?","rank_math_description":"WordPress cron job alternatives compared: server cron, Action Scheduler and external services. A symptom-first guide, plus the honest case for leaving WP-Cron alone.","rank_math_focus_keyword":"wordpress cron job alternatives","_colophon_preset":"regular","_colophon_fc_on":"1","_colophon_edited_on":"1","_colophon_editor_on":"","_colophon_editor_id":0,"_colophon_editor_name":"","_wpc_translation_mode":"keep","_wpc_translation_visited":"2026-07-20 08:33 UTC (backfill)","_wpc_keep_translation":false,"_wpc_lastmod":"","footnotes":""},"categories":[89],"tags":[],"class_list":["post-7901","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-seo"],"_links":{"self":[{"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/posts\/7901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/comments?post=7901"}],"version-history":[{"count":1,"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/posts\/7901\/revisions"}],"predecessor-version":[{"id":8115,"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/posts\/7901\/revisions\/8115"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/media\/7892"}],"wp:attachment":[{"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/media?parent=7901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/categories?post=7901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wpconsults.com\/fr\/wp-json\/wp\/v2\/tags?post=7901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}