WordPress pianifica i lavori, ma nulla lo sveglia. Controlla se qualcosa è in scadenza soltanto quando qualcuno carica una pagina: la pianificazione è dunque in realtà «al prossimo visitatore», ed è sbagliata in entrambe le direzioni.
- Un sito tranquillo: di notte nessun visitatore, quindi i backup e la pubblicazione previsti per le tre semplicemente non avvengono.
- Un sito affollato: il controllo gira a ogni richiesta e aggiunge lavoro a pagine che dovrebbero essere veloci.
Spenga quello finto
// wp-config.php
define('DISABLE_WP_CRON', true);
E lo chiami da uno vero
*/5 * * * * /usr/bin/php8.3 /var/www/site/wp-cron.php >/dev/null 2>&1
Eseguire il file direttamente è meglio che richiamare l'URL: nessun andirivieni HTTP, nessun tempo scaduto del server web, e funziona anche quando il sito sta dietro una password.
Non disabiliti WP_CRON senza aggiungere il lavoro vero. Gli articoli programmati smettono di uscire, i backup smettono di girare, e nulla lo annuncia: il sito semplicemente ammutolisce.
Guardi che cosa è pianificato
wp cron event list
Un hook che lei non riconosce, pianificato ogni minuto, di solito è un plugin. Una coda di eventi scaduti significa che il cron non gira affatto.
Cinque minuti è un buon intervallo. Un minuto aggiunge carico senza vantaggio, a meno che qualcosa abbia davvero bisogno di quella finezza, e WordPress ripercorre l'intera pianificazione a ogni chiamata.
