Quando devi aggiornare, riprogettare o riparare un sito WordPress in produzione, i visitatori non dovrebbero vedere una pagina rotta o a metà. Una schermata di manutenzione può nascondere il sito pubblico per poco tempo. Fai prima un backup e, quando puoi, lavora su una copia di staging così hai una via di ritorno se qualcosa va storto.
Importante: il core di WordPress non fornisce una costante
WP_MAINTENANCE_MODEinwp-config.php. Aggiungeredefine( 'WP_MAINTENANCE_MODE', true );non fa nulla da solo e non mostrerà una pagina di manutenzione. Se hai aggiunto quella riga seguendo un consiglio precedente, puoi rimuoverla senza problemi.
Come mettere un sito WordPress in modalità manutenzione
WordPress ha davvero una modalità manutenzione automatica durante gli aggiornamenti, ma è solo temporanea. Per un lavoro pianificato che dura più di pochi minuti, usa un plugin mantenuto da WordPress.org oppure, se non puoi usare un plugin, un breve frammento rimovibile in un tema child.
1. Consigliato: usare un plugin di modalità manutenzione
L’approccio più semplice per i principianti è un plugin dalla directory ufficiale dei plugin di WordPress. Due opzioni consolidate sono Maintenance di WebFactory e LightStart di Themeisle (questo plugin si chiamava WP Maintenance Mode). Controlla la scheda aggiornata prima di installare e segui la schermata delle impostazioni del plugin: i nomi dei pulsanti possono cambiare tra le versioni.
Passaggi tipici, basati sulle note di installazione di quei plugin su WordPress.org:
- Fai un backup del sito e, se possibile, prova su una copia di staging.
- Resta connesso come amministratore. In wp-admin vai su Plugin → Aggiungi nuovo, cerca il plugin per nome, poi installalo e attivalo.
- Apri la pagina delle impostazioni del plugin. Maintenance aggiunge una voce nel menu principale di amministrazione; LightStart usa una pagina Settings. Personalizza il messaggio pubblico con i controlli forniti dal plugin.
- Attiva la modalità manutenzione solo quando sei pronto. La scheda di LightStart indica che l’attivazione del plugin può mettere subito il sito in modalità manutenzione, mentre gli utenti con diritti sufficienti continuano a vedere il front-end.
- Quando hai finito il lavoro, disattiva la manutenzione nelle impostazioni del plugin, svuota eventuali cache di pagina e apri il sito in una finestra privata o in incognito, da disconnesso, per confermare che le pagine pubbliche sono tornate. Solo allora disattiva il plugin se non ti serve più.
Le FAQ di LightStart avvertono che i plugin di cache possono servire pagine obsolete durante la manutenzione. Se un plugin di cache resta attivo, elimina la sua cache dopo aver attivato o disattivato la modalità manutenzione.
Il plugin Maintenance può inviare una risposta HTTP 503 («Service temporarily unavailable») così i motori di ricerca trattano l’interruzione come temporanea. Tieni breve quella finestra. Un 503 prolungato può comunque influire su come il sito viene analizzato.
2. Cosa fa WordPress da solo durante gli aggiornamenti
Quando WordPress aggiorna il core, un tema o un plugin, crea temporaneamente un file .maintenance nella root di WordPress. Quel file memorizza un timestamp in una variabile $upgrading. Il core considera il sito in modalità manutenzione solo finché quel timestamp ha meno di circa 10 minuti. Dopo circa 10 minuti WordPress considera la manutenzione terminata anche se il file è ancora lì.
Durante quella breve finestra WordPress invia HTTP 503 con un’intestazione Retry-After: 600 e mostra il messaggio “Briefly unavailable for scheduled maintenance. Check back in a minute.” Puoi sostituire quella schermata breve con un file drop-in opzionale chiamato maintenance.php dentro wp-content, ma il file si applica solo mentre la modalità manutenzione del core è davvero attiva.
Non creare da solo un file .maintenance statico come interruttore duraturo di «chiuso per manutenzione». Non è un controllo manuale permanente: dopo circa 10 minuti i visitatori rivedono il sito e un file avanzato dopo un aggiornamento non riuscito può lasciare un messaggio fuorviante finché non lo elimini. Se la schermata di manutenzione resta bloccata dopo un aggiornamento, collegati via FTP o dal file manager dell’host e elimina .maintenance dalla root di WordPress.
WordPress lo documenta in wp_is_maintenance_mode(), wp_maintenance(), nelle note su una schermata di manutenzione bloccata in errori comuni di WordPress e in Updating WordPress.
3. Facoltativo: un frammento temporaneo in un tema child
Se non puoi usare un plugin, aggiungi quanto segue al functions.php di un tema child, non di un tema genitore che gli aggiornamenti sovrascriveranno. L’hook template_redirect viene eseguito solo sul sito pubblico, quindi wp-admin e la schermata di accesso restano disponibili. Gli utenti connessi che possono gestire le opzioni continuano a vedere il sito. Tutti gli altri ricevono HTTP 503 e un’intestazione Retry-After, lo stesso schema usato dal core di WordPress durante gli aggiornamenti. Rimuovi il frammento per ripristinare il sito pubblico.
add_action( 'template_redirect', function () {
if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) {
return;
}
header( 'Retry-After: 3600' );
wp_die(
'This site is temporarily unavailable for scheduled maintenance. Please check back soon.',
'Maintenance',
array( 'response' => 503 )
);
} );Usalo solo come misura breve e temporanea e provalo prima in staging. Dopo aver rimosso il codice, svuota le cache e conferma che il sito pubblico si carica di nuovo da disconnesso. Non lasciare una risposta 503 più a lungo del necessario.
Conclusione
Per nascondere un sito WordPress durante un lavoro pianificato, usa un plugin di manutenzione mantenuto, spegnilo quando hai finito e verifica le pagine pubbliche. Il file .maintenance di WordPress è solo uno scudo automatico e breve durante gli aggiornamenti — circa 10 minuti —, non un interruttore manuale duraturo, e non esiste una riga WP_MAINTENANCE_MODE da aggiungere in wp-config.php. Fai prima un backup, limita i tempi di inattività, poi ripristina e controlla il sito live.
