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.