{"id":25875,"date":"2026-08-28T10:00:00","date_gmt":"2026-08-28T08:00:00","guid":{"rendered":"https:\/\/soccorsowp.it\/blog\/?p=25875"},"modified":"2026-08-28T10:00:00","modified_gmt":"2026-08-28T08:00:00","slug":"wp-cron-non-funziona-wordpress-soluzione","status":"publish","type":"post","link":"https:\/\/soccorsowp.it\/blog\/wp-cron-non-funziona-wordpress-soluzione\/","title":{"rendered":"Come risolvere il problema del WP-Cron che non funziona in WordPress"},"content":{"rendered":"<h1>Come risolvere il problema del WP-Cron che non funziona in WordPress<\/h1>\n<p>Il <strong>WP-Cron<\/strong> \u00e8 il sistema di pianificazione delle attivit\u00e0 di <a href=\"https:\/\/soccorsowp.it\/blog\/blocco-di-contenuti-opt-in-per-wordpress\/\">WordPress<\/a>. Gestisce la pubblicazione degli articoli programmati, i backup automatici, l&#8217;invio di email e molto altro. Quando smette di funzionare, gli articoli programmati non vengono pubblicati, i backup saltano e i plugin che dipendono dalla pianificazione si bloccano. In questa guida ti spiego perch\u00e9 succede e come risolverlo.<\/p>\n<h2>Come funziona WP-Cron<\/h2>\n<p>A differenza del cron di sistema che viene eseguito a intervalli regolari dal sistema operativo, il WP-Cron funziona in modo diverso: <strong>viene attivato dalle visite al sito<\/strong>. Ogni volta che un visitatore carica una pagina, WordPress controlla se ci sono attivit\u00e0 pianificate in scadenza e le esegue. Questo significa che se nessuno visita il sito per un&#8217;ora, nessuna attivit\u00e0 cron viene eseguita in quell&#8217;ora.<\/p>\n<p>Questo meccanismo \u00e8 un compromesso progettuale: WordPress funziona su qualsiasi hosting, anche quelli che non permettono di configurare cron job di sistema. Ma ha un difetto fondamentale: <strong>dipende dal traffico<\/strong>.<\/p>\n<h2>Perch\u00e9 WP-Cron smette di funzionare<\/h2>\n<p>Le cause pi\u00f9 comuni sono:<\/p>\n<ul>\n<li><strong>Poco traffico:<\/strong> se il sito riceve poche visite, le attivit\u00e0 cron vengono eseguite in ritardo o non vengono eseguite affatto.<\/li>\n<li><strong>Caching aggressivo:<\/strong> i plugin di caching o la cache del server (Varnish, Nginx FastCGI Cache) servono pagine statiche senza eseguire PHP. Se PHP non viene eseguito, WP-Cron non si attiva.<\/li>\n<li><strong>ALTERNATE_WP_CRON attivo:<\/strong> questa costante \u00e8 pensata per risolvere problemi di cron ma a volte li peggiora, specialmente con configurazioni di caching.<\/li>\n<li><strong>Plugin che bloccano le richieste loopback:<\/strong> WP-Cron usa una richiesta HTTP a se stesso per eseguire le attivit\u00e0 in background. Plugin di sicurezza o firewall possono bloccare queste richieste.<\/li>\n<li><strong>SSL mal configurato:<\/strong> se il sito ha problemi con il certificato SSL, la richiesta loopback fallisce silenziosamente.<\/li>\n<\/ul>\n<h2>Verificare se WP-Cron funziona<\/h2>\n<p>Per verificare lo stato del WP-Cron, installa il plugin <strong>WP Crontrol<\/strong>. Questo plugin mostra tutte le attivit\u00e0 cron pianificate, quando sono state eseguite l&#8217;ultima volta e quando \u00e8 prevista la prossima esecuzione. Se vedi attivit\u00e0 con orari di esecuzione nel passato, significa che il cron non sta funzionando.<\/p>\n<p>Puoi anche testare manualmente visitando:<\/p>\n<pre>https:\/\/tuodominio.com\/wp-cron.php<\/pre>\n<p>Se la pagina si carica senza errori (pagina bianca), il cron sta funzionando. Se ricevi un errore, c&#8217;\u00e8 un problema di connessione.<\/p>\n<h2>Soluzione 1: usare il cron di sistema<\/h2>\n<p>La soluzione pi\u00f9 affidabile \u00e8 <strong>disabilitare il WP-Cron basato sulle visite<\/strong> e sostituirlo con un cron job di sistema. Aggiungi questa riga in <span style=\"font-family: monospace\">wp-config.php<\/span>:<\/p>\n<pre>define('DISABLE_WP_CRON', true);<\/pre>\n<p>Poi configura un cron job di sistema per chiamare wp-cron.php ogni 5 minuti. Da SSH:<\/p>\n<pre>crontab -e<\/pre>\n<p>Aggiungi:<\/p>\n<pre>*\/5 * * * * wget -q -O - https:\/\/tuodominio.com\/wp-cron.php &gt; \/dev\/null 2&gt;&amp;1<\/pre>\n<p>Oppure, se hai WP-CLI installato (metodo pi\u00f9 efficiente):<\/p>\n<pre>*\/5 * * * * cd \/percorso\/wordpress &amp;&amp; wp cron event run --due-now &gt; \/dev\/null 2&gt;&amp;1<\/pre>\n<p>Il metodo WP-CLI \u00e8 migliore perch\u00e9 non richiede una richiesta HTTP e funziona anche se il sito ha problemi di SSL o firewall.<\/p>\n<h2>Soluzione 2: risolvere il problema della richiesta loopback<\/h2>\n<p>Se il WP-Cron non funziona perch\u00e9 la richiesta loopback viene bloccata, verifica con questo test nella bacheca WordPress: vai in <strong>Strumenti \u2192 Salute del sito<\/strong>. Se vedi l&#8217;avviso &#8220;Le richieste loopback al sito non funzionano come previsto&#8221;, il problema \u00e8 confermato.<\/p>\n<p>Le cause comuni della richiesta loopback bloccata:<\/p>\n<ul>\n<li><strong>Plugin di sicurezza:<\/strong> alcuni plugin bloccano le richieste provenienti dallo stesso server. Controlla le impostazioni del firewall del tuo plugin di sicurezza.<\/li>\n<li><strong>Protezione HTTP Auth:<\/strong> se il sito \u00e8 protetto con autenticazione HTTP (username e password del server), WP-Cron non pu\u00f2 autenticarsi.<\/li>\n<li><strong>Firewall del server:<\/strong> regole iptables o il modulo mod_security possono bloccare le richieste locali.<\/li>\n<li><strong>DNS:<\/strong> se il server non riesce a risolvere il proprio dominio, la richiesta loopback fallisce. Aggiungi una riga nel file <span style=\"font-family: monospace\">\/etc\/hosts<\/span>: <span style=\"font-family: monospace\">127.0.0.1 tuodominio.com<\/span><\/li>\n<\/ul>\n<h2>Soluzione 3: gestire i conflitti con la cache<\/h2>\n<p>Se usi un plugin di caching o una cache server-side, assicurati che <span style=\"font-family: monospace\">wp-cron.php<\/span> non venga mai servito dalla cache. Per Nginx, aggiungi un&#8217;eccezione:<\/p>\n<pre>location = \/wp-cron.php {\n    fastcgi_pass unix:\/run\/php\/php-fpm.sock;\n    include fastcgi_params;\n    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n}<\/pre>\n<p>Per i plugin di caching, verifica che <span style=\"font-family: monospace\">wp-cron.php<\/span> sia nella lista delle esclusioni dalla cache.<\/p>\n<h2>Monitorare il cron con WP Crontrol<\/h2>\n<p>Il plugin <strong>WP Crontrol<\/strong> \u00e8 essenziale per gestire il WP-Cron. Permette di:<\/p>\n<ul>\n<li>Vedere tutte le attivit\u00e0 pianificate e i loro intervalli.<\/li>\n<li>Eseguire manualmente un&#8217;attivit\u00e0 cron per testarla.<\/li>\n<li>Eliminare attivit\u00e0 orfane lasciate da plugin disinstallati.<\/li>\n<li>Aggiungere nuove pianificazioni personalizzate.<\/li>\n<\/ul>\n<p>Controlla periodicamente la lista delle attivit\u00e0 cron. Plugin disinstallati possono lasciare attivit\u00e0 orfane che consumano risorse inutilmente. Eliminale per mantenere pulito il sistema.<\/p>\n<h2>Serve assistenza?<\/h2>\n<p>Se il WP-Cron del tuo sito non funziona e gli articoli programmati non vengono pubblicati, il team di <strong><a href=\"https:\/\/soccorsowp.it\/blog\/i-migliori-plugin-woocommerce-per-dominare-il-black-friday\/\">SoccorsoWP<\/a><\/strong> pu\u00f2 diagnosticare il problema e configurare un cron job di sistema affidabile. <a href=\"https:\/\/soccorsowp.it\/ticket\/\">Apri un ticket<\/a> e risolvi il problema definitivamente.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come risolvere il problema del WP-Cron che non funziona in WordPress Il WP-Cron \u00e8 il sistema di pianificazione delle attivit\u00e0 di WordPress. Gestisce la pubblicazione&#8230;<\/p>\n","protected":false},"author":1,"featured_media":25876,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Come risolvere il WP-Cron che non funziona in WordPress","_seopress_titles_desc":"Il WP-Cron non funziona e gli articoli programmati non vengono pubblicati? Scopri le cause e come risolverlo con cron di sistema, WP-CLI e WP Crontrol.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","footnotes":""},"categories":[1424],"tags":[],"class_list":["post-25875","post","type-post","status-publish","format-standard","has-post-thumbnail","category-bug-e-vulnerabilita"],"_links":{"self":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/25875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/comments?post=25875"}],"version-history":[{"count":0,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/25875\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media\/25876"}],"wp:attachment":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media?parent=25875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/categories?post=25875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/tags?post=25875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}