Incorrere in errori sul vostro sito può essere sconcertante. Tuttavia, la maggior parte degli errori vi offre qualche indizio sulla causa che li ha generati, il che può rendere molto più facile la risoluzione dei problemi. Sfortunatamente, l’errore 503 non è chiaro e non vi dà molte informazioni per proseguire.

Capire quali sono le cause più comuni dell’errore 503 può essere di aiuto. Dopodiché, dovete essere metodici per risolvere l’errore, il che significa che dovete seguire vari passaggi per individuare la causa principale.

In questo articolo, vedremo cos’è l’errore 503 e in che modo si manifesta normalmente. Quindi vi mostreremo siete passaggi per eliminarlo. Mettiamoci al lavoro!

Guardate la Nostra Video-Guida per Risolvere i Diversi Tipi di Errori 500

Cos’È un Errore HTTP 503?

L’Internet Engineering Task Force (IETF) definisce il 503 Service Unavailable come:

Il codice di stato 503 (Service Unavailable) indica che il server non è al momento in grado di gestire la richiesta a causa di un sovraccarico temporaneo o di una manutenzione programmata, che sarà probabilmente alleviato dopo un certo ritardo. Il server PUÒ inviare un campo header Retry-After per suggerire al client una quantità di tempo appropriata da attendere prima di riprovare la richiesta.

Quando vi imbattete nell’errore 503, significa che il server in questione non è disponibile. Potrebbe essere perché è occupato, ad esempio, o è in manutenzione. A differenza di altri codici di errore simili, 503 significa che il vostro sito web è online e in esecuzione, ma al momento non può essere raggiunto.

Ciò che è così irritante di questo particolare errore è che vi dà a malapena qualche informazione per proseguire. La maggior parte delle volte appare semplicemente con un messaggio “Servizio temporaneamente non disponibile“. È l’equivalente di chiamare un ristorante via telefono solo per farvi dire che sono chiusi, ma si rifiutano di dirvi quando saranno di nuovo aperti.

Se siete fortunati, il codice di errore 503 si sarà verificato perché il vostro sito è in manutenzione. WordPress imposta brevemente il vostro sito in modalità di manutenzione quando aggiornate un plugin, un tema o il software del core:

Modalità manutenzione
Modalità manutenzione

Di solito, questa interruzione è così breve che nessuno la noterà. Tuttavia, nei casi in cui l’errore 503 persiste, dovrete affrontare un problema maggiore. Dopo tutto, non solo gli utenti non saranno in grado di visitare il vostro sito, ma non avrete nemmeno accesso all’area di amministrazione di WordPress. Ciò significa che non potete aggiornare il vostro sito in alcun modo e, per risolvere il problema, dovrete andare a scavare nei file.

Codice di errore 503 service unavailable error
Tipo di errore Errore lato server
Variazioni dell’errore 503 Service Unavailable
503 Service Temporarily Unavailable
HTTP Server Error 503
HTTP Error 503
Cause dell’errore Picchi di traffico inaspettati
Problemi di comunicazione del server
Esaurimento delle risorse
Attacco DDoS
Incompatibilità di plugin o temi

Varianti dell’Errore 503

L’errore 503 può apparire in molti modi. Tuttavia, quasi ogni variante viene accompagnata da quel codice 503 che permette di identificarlo facilmente.

Ecco alcune delle varianti in cui potreste imbattervi, a seconda della configurazione del vostro server e del browser:

  • 503 Service Unavailable
  • 503 Service Temporarily Unavailable
  • HTTP Server Error 503
  • HTTP Error 503
  • Error 503 Service Unavailable
  • The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Qualunque sia il codice in cui vi imbattete, dovrete lavorare velocemente prima che l’errore incida negativamente sui vostri utenti.

Cosa Causa un Errore HTTP 503?

Questi sono i motivi più comuni per cui un server non è temporaneamente in grado di gestire una richiesta:

  • Un numero elevato di richieste viene inviato al server, esaurendo tutte le risorse disponibili.
  • Il server ha problemi tecnici o di manutenzione.
  • Il server potrebbe essere sottoposto a un attacco DDoS (Denial of Service).

Ci sono anche altri problemi tecnici che causano l’errore 503, come per esempio problemi con i plugin o il tema. Maggiori informazioni di seguito.

Come Risolvere l’Errore 503 in WordPress?

Dal momento che spesso non potete essere sicuri di cosa abbia causato l’errore 503 in una determinata situazione, dovrete risolvere il problema in modo metodico. Le sei sezioni che seguono descrivono ciascuna una potenziale correzione, finalizzata a risolvere alla radice le diverse potenziali cause dell’errore.

Dopo ogni passaggio, prendetevi un momento per tornare al vostro sito web e vedere se l’errore 503 è scomparso. Se lo è, avete risolto il problema con successo. In caso contrario, passate alla fase successiva.

1. Disattivare Temporaneamente i Plugin

Una delle cause più comuni dell’errore 503 in WordPress sono i problemi di compatibilità dei plugin. Per determinare se è questo il problema, dovrete disattivare tutti i plugin del vostro sito.

Dato che l’errore 503 vi impedisce di accedere all’area di amministrazione, per questo passaggio dovrete utilizzare un client FTP. Se non avete già installato uno, vi consigliamo FileZilla.

Una volta che il vostro client FTP è pronto, collegatelo al vostro sito web e andate alla cartella principale. Nel caso in cui non riuscite a trovarla, di solito è chiamata public_html, html, public, www o con il nome del vostro sito. Se siete un cliente di Kinsta, è la vostra cartella public.

Root folder SFTP di WordPress
Root folder SFTP di WordPress

Aprite la cartella e andate alla directory wp-content. All’interno, vedrete una cartella chiamata plugins, che contiene le singole sottodirectory di ognuno dei plugin installati sul vostro sito (sia attivi che inattivi).

Ora dovrete fare clic con il pulsante destro del mouse sulla cartella dei plugin e rinominarla in qualcos’altro. Vi suggeriamo plugins.old o plugins.deactivated, così potete facilmente riconoscerla in seguito.

La cartella dei plugin di WordPress rinominata
La cartella dei plugin di WordPress rinominata

WordPress non sarà in grado di trovare nessuno dei vostri plugin. In questa situazione, disattiverà automaticamente quei plugin.

Ora provate ad accedere alla vostra dashboard. Se l’errore 503 è scomparso, allora potete presumere che la causa fosse uno dei vostri plugin. Tutto quello che dovete fare è capire qual è il colpevole.

Tornate alla directory wp-content e rinominate correttamente la cartella dei plugin originali. Quindi, dovrete disabilitare ognuno dei vostri plugin uno per uno, fino a trovare quello giusto.

Per farlo, aprite la directory wp-content/plugins. All’interno, troverete una cartella per ciascuno dei vostri plugin. La procedura che seguirete è praticamente la stessa di prima:

  1. Iniziate con la prima cartella e rinominatela in qualsiasi cosa vogliate.
  2. Controllate il vostro sito web per vedere se l’errore è risolto.
  3. In caso contrario, riportate la cartella del plugin del passaggio precedente al suo nome originale.
  4. Passate al plugin successivo, ripetendo i passaggi precedenti.

Questa procedura può richiedere un po’ di tempo se si hanno molti plugin, ma è fondamentale verificare ogni plugin uno alla volta. Se, a un certo punto, identificate il plugin che genera l’errore, potete disinstallarlo o sostituirlo con un altro strumento.

Se arrivate alla fine di questi passaggi senza trovare una soluzione, potete passare alla fase successiva.

2. Disattivare il Tema del Sito Web

Ora che avete escluso i vostri plugin come possibili cause dell’errore 503, è il momento di fare lo stesso con il vostro tema attivo. Infatti, anche il tema potrebbe creare problemi di compatibilità.

Sfortunatamente, la procedura non è la stessa vista sopra. WordPress non ripristinerà il tema predefinito se si rinomina semplicemente la cartella del tema. Finireste con un errore come “Il tema ‘nome del tema’ non esiste.” Oppure, se si tenta di rinominare l’intera directory del tema, si finirà con “ERRORE: la directory del tema è vuota o inesistente. Per favore controlla la tua installazione”.

L'errore della cartella del tema che non esiste
L’errore della cartella del tema che non esiste

Pertanto, dovrete accedere al vostro database di WordPress via phpMyAdmin. Se siete clienti di Kinsta, potete trovarlo nella sezione “Info” del cruscotto MyKinsta.

Aprire phpMyAdmin in MyKinsta.
Aprire phpMyAdmin in MyKinsta.

Una volta entrati in phpMyAdmin, fare clic sulla tabella “wp_options”, quindi fare clic sulla scheda “Search”. Dovrete cercare template sotto “option_name”.

Tabella wp_options in phpMyAdmin
Tabella wp_options in phpMyAdmin

Nella colonna “option_value”, vedrete il nome attuale del vostro tema. Sostituite questo valore con uno dei temi predefiniti, ad esempio “twentynineteen”.

Il nome del tema in wp_options
Il nome del tema in wp_options

Controllate di nuovo il vostro sito web per vedere se questa operazione ha corretto l’errore. In caso affermativo, vuol dire che si trattava di un problema del tema del sito web e potreste provare a reinstallarlo o a ripristinare il backup più recente.

3. Disattivare Temporaneamente il Content Delivery Network (CDN)

A volte, l’errore 503 viene visualizzato non a causa di un problema del vostro sito Web, ma a causa del vostro Content Delivery Network (CDN). Se utilizzate CDN, un modo rapido per capire se è questo a generare il problema è disabilitarlo temporaneamente.

Ogni CDN dovrebbe includere alcune funzionalità che consentono di sospendere i suoi servizi. Se siete su Kinsta, potete disabilitare il vostro Kinsta CDN navigando su CDN → “Disabilita CDN” nel cruscotto MyKinsta:

Opzione di abilitazione/disabilitazione del CDN in MyKinsta
Opzione di abilitazione/disabilitazione del CDN in MyKinsta

La procedura che dovete seguire potrebbe essere diversa a seconda del CDN che utilizzate. Cloudflare a volte è noto causare errori 503. Se non riuscite a trovare il modo per metterlo in pausa, cercate nella knowledge base del vostro servizio, che di solito contiene istruzioni dettagliate.

Se non utilizzate un CDN, o scoprite che la sospensione del servizio non vi è di aiuto, ci sono ancora altre soluzioni da provare. Ricordatevi di riattivare il CDN prima di proseguire.

4. Limitare l’API ‘Heartbeat’ di WordPress

La WordPress Heartbeat è un’API nativa di WordPress che viene utilizzata per salvare automaticamente i contenuti, che vi mostra le notifiche dei plugin, vi permette di sapere quando qualcun altro sta lavorando a un post a cui stai tentando di accedere, e altro ancora.

Proprio come un normale battito del cuore, l’API lavora in background con un’alta frequenza, in modo da non perdere nulla. Come potete immaginare, questa API consuma risorse del server. Di solito non è un problema, ma in può portare ad un errore 503 se il vostro server non può gestire il carico.

Il modo più rapido per determinare se l’API Heartbeat è al centro dei vostri problemi è disattivarla temporaneamente. Per farlo, collegatevi ancora una volta al vostro sito WordPress via FTP, quindi aprite la cartella del tema corrente e cercate al suo interno il file functions.php:

Il file functions.php del tema di WordPress
Il file functions.php del tema di WordPress

Fate clic con il pulsante destro del mouse sul file e selezionate l’opzione Visualizza/Modifica, che verrà aperta utilizzando l’editor di testo locale. Una volta aperto il file, dovrete aggiungere al suo interno il frammento di codice che segue:

add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
}

Queste tre righe di codice dicono a WordPress di disabilitare l’API Heartbeat. Salvate le modifiche al file functions.php, chiudetelo e provate ad accedere nuovamente al vostro sito web.

Se l’errore 503 è scomparso, saprete che l’API era il vostro problema. Tuttavia, disabilitarla del tutto elimina completamente molte funzionalità utili. Invece di disattivarla, vi consigliamo di ‘rallentare’ l’Heartbeat, in modo che non causi problemi.

Il modo più semplice per farlo è installare il plugin Heartbeat Control. Attivate il plugin e andate alla sezione Settings > Heartbeat Control. Cercate le opzioni Modify Heartbeat e abbassate la frequenza al valore più basso possibile:

La frequenza del plugin Heartbeat Control
La frequenza del plugin Heartbeat Control

Salvate le modifiche alle vostre impostazioni e tornate al file functions.php che hai modificato poco fa. Affinché le suddette modifiche funzionino, dovrete rimuovere la stringa di codice che avete aggiunto prima e salvare le modifiche nel file.

In questa fase, se il problema era generato dall’API Heartbeat, l’errore 503 dovrebbe scomparire. Se non scompare, allora è il momento di provare qualcosa di diverso.

5. Aumentare le Risorse del Server

Se l’errore 503 si verifica ancora nonostante tutti i tentativi fatti fino a questo momento, è probabile che il problema sia dovuto alla mancanza di risorse del server. Vale a dire, avrete bisogno di aggiornare il piano di hosting per vedere se questo risolve il problema. Questo è varo in particolar modo se avete un hosting WordPress economico, poiché questi host tendono a limitare le risorse.

Noi di Kinsta non ci occupiamo di questo aspetto. Offriamo un ottimo Hosting WordPress gestito (oltre a Hosting di applicazioni e Hosting di database).

Aggiornare il piano è comunque una decisione importante. La mossa intelligente è quella di contattare prima il servizio di supporto dell’hosting e discutere con loro dell’errore 503 e dei passi che avete seguito finora per cercare di risolverlo. Il team di supporto dovrebbe essere in grado di aiutarvi a capire la causa e consigliarvi, se è necessario, di aggiornare il piano.

6. Controllare i Log e Attivare WP_DEBUG

Dovreste anche approfittare del vostro registro degli errori. Se siete clienti Kinsta, potete facilmente vedere gli errori nel registro e attivare la modalità di debug di WordPress nel cruscotto di MyKinsta. Questo può aiutarvi a restringere rapidamente il campo, soprattutto se il problema è causato da un plugin del vostro sito.

Visualizzare il file error.log nel cruscotto di MyKinsta.
Visualizzare il file error.log nel cruscotto di MyKinsta.

Se il vostro host non ha uno strumento di log, potete anche aggiungere il seguente codice al vostro file wp-config.php per abilitare la i log:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

I log si trovano in genere nella directory /wp-content. Al suo interno, cercate un file chiamato debug.log e apritelo.

Altri host, come Kinsta, potrebbero avere una cartella dedicata chiamata “logs”.

La cartella dei log degli errori di WordPress (SFTP)
La cartella dei log degli errori di WordPress (SFTP)

Interpretare il registro di debug può essere un po’ scoraggiante, ma non è così difficile come si potrebbe immaginare. In poche parole, il registro contiene ogni errore che si compare sul vostro sito in ordine cronologico. Mostra quale file ha causato ognuno degli errori, nonché quali linee specifiche di codice sono interessate.

Attenzione: nel vostro log non troverete riferimenti diretti all’errore 503. Ma anche così, se tutto il resto fallisce, può comunque indirizzarvi nella giusta direzione, mostrandovi quali file stanno causando problemi. In questo modo, saprete dove concentrare i vostri sforzi in seguito. Come accennato nel passaggio precedente, se hai bisogno di ulteriore assistenza per risolvere questo errore, ora è il momento giusto per entrare in contatto con il vostro provider di hosting.

È inoltre possibile controllare i file di registro in Apache ed Nginx, che normalmente si trovano qui:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log

Per maggiori informazioni, consultate la nostra analisi dei server web: Nginx a confronto con Apache.

Se siete clienti di Kinsta, potete anche sfruttare il nostro tool di analisi per avere una suddivisione del numero totale di errori 503 e vedere con quale frequenza e quali occasioni si verificano. Questo può aiutarvi nella ricerca delle cause dei problemi, sia se sono ancora in corso, sia se si tratta di qualcosa che si è risolto da solo.

Se l’errore 503 viene visualizzato a causa di un Fatal error di PHP, potete anche provare a abilitare il reporting degli errori PHP. Basta aggiungere il seguente codice al file che genera l’errore. In genere, potete restringere il campo dei file nella scheda della console di Google Chrome DevTools.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

E potrebbe essere necessario modificare anche il file php.ini con quanto segue:

display_errors = on

Riepilogo

Se siete fortunati, l’errore 503 verrà visualizzato solo quando mettete il vostro sito web in modalità di manutenzione. Tuttavia, se appare senza preavviso, dovrete rimboccarvi le maniche e cercare problemi.

Per individuare la causa principale dell’errore 503, per risolverlo dovrete seguire questi passaggi:

  • Disattivare Temporaneamente i Plugin di WordPress
  • Disattivare il Tema WordPress
  • Disattivare Temporaneamente il CDN
  • Limitare l’API ‘Heartbeat’ di WordPress
  • Aumentare le Risorse del Server
  • Controllare i Log e Attivare WP_DEBUG

Vi siete mai imbattuti nell’errore HTTP 503? Condividete le vostre esperienze con noi nella sezione dei commenti qui sotto!

Matteo Duò Kinsta

Redattore Capo presso Kinsta e Content Marketing Consultant per sviluppatori di plugin WordPress. Entra in contatto con Matteo su Twitter.