Pubblicazione Programmata Fallita in WordPress: Guida a WP-Cron e Cron Reale

Pianificare i contenuti fa risparmiare tempo prezioso. Tuttavia, WordPress a volte non pubblica i post all’orario stabilito. La notifica di pubblicazione programmata fallita blocca il tuo piano editoriale e genera frustrazione.

Questo problema tecnico è noto come errore Missed Schedule. Nella maggior parte dei casi dipende dal funzionamento interno del sistema WP-Cron. In questo articolo scoprirai come analizzare il problema alla radice e risolverlo definitivamente.

Come Funziona WP-Cron e Perché Si Blocca

WordPress non possiede un demone di sistema sempre attivo. Per eseguire attività temporizzate, il CMS simula un cron job tradizionale. Questo meccanismo prende il nome di WP-Cron.

La differenza tra Cron reale e pseudo-cron

Un cron di sistema Unix gira in background a intervalli regolari. WP-Cron, al contrario, è uno pseudo-cron guidato dal traffico web. Ogni volta che un visitatore carica una pagina, WordPress avvia una richiesta interna.

Questa richiesta interroga il file wp-cron.php. Se non ci sono visite nell’orario programmato, l’evento non parte. Il tuo articolo rimane fermo nello stato non pubblicato.

I limiti del traffico e i blocchi loopback

Sui siti con poco traffico gli eventi scadono senza essere elaborati. Al contrario, sui siti ad alto traffico si creano code ingestibili. Molti server condivisi presentano anche chiamate loopback disabilitate.

Se il server blocca le chiamate HTTP interne, WP-Cron smette di funzionare. Approfondisci l’argomento nella nostra guida su come disabilitare WP-Cron in wp-config.php e risolvere i conflitti da chiamate loopback bloccate.

Diagnosi: Individuare la Causa dell’Errore Missed Schedule

Prima di toccare il codice, individua la causa esatta del blocco. Diversi fattori possono impedire l’esecuzione degli script pianificati.

Controllare la bacheca di Salute del Sito

WordPress offre uno strumento diagnostico integrato ed efficace. Accedi alla tua bacheca amministrativa. Fai clic su Strumenti e seleziona Salute del sito.

Verifica se compaiono avvisi relativi a WP-Cron o alle chiamate loopback. Se la verifica rileva errori HTTP, il server sta bloccando il cron. In questo caso è necessario intervenire sulla configurazione.

Verificare il fuso orario di WordPress

Un fuso orario non corretto sballa la pianificazione degli articoli. Molti utenti affrontano l’errore di pubblicazione programmata fallita solo per un orario errato. Il CMS programma il post nel futuro o nel passato rispetto all’orologio del server.

  • Vai su Impostazioni e clicca su Generali.
  • Cerca l’opzione Fuso orario.
  • Imposta la tua città geografica invece del valore UTC manuale.
  • Salva le modifiche in fondo alla pagina.

Trucco pratico: Selezionare una città come Roma evita discrepanze durante il passaggio tra ora solare e ora legale. Le impostazioni numeriche fisse UTC non gestiscono questo cambio automatico.

Disabilitare il Cron Virtuale nel File wp-config.php

La soluzione definitiva consiste nell’affidare i task temporizzati al server. Per iniziare, devi prima spegnere il cron virtuale di WordPress.

Accesso ai file di sistema via FTP o SSH

Usa un client FTP come FileZilla o un terminale SSH. Connettiti allo spazio web del tuo hosting. Entra nella cartella radice della tua installazione, denominata spesso public_html.

Individua il file wp-config.php. Prima di modificarlo, scarica sempre una copia di backup sul tuo computer.

Inserimento della direttiva di disattivazione

Apri il file con un editor di testo pulito. Scorri verso il basso fino alla riga che recita: /* Fatto, interrompi le modifiche! Buon blogging. */.

Inserisci subito prima questa istruzione:

define('DISABLE_WP_CRON', true);

Salva il file e ricaricalo sul server. Questa modifica disattiva l’esecuzione automatica di WP-Cron ad ogni visita. Ora il server smetterà di avviare richieste HTTP non necessarie.

Configurare un Cron Reale a Livello di Server Linux

Dopo aver disabilitato il cron interno, devi attivare un cron job Linux. Il sistema operativo eseguirà wp-cron.php a intervalli prestabiliti con precisione assoluta.

Configurazione del crontab via riga di comando

Questa procedura risolve per sempre il fastidioso problema della pubblicazione programmata fallita sul tuo blog. Accedi al server tramite connessione SSH. Apri il gestore dei cron digitando il comando:

crontab -e

Aggiungi una riga in fondo al documento. Consigliamo di eseguire il task ogni 10 o 15 minuti. Inserisci il seguente comando basato su WP-CLI o Wget:

*/10 * * * * wget -q -O - https://tuosito.it/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Se preferisci utilizzare WP-CLI per evitare overhead HTTP, leggi il nostro tutorial completo su configurare un crontab reale su Linux per WordPress via CLI ed evitare processi concorrenti.

Configurazione tramite cPanel o Plesk

Se non disponi di accesso SSH, puoi usare il pannello di controllo dell’hosting. Entrambi i pannelli offrono una sezione dedicata ai processi pianificati.

  1. Accedi a cPanel o Plesk.
  2. Cerca l’icona Operazioni Cron o Cron Jobs.
  3. Imposta l’intervallo temporale su 15 minuti.
  4. Nel campo di comando incolla: curl -s https://tuosito.it/wp-cron.php > /dev/null 2>&1.
  5. Conferma premendo su Aggiungi nuova operazione cron.

Ispezionare ed Eliminare i Task Corrotti nel Database

A volte il cron non parte perché la tabella delle opzioni contiene hook danneggiati. I plugin disinstallati spesso lasciano residui pesanti nel database.

Utilizzare il plugin WP Crontrol

Il plugin gratuito WP Crontrol permette di visualizzare tutti gli eventi schedulati. Installalo dalla sezione Plugin del pannello WordPress.

Naviga in Strumenti e poi su Eventi Cron. Esamina la lista degli eventi registrati. Quelli contrassegnati con avvisi rossi o arancioni indicano azioni interrotte o argomenti mancanti.

Pulizia della tabella wp_options

Tutti gli eventi cron risiedono nella riga cron all’interno della tabella wp_options. Se questa stringa si corrompe, nessun processo viene completato. Puoi ripulire i record orfani manualmente o via terminale.

Abbiamo preparato una guida dettagliata su come analizzare ed eliminare i task programmati corrotti nella tabella wp_options con WP-CLI e WP Crontrol.

Domande Frequenti (FAQ)

Perché continuo a riscontrare la pubblicazione programmata fallita anche con molto traffico?

I plugin di caching aggressivo salvano pagine statiche in HTML. In queste condizioni, le visite degli utenti anonimi non attivano PHP. Di conseguenza, il file wp-cron.php non riceve mai l’impulso per avviarsi. La soluzione ideale rimane impostare un cron reale a livello server.

Ogni quanti minuti conviene eseguire il cron di sistema?

Per la maggior parte dei blog un intervallo di 10 o 15 minuti è perfetto. Per siti e-commerce con scorte dinamiche puoi scendere a 5 minuti. Evita intervalli inferiori al minuto per non sovraccaricare la memoria del server.

Posso usare un servizio esterno di webcron?

Sì, se il tuo hosting non offre accesso a Crontab o cPanel. Piattaforme come EasyCron o Cronless inviano una richiesta HTTP a intervalli prestabiliti. È sufficiente fornire l’URL del tuo wp-cron.php e configurare la frequenza desiderata.

Articoli simili