A volte capita di dover gestire il downtime programmato di un sito web (per esigenze di manutenzione o altro); i possibili scenari per arginare la situazione potrebbero essere:
- mostrare la pagina corrispondente ad un “Not Found” (HTTP 404). Questa soluzione è sconsigliatissima,perché penalizza il ranking del vostro sito sui motori di ricerca tipo Google. A mio avviso, infatti, Google assume che ci sia qualcosa di non funzionante nel sito e che questi errori non siano gestiti dal webmaster, penalizzando il sito in quanto non correttamente presidiato.
- mostrare una pagina di cortesia, che avvisa l’utente della temporanea indisponibilità del sito, ritornando un “OK” (HTTP 200). Questa soluzione, per quanto sia preferibile alla precedente, non mette in evidenza ai motori di ricerca che la pagina ottenuta è temporanea, proprio perché risponde nello stesso modo della situazione di normale funzionamento del sito.
- la soluzione ottimale viene descritta nell’articolo di Google, How to deal with planned site downtime: rispondere con una pagina web di “Service Unavailable” (HTTP 503), che mette in evidenza la temporaneità della situazione e indica che il normale funzionamento del sito verrà ripristinato a breve. Inoltre, come da specifica HTTP che riporto qui sotto, è possibile specificare nell’header un intervallo entro cui la pagina richiesta potrà tornare a funzionare normalmente:
The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. The implication is that this is a temporary condition which will be alleviated after some delay. If known, the length of the delay MAY be indicated in a Retry-After header. If no Retry-After is given, the client SHOULD handle the response as it would for a 500 response.
Quindi, il mio consiglio è quello di utilizzare il codice HTTP 503 in tutti i casi temporanei di downtime ed errori nelle pagine del sito, indicando (se possibile) la data prevista di sistemazione tramite l’header Retry-After.