Il tuo sito è giù: che fare nei primi quindici minuti
Un sito che non risponde più si risolve raramente nel codice. Il riflesso è aprire l'editor: resisti dieci minuti. La colpa non è quasi mai dove avresti guardato per primo, e quei dieci minuti passati a circoscrivere il problema ti risparmiano un'ora di tentativi. L'ordine che funziona sta in cinque gesti: confermare che il guasto è reale, individuare il livello colpevole, cercare che cosa è cambiato, dire una parola a chi se ne accorgerà, e soltanto dopo riparare.
I quindici minuti, a colpo d'occhio
| Minuto | Che cosa fai | Che cosa elimina |
|---|---|---|
| 0 a 1 | Aprire il sito in rete mobile, Wi-Fi spento | La tua connessione e la cache DNS |
| 1 a 3 | Leggere il messaggio di errore esatto | Tre famiglie di cause su quattro |
| 3 a 6 | Pagina di stato dell'hosting, poi i log | Il guasto che non è tuo |
| 6 a 10 | Cercare l'ultimo cambiamento | Deploy, certificato, scadenza |
| 10 a 12 | Scrivere tre righe ai tuoi utenti | I messaggi che stanno per arrivare |
| 12 a 15 | Riparare, oppure chiamare qualcuno | Il rattoppo sotto pressione |
Questa scansione non ha nulla di militare. Serve a una cosa sola: impedirti di passare tutti e quindici i minuti sulla prima ipotesi che ti è venuta in mente, che è anche quella a cui hai più voglia di credere.
1. Confermare il guasto, dall'esterno
Il tuo browser mente. Mette in cache, conserva vecchie voci DNS, e la rete del tuo ufficio è forse l'unica al mondo interessata.
Bastano tre verifiche, e richiedono meno di un minuto:
- Il sito in rete mobile, Wi-Fi spento. Se la pagina si apre, il problema è la tua connessione, non il sito. È il test più redditizio dell'elenco.
- Una finestra di navigazione privata. Esclude una sessione scaduta, un'estensione, un service worker rimasto dopo un deploy.
- Qualcuno in un'altra città. Un guasto regionale dell'operatore somiglia in tutto e per tutto a un guasto del server, visto dalla tua scrivania.
Se falliscono tutte e tre, il guasto è reale, e lo sai prima di avere aperto un solo file. Se una funziona, ti sei appena risparmiato un'ora a cercare un guasto che non esisteva. Questo passaggio viene saltato di continuo perché sembra troppo semplice, ed è quello che ha evitato il maggior numero di mattinate perse.
2. Individuare il livello colpevole
Il messaggio di errore esatto vale più di qualsiasi intuizione. Annotalo parola per parola, con l'ora, prima di proseguire: tra mezz'ora non te ne ricorderai, ed è l'unica informazione che nessuno potrà ricostruire dopo.
| Che cosa vedi | Livello in causa | Che cosa è probabilmente successo |
|---|---|---|
| Nessuna risposta, tempo scaduto | Rete, DNS o macchina | Server fermo, firewall, zona DNS modificata |
| HTTP 500 o 502 | Applicazione | Errore fatale, database fermo, processo PHP morto |
| HTTP 503 | Capacità o manutenzione | Saturazione, modalità manutenzione rimasta attiva |
| Avviso di certificato | TLS | Rinnovo fallito in silenzio |
| HTTP 404 sulla home | Deploy | Document root o rotta sbagliata |
| Pagina bianca, nessun codice | PHP | Errore fatale senza output, memoria esaurita |
| Molto lento, poi 504 | Database o dipendenza | Query bloccante, servizio terzo muto |
I tre codici della famiglia 500 si distinguono male a occhio nudo e non si riparano affatto allo stesso modo: che cosa significa ciascun codice merita due minuti di lettura prima del primo comando.
3. Cinque comandi che rispondono in trenta secondi
Per questo passaggio un terminale vale più di un browser: non mette nulla in cache e ti restituisce il codice grezzo.
curl -I https://esempio.it # il codice restituito, senza browser
dig +short esempio.it # il dominio punta ancora dove deve
ping -c 3 esempio.it # la macchina è almeno raggiungibile
echo | openssl s_client -connect esempio.it:443 2>/dev/null | openssl x509 -noout -dates
tail -n 100 /var/log/nginx/error.log # oppure storage/logs/laravel.log secondo lo stack
La prima riga basta a separare «non risponde nulla» da «qualcosa risponde male», che sono due guasti senza alcun rapporto. La seconda intercetta il caso che nessuno sospetta abbastanza presto: un record DNS modificato la settimana scorsa e propagato solo adesso. L'ultima è quella che si salta sempre, ed è quasi sempre quella che contiene la risposta.
4. Chiedersi che cosa è cambiato
Quasi ogni guasto segue un cambiamento, e il cambiamento non è sempre il tuo.
- Un deploy stamattina, per quanto minuscolo e «senza rischi».
- Un aggiornamento automatico stanotte: sistema, estensione o dipendenza.
- Un certificato scaduto alle due del mattino.
- Un nome a dominio arrivato a scadenza.
- Un addebito rifiutato presso l'hosting, con l'avviso finito nello spam.
- Una API di terzi che ha cambiato versione senza avvisare nessuno.
Nel raro caso in cui da te non si sia mosso nulla, il cambiamento è avvenuto altrove, e nessun messaggio te lo porterà: il tuo hosting non ti avvisa, e non è cattiva volontà, è il modo in cui sono pensati i suoi avvisi.
5. Dire una parola, prima che te la chiedano
Se il guasto supera i dieci minuti, tre righe sul canale che i tuoi clienti leggono davvero valgono più di una spiegazione perfetta pubblicata tre giorni dopo.
Il sito non è raggiungibile dalle 14:20. Abbiamo individuato la causa e ci stiamo lavorando. Prossimo aggiornamento alle 15, nello stesso posto.
Quel messaggio dice tre cose e non una di più: da quando, a che punto sei, quando ne riparlerai. Non promettere un orario di ripristino finché la causa è sconosciuta: una promessa mancata costa più del silenzio. Per un cliente sotto contratto, l'incidente finirà comunque nel report del mese; meglio che ci arrivi con le tue parole invece che con le sue.
6. I cinque gesti che peggiorano la situazione
- Riavviare il server prima di avere letto il log. Il riavvio cancella spesso la traccia di ciò che si è rotto. Il guasto torna due ore dopo, e non ne sai di più.
- Toccare il DNS. Una modifica di zona impiega ore a propagarsi, e così aggiungi un guasto al guasto.
- Rilasciare una correzione non testata. Sotto pressione, la probabilità di peggiorare supera ampiamente quella di riparare.
- Svuotare tutte le cache insieme. Perdi l'informazione che ti avrebbe detto quale fosse in causa, e carichi il database nel momento peggiore.
- Annunciare un orario di ripristino. Finché la causa è sconosciuta, ogni scadenza annunciata è una scadenza che verrà mancata.
7. Poi, l'unica domanda che conta
Non perché si è rotto: adesso lo sai. La vera domanda è: quanto ci ho messo a saperlo?
Se la risposta è «me l'ha detto un cliente», il guasto non era l'incidente. L'incidente era essere l'ultimo informato. E il conto non è simbolico: quanto costa davvero un'ora di disservizio si può calcolare, anche per un sito che online non vende nulla.
Questa parte si sistema in pochi minuti: una verifica che gira da sola, una email appena il sito smette di rispondere, un'altra al ritorno alla normalità. Restano due regolazioni che contano quanto lo strumento, ogni quanto controllare e che cosa trasforma una verifica in un avviso, senza le quali avrai soltanto sostituito il silenzio con il rumore. E se sei ancora indeciso tra uno script fatto in casa e un servizio esterno, il confronto onesto è in monitoraggio interno o servizio esterno.
Quando non è un guasto
Un caso merita un riflesso tutto suo, perché somiglia a un guasto senza esserlo: un certificato scaduto. Il server risponde perfettamente, è il browser che si rifiuta di mostrare la pagina. Nulla nei tuoi log applicativi lo segnalerà, riavviare qualsiasi cosa non cambierà niente, e l'unico indizio è quell'avviso rosso che i tuoi visitatori vedono prima di te.
Domande frequenti
Come capisco se il sito è giù per tutti o solo per me?
Aprilo in rete mobile con il Wi-Fi spento, o chiedi a qualcuno in un'altra città. Una cache DNS locale o una rete aziendale possono far sembrare morto un sito in perfetta salute, e nascondere altrettanto bene un guasto vero.
Un errore 500 è meglio o peggio di un sito che non risponde affatto?
Un 500 di solito significa che il server è attivo e l'applicazione è andata in crash: la colpa è nel codice, nel database o in un disco pieno. Nessuna risposta indica un livello più basso: rete, DNS, hosting. La distinzione restringe parecchio il campo.
Bisogna avvisare i clienti per un guasto breve?
Se è durato qualche minuto e nessuno ha scritto, di solito no. Se qualcuno se n'è accorto, dillo semplicemente: che cosa è successo, quando è stato risolto, che cosa evita che si ripeta. Una nota onesta costa molto meno dell'impressione che tu non te ne sia accorto.
Non perdere mai più un backlink
Aggiungi i tuoi siti e i tuoi link: Expansel li sorveglia per te.
Inizia gratis