Maintenance Mode WordPress: Guida Completa con Plugin, PHP e WP-CLI [2026]

28 marzo 20268 minGuide
In breveAI

Attivare il maintenance mode su WordPress è fondamentale per evitare schermate di errore durante gli aggiornamenti. Impara a farlo in tre modi: con plugin come LightStart, con codice PHP nel functions.php o via WP-CLI, per garantire una pagina di manutenzione personalizzata e sicura per i tuoi siti clienti.

Stai per aggiornare WordPress su un sito cliente. Prima di cliccare “Aggiorna tutto”, hai attivato la pagina di attesa? Se la risposta è no, stai prendendo un rischio che non vale la pena correre: se un aggiornamento va storto, i visitatori vedono una schermata di errore invece di una pagina che comunica semplicemente che il sito è offline per manutenzione.

In questa guida vediamo come attivare il maintenance mode su WordPress in tre modi: con un plugin, con codice PHP nel functions.php, e via WP-CLI per chi gestisce più siti da terminale.

TL;DR

  • WordPress ha una schermata di manutenzione nativa, ma attiva solo pochi secondi durante gli aggiornamenti automatici e non è personalizzabile
  • Il metodo più rapido per i siti clienti: plugin LightStart o Maintenance (by WebFactory)
  • Il metodo più leggero senza dipendenze: tre righe nel functions.php del child theme con header HTTP 503
  • Se WordPress rimane bloccato con il sito offline, eliminare il file .maintenance dalla root via FTP o File Manager
  • Via WP-CLI: wp maintenance-mode activate — ideale per gestione multi-sito

Come funziona la schermata di manutenzione nativa di WordPress

Quando avvii un aggiornamento di WordPress, plugin o tema, il core crea automaticamente un file chiamato .maintenance nella root dell’installazione. Finché questo file esiste, WordPress mostra una pagina di sistema con il messaggio “Manutenzione in corso. Riprovare tra un minuto.” agli utenti non loggati con ruolo admin.

Questo meccanismo è intenzionalmente temporaneo: il file viene rimosso al termine dell’aggiornamento, di norma in pochi secondi. Non è progettato per essere usato quando vuoi mettere il sito offline per lavori che durano minuti o ore.

Per questo, se hai bisogno di una pagina di attesa personalizzata che rimanga attiva finché non la disattivi tu, devi usare un plugin o implementarlo via codice.

Metodo 1: plugin LightStart (ex WP Maintenance Mode)

LightStart, sviluppato da Themeisle e disponibile su WordPress.org, è il plugin più usato per questo scopo. Supporta multisite, include un form di raccolta email e un countdown timer configurabile.

Installazione e configurazione:

  1. Vai in Plugin → Aggiungi nuovo e cerca “LightStart”
  2. Installa e attiva
  3. Vai in Impostazioni → LightStart
  4. Nella tab Generale, imposta lo stato su Attivato
  5. Nella tab Design, personalizza titolo, testo, sfondo e logo
  6. Salva le impostazioni

Verifica obbligatoria: apri una finestra di navigazione in incognito e controlla che la schermata di manutenzione sia visibile. Il plugin bypassa la pagina per gli utenti loggati con ruolo admin, quindi nel browser normale non vedrai mai la pagina di attesa.

Nota su LightStart: alcune recensioni segnalano che il plugin installa automaticamente plugin aggiuntivi (Otter, Optimole) all’attivazione. Controlla le impostazioni di onboarding e rifiuta le installazioni aggiuntive se non ti servono.

Qual è la differenza tra maintenance mode e coming soon page?

È una distinzione importante che molti confondono. Il maintenance mode (modalità manutenzione) si usa quando il sito esiste già ed è temporaneamente offline per aggiornamenti o modifiche. Restituisce un header HTTP 503. La coming soon page si usa per un sito nuovo non ancora pronto al pubblico. Restituisce 200. Google tratta le due situazioni in modo diverso: 503 = temporaneo, 200 = contenuto normale da indicizzare.

Metodo 2: plugin Maintenance (by WebFactory)

In alternativa, il plugin Maintenance di WebFactory è più leggero e gestisce correttamente il codice HTTP 503, che è il comportamento corretto per comunicare a Google che il sito è temporaneamente non disponibile.

La configurazione è minimale: installa, attiva, vai nelle impostazioni del plugin dal menu principale, abilita il 503 e personalizza il messaggio. Niente wizard, niente plugin aggiuntivi installati silenziosamente.

Attenzione all’attivazione immediata: entrambi i plugin attivano il sito offline nel momento in cui vengono attivati. Se stai installando il plugin su un sito in produzione, fallo velocemente e disattiva subito dopo se stai solo testando.

Metodo 3: codice PHP nel functions.php del child theme

Se vuoi evitare un plugin aggiuntivo, puoi implementare la modalità manutenzione con una funzione nel functions.php del tuo child theme. Questo approccio è più leggero e ti dà controllo completo sul comportamento.

/**
 * Modalità manutenzione manuale con header 503
 * Aggiungere al functions.php del child theme
 * Rimuovere o commentare per disattivare
 */
function agencypilot_maintenance_mode() {
    // Bypass per admin e utenti loggati con capacità di gestire le opzioni
    if ( current_user_can( 'manage_options' ) ) {
        return;
    }

    // Escludi WP-CLI e wp-cron
    if ( defined( 'WP_CLI' ) && WP_CLI ) {
        return;
    }
    if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
        return;
    }

    // HTTP 503 — comunica a Google che il sito offline è temporaneo
    wp_die(
        '

Sito in manutenzione

Stiamo lavorando per migliorare il sito. Torneremo presto.

', 'Manutenzione in corso', array( 'response' => 503 ) ); } add_action( 'get_header', 'agencypilot_maintenance_mode' );

Per disattivare la modalità manutenzione, commenta o rimuovi le tre righe con add_action.

Perché il codice HTTP 503 è importante: Google tratta una pagina con status 200 come contenuto permanente. Se il tuo sito restituisce 200 durante la manutenzione, Google indicizza la tua pagina di attesa come contenuto reale. Con la pagina 503 (Service Unavailable), Google capisce che la situazione è temporanea e non rimuove le pagine dall’indice.

Metodo 4: file .maintenance manuale (emergenza rapida)

In situazioni di emergenza — sito rotto, aggiornamento fallito a metà — puoi attivare la schermata di manutenzione nativa di WordPress creando manualmente un file .maintenance nella root del sito.

Accedi via FTP o File Manager dell’hosting, vai nella cartella principale dell’installazione (dove si trova wp-config.php) e crea un file vuoto chiamato .maintenance. WordPress lo rileva e attiva automaticamente la sua pagina di sistema con il sito in manutenzione.

Per disattivare: elimina il file.

Questo metodo non permette personalizzazione della pagina di attesa, ma è utile quando non hai accesso al backend.

Come usare WP-CLI per il maintenance mode su multi-sito

Se gestisci più siti WordPress da server o via SSH, WP-CLI mette a disposizione comandi dedicati per la modalità manutenzione:

# Attiva il sito offline
wp maintenance-mode activate

# Verifica lo stato corrente
wp maintenance-mode status

# Disattiva
wp maintenance-mode deactivate

Per applicarlo su più installazioni in un loop:

for site in sito1.it sito2.it sito3.it; do
    wp maintenance-mode activate --path=/var/www/${site}/public_html
    echo "Modalità manutenzione attivata: ${site}"
done

Questo approccio è utile prima di eseguire aggiornamenti in batch. Se gestisci decine di siti, automatizzare l’attivazione della pagina di attesa prima degli aggiornamenti elimina una procedura manuale ripetitiva.

Perché il sito rimane bloccato in manutenzione dopo un aggiornamento?

Se un aggiornamento si interrompe a metà — per un timeout, un errore PHP o un’interruzione della connessione — il file .maintenance rimane nella root e il sito non torna online automaticamente.

Il sintomo: il sito mostra “Manutenzione in corso. Riprovare tra un minuto.” anche dopo che l’aggiornamento è apparentemente terminato.

Soluzione passo per passo:

  1. Accedi via FTP, File Manager dell’hosting, o SSH
  2. Vai nella root dell’installazione WordPress (dove si trova wp-config.php)
  3. Attiva la visualizzazione dei file nascosti — il file inizia con un punto
  4. Individua il file .maintenance e cancellalo
  5. Ricarica il sito: tornerà immediatamente online

Via SSH in un comando solo:

rm /percorso/al/sito/.maintenance

Come prevenirlo: prima di ogni aggiornamento importante, esegui un backup completo del sito. Se l’aggiornamento va storto, ripristinare il backup è più rapido e sicuro che riparare l’installazione manualmente. Per la gestione dei backup su più siti, è esattamente il tipo di operazione che una dashboard centralizzata come AgencyPilot automatizza.

Quale metodo scegliere

Scenario Metodo consigliato Perché
Sito singolo, schermata personalizzata Plugin LightStart o Maintenance Configurazione rapida, pagina customizzabile, nessuna modifica al codice
Sito con child theme, zero plugin aggiuntivi Codice nel functions.php Controllo totale, nessuna dipendenza esterna
Emergenza, backend non accessibile File .maintenance manuale Funziona anche senza accesso al backend
Gestione multi-sito da server WP-CLI Automatizzabile, scriptabile, veloce su N siti

FAQ

Come attivare il maintenance mode su WordPress correttamente?
Il metodo più corretto tecnicamente è assicurarsi che la pagina di manutenzione restituisca un header HTTP 503. Con il plugin Maintenance di WebFactory, l’opzione è configurabile nelle impostazioni. Con codice PHP, passa 'response' => 503 nell’array di parametri di wp_die(). Verifica sempre il risultato aprendo il sito in una finestra incognita.

Qual è la differenza tra maintenance mode e coming soon page?
Il maintenance mode si usa per un sito esistente temporaneamente offline: restituisce HTTP 503 e Google non rimuove le pagine dall’indice. La coming soon page si usa per un sito nuovo non ancora pronto: restituisce 200 e Google indicizza quella pagina come contenuto normale. Usare la coming soon page su un sito esistente rischia di fare indicizzare la pagina di attesa.

Cosa fa WordPress durante gli aggiornamenti automatici?
Quando WordPress esegue un aggiornamento automatico (core, plugin o tema), crea un file .maintenance nella root dell’installazione. Finché il file esiste, i visitatori non admin vedono la schermata di manutenzione di sistema. Al termine dell’aggiornamento, WordPress elimina il file automaticamente. Se l’aggiornamento fallisce a metà, il file rimane e il sito resta in modalità manutenzione finché non lo elimini manualmente.

Come usare WP-CLI per il maintenance mode su multi-sito?
Il comando è wp maintenance-mode activate eseguito dalla root dell’installazione. Per gestire più siti in sequenza, usa un loop bash con il parametro --path per specificare il percorso di ogni installazione. Per un’installazione WordPress multisite (network), il comando si applica all’intera rete; non è possibile attivare la modalità manutenzione solo su un sottodominio specifico via WP-CLI senza uno script custom.

Perché il sito rimane bloccato in manutenzione dopo un aggiornamento?
Perché il file .maintenance non è stato eliminato al termine dell’aggiornamento, molto probabilmente a causa di un aggiornamento interrotto. La soluzione è accedere via FTP o SSH, navigare nella root dell’installazione e cancellare il file .maintenance. Il sito torna online immediatamente senza bisogno di riavviare niente.



Gestisci i siti WordPress dei tuoi clienti?

AgencyPilot ti dà report AI, uptime monitoring, backup e portale clienti in un’unica dashboard. Gratis per 3 siti.

Prova gratis
Leggi anche
Tutti gli articoli
Tutti gli articoli