Una precisazione sulla gestione del codice 404 – Pagina non trovata

A seguito del post “Errore 404 – La pagina richiesta non è stata trovata“, è bene fare una precisazione. Utilizzare le “pagine di errore personalizzate” per restituire, in caso di pagina non trovata, una pagina alternativa (perfettamente valida e funzionante e soprattutto significativa per l’utente finale), significa anche alterare il normale corso della vita della pagina.

Internamente, infatti, il server web (qualunque esso sia), dopo essersi accorto che la risorsa richiesta non esiste, genera l’errore, quindi l’handler in carico di gestire questi errori verifica nella sua “tabella” cosa fare.

Se tramite le impostazioni del pannello di controllo si specifica di “mostrare” una nuova pagina, succede che automaticamente il codice di errore passa da 404 (pagina non trovata) a 200 (OK), perchè effettivamente la nuova risorsa richiesta esiste.

Ai fini dell’utente finale, questo poco conta, perchè a quest’ultimo poco interessa del codice di errore restituito. Diverso è per i motori di ricerca che, nel lungo periodo, potrebbero fraintendere una serie di richieste a questa pagina e immagazzinarle come “contenuto duplicato” dando origine a tutta un’altra fitta serie di problemi che non sto qui ad elencare.

La soluzione allora è quella di avvalersi di un linguaggio di scripting (in funzione del server web dove il vostro sito lavora) e agire di conseguenza per ritornare uno status code corretto, il 404 per l’appunto. Questo dirà al motore di ricerca che effettivamente la pagina richiesta non è stata trovata, ma mostrerà al “malcapitato” utente un modo per continuare la sua navigazione.

Ottenere questo risultato senza un linguaggio di scripting direi che è impossibile, e per questo stesso motivo, attenzione a non mettere mai la index page come la pagina d’errore predefinita. Rischiereste entro breve tempo di provocare più danni che benefici.

Per sapere quale codice d’errore ritorna la vostra pagina, potete utilizzare questi tool on-line: HTTP Status Code Checker