WordPress include un sistema di pianificazione integrato noto come WP-Cron, responsabile della gestione di attività pianificate come la pubblicazione di post a un’ora specifica, l’invio di e-mail o l’esecuzione di backup automatici.
Sebbene WP-Cron sia comodo e funzioni bene per molti siti web, ha dei limiti. Un problema comune è che a volte non riesce a eseguire le attività pianificate, soprattutto nei siti a basso traffico.
Un’alternativa più affidabile è quella di impostare dei veri e propri cron job gestiti dal server del vostro provider di web hosting. Questi cron job sono indipendenti dalle visite al sito e vengono eseguiti secondo un programma preciso, assicurando che le attività vengano eseguite in modo coerente e puntuale.
Noi di WPBeginner ci affidiamo a cron job impostati direttamente sul nostro server per garantire l’esecuzione puntuale di tutte le attività pianificate, e questo approccio ci ha dato risultati eccellenti. Ciò significa che non dobbiamo preoccuparci di ritardi o di attività mancate, anche durante i periodi di basso traffico o di alta attività del server.
In questo articolo vi mostreremo come disabilitare facilmente wp-cron in WordPress e vi illustreremo due modi per impostare correttamente i cron job.
Perché disabilitare wp-cron?
Il vostro sito web WordPress ha un sistema di pianificazione integrato chiamato wp-cron. Esegue attività sensibili al tempo come la verifica degli aggiornamenti, la pubblicazione di post programmati, la creazione automatica di backup regolari, l’invio di e-mail e altro ancora.
Per saperne di più, consultate la nostra guida su come visualizzare e controllare i cron job di WordPress.
Il problema è che a WordPress viene richiesto di verificare la presenza di lavori programmati solo quando qualcuno visita il vostro sito web. Questo funziona abbastanza bene per la maggior parte dei siti, ma a volte può causare problemi per quelli più piccoli.
Ad esempio, se il sito ha poco traffico, i post programmati potrebbero non essere pubblicati in tempo. Se il vostro sito è molto trafficato, wp-cron verrà controllato frequentemente, il che potrebbe avere un impatto sulle prestazioni del vostro sito.
Ora, se si vuole solo risolvere l’errore dei post programmati mancanti, si può usare il plugin gratuito Missed Scheduled Publisher. Ma se volete risolvere tutti i problemi relativi alle azioni programmate, allora avete bisogno di un vero e proprio cron job.
Un vero cron job viene eseguito dal sistema operativo del server di web hosting, non da WordPress. È possibile impostarlo per controllare le attività pianificate in modo più affidabile. Per impostazione predefinita, WordPress non ha accesso all’impostazione a livello di server, ma potete farlo facilmente seguendo il nostro tutorial.
Detto questo, vediamo come disabilitare facilmente wp-cron e impostare un cron job adeguato. Ecco cosa tratteremo in questo tutorial:
Disabilitare wp-cron in WordPress
Per disabilitare wp-cron, è necessario modificare wp-config.php, un file di configurazione fondamentale di WordPress. Si trova nella cartella principale del sito WordPress ed è necessario utilizzare un client FTP o il file manager del pannello di controllo del web hosting.
Questo file contiene molte informazioni sensibili e le modifiche sbagliate possono distruggere il vostro sito WordPress. Vi consigliamo di fare prima un backup del file, per sicurezza. Potete imparare a farlo seguendo la nostra guida su come modificare wp-config.php in WordPress.
Dovrete incollare il seguente codice nel file wp-config.php subito prima della riga che dice: “Questo è tutto, smettete di modificare! Buon blog”:
define('DISABLE_WP_CRON', true);
Ecco come dovrebbe apparire.
Successivamente, salvare il file e caricarlo sul proprio sito web.
WordPress non attiverà più wp-cron quando qualcuno visita il vostro sito web.
Metodo 1: Impostazione di un corretto Cron Job sull’host WordPress
A questo punto, dovrete impostare un cron job appropriato per eseguire le vostre attività programmate. Il modo in cui farlo varia a seconda degli strumenti forniti dal vostro provider di hosting WordPress.
Il modo più semplice per impostare i cron job è utilizzare cPanel, un popolare pannello di controllo per siti web incluso in molti piani di web hosting, tra cui Bluehost. In questo tutorial utilizzeremo il cPanel di Bluehost.
Nota: alcuni host web non utilizzano cPanel e alcuni potrebbero non consentire la creazione di cron job. In caso di dubbio, è necessario contattare il provider di hosting o consultare la documentazione di supporto. È sempre possibile utilizzare un servizio cron di terze parti (controllare il metodo 2).
Una volta effettuato l’accesso al vostro account di hosting e accedendo alla pagina “Siti web”, passate alla scheda “Avanzate” in alto.
Qui, scorrere fino alla sezione “Cron Jobs” e fare clic sul pulsante “Manage” accanto. Tenete presente che la posizione di questa sezione può variare a seconda del vostro provider di hosting.
Si accede così a una nuova pagina in cui è possibile creare nuovi cron job.
Non preoccupatevi dell’avvertimento che vedrete sulla necessità di conoscere bene i comandi di Linux. È necessario un solo comando, che vi mostreremo esattamente di seguito.
Se necessario, è possibile modificare l’indirizzo e-mail a cui verranno inviate le notifiche dei lavori di cron. L’indirizzo predefinito è quello utilizzato al momento della registrazione per l’hosting web e va bene per la maggior parte dei siti web.
Ora, scorriamo verso il basso fino alla sezione “Aggiungi un nuovo cron job” e impostiamo un cron job.
Innanzitutto, è necessario decidere la frequenza di esecuzione del cron job. La frequenza può essere a piacere, ma noi consigliamo intervalli di 30 minuti.
È necessario fare clic sul pulsante “Impostazioni comuni” e selezionare un intervallo di tempo dall’elenco a discesa. Due volte all’ora” è una buona scelta per la maggior parte dei siti, se non si è sicuri.
Ora è possibile inserire il comando che chiederà a WordPress di eseguire le sue attività programmate. Dovete incollare il seguente codice nel campo “Comando”:
wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Assicuratevi di sostituire “example.com” con l’URL del vostro sito web.
Una volta fatto ciò, fate clic sul pulsante “Aggiungi nuovo cron job” e vedrete il nuovo cron job aggiunto all’elenco sottostante.
WordPress ora controlla ed esegue le attività pianificate ogni 30 minuti, anziché quando qualcuno visita il vostro sito web.
Metodo 2: Impostazione di un corretto job di Cron utilizzando un servizio di terze parti
Se il vostro piano di hosting non offre cron job adeguati o sono difficili da impostare, potete utilizzare un servizio cron di terze parti.
Si tratta di servizi dedicati che consentono di impostare cron job utilizzando una semplice interfaccia. Ecco alcuni dei migliori:
- EasyCron ha un piano gratuito che richiede un rinnovo mensile.
- cron-job.org è un servizio gratuito
- Cronitor è gratuito se avete bisogno di un solo cron job
- SetCronJob offre piani a pagamento a partire da 10 dollari all’anno.
Per questo tutorial utilizzeremo EasyCron perché è facile da usare e il piano gratuito è adatto alla maggior parte dei casi di utilizzo dei principianti.
Una volta creato un account gratuito, è possibile creare un nuovo cron job facendo clic sul pulsante “+ Cron Job” a sinistra.
Si aprirà la schermata “Crea lavoro Cron”. Per prima cosa, è necessario incollare il seguente URL nel campo “URL da chiamare”:
https://example.com/wp-cron.php?doing_wp_cron
Assicuratevi di sostituire “example.com” con l’URL del vostro sito.
Successivamente, si dovrà scegliere “Ogni 30 minuti” dal menu a tendina “Quando eseguire”. Al termine, non dimenticate di fare clic sul pulsante “Crea lavoro cron” per memorizzare le impostazioni.
Il nuovo cron job verrà aggiunto all’elenco ed eseguirà wp-cron sul vostro sito web ogni 30 minuti.
Bonus: Programmare automaticamente le pubblicazioni del vostro blog WordPress
Una volta impostati i cron job corretti, tutte le attività programmate sul blog WordPress verranno eseguite senza problemi. È anche possibile programmare automaticamente i post del blog.
Questo vi permetterà di scegliere un articolo da pubblicare in modo casuale nella data di pubblicazione preselezionata. A tal fine, è necessario installare e attivare il plugin PublishPress Planner.
Dopo l’attivazione, visitare la pagina Planner ” Impostazioni e passare alla scheda “Calendario dei contenuti” in alto. Qui, selezionare la casella “Programmato” accanto all’opzione “Stati da visualizzare all’ora di pubblicazione”.
Successivamente, è necessario scegliere un formato orario per la pubblicazione del post e fare clic sul campo accanto all’opzione “Orario di pubblicazione predefinito per gli elementi creati nel calendario”.
Si aprirà un prompt dal quale si potrà scegliere l’orario, l’ora e il minuto specifici per la pubblicazione dei post programmati ogni giorno. Per avere un’idea, potete consultare il nostro tutorial su quando è il momento migliore per pubblicare un blog.
Quindi, fare clic sul pulsante “Salva modifiche” per memorizzare le impostazioni.
Ora si può andare all’editor a blocchi, dove si può selezionare l’opzione “Programmato” dal menu a discesa “Stato della pubblicazione”.
Per ulteriori informazioni, consultate il nostro tutorial su come programmare automaticamente i post del vostro blog WordPress.
Ci auguriamo che questo tutorial vi abbia aiutato a capire come disabilitare wp-cron in WordPress e come impostare i cron job corretti. Potreste anche consultare il nostro tutorial su come aggiungere un utente amministratore in WordPress con FTP e la nostra guida per principianti su come visualizzare e controllare i cron job.
Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.
Beth Alexander
Is there a way to check that the new corn job running from Control Panel is working?
WPBeginner Support
To check a cron job, we would recommend taking a look at our article below!
https://www.wpbeginner.com/plugins/how-to-view-and-control-wordpress-cron-jobs/
Admin
Anita Richards
I am confused.
Woocommerce recommends setting the command as without the “?doing_wp_cron” part.
What is the difference?
WPBeginner Support
Unless we hear otherwise, the ?doing_wp_cron allows for some background processing that without would not be able to do.
Admin
Anita Richards
Ok, that makes some sense. I guess that it must be the difference between the WP and Woo processes being run?
I ended up creating two corn jobs in cPanel one with and one without. Is that going to cause problems?
WPBeginner Support
It should be a slightly different method to achieve the same result.
It would depend on your site’s size for how multiple cron jobs would affect your hosting site, as your site becomes larger it may become an issue