Come impostare il codice di stato 404 per una pagina di errore

Un errore 404, chiamato anche ErrorDocument 404, si riferisce per lo più a una pagina che informa l’utente della non esistenza di una determinata risorsa.

Per esempio, se l’utente atterra su una pagina che non esiste più tramite un link, il server dovrebbe mostrare una pagina di errore 404.

Tuttavia, non è il solo compito svolto da una pagina di errore 404. Quando è impostata correttamente, essa informa anche GoogleBot dell’assenza di un documento. Per essere certi che questo avvenga con le corrette modalità, è importante che una pagina di errore faccia apparire il codice di stato 404 corretto.

Come posso fare in modo che una pagina di errore rimandi il codice di stato 404?

I server o i Content Management System (CMS) spesso non vengono impostati correttamente e riportano, alla presenza di una pagina di errore, il codice di stato 200 (OK) o un reindirizzamento 301, che indica all’utente e a GoogleBot di andare su un’altra pagina. In entrambi i casi siamo davanti ad una pagina 404 difettosa, ovvero ad un errore “Soft 404”.

In questo articolo ti mostreremo la corretta configurazione di una pagina di errore 404, differenziando prima di tutto due casi:

  • pagina di errore 404 statica attraverso l’uso del server Apache e del file .htaccess
  • uso del CMS Wordpress e del file 404.php nella theme directory

Configurazione attraverso .htaccess e server Apache

Che il tuo sito sia in .html o in .php, poco importa: potrai creare una pagina 404 inserendo il codice seguente all’interno del file .htaccess.

The relative path to the error document is added to the .htaccess-file

Lo screenshot mostra come dev’essere impostato il percorso relativo alla pagina di errore all’interno del file .htaccess.

Apri o crea il file .htaccess e inserisci il percorso relativo alla pagina d’errore, ma ricorda di creare prima di tutto quest’ultima sotto forma di file (404.html, ad esempio).

ErrorDocument 404 /404.html

Ecco l’intero processo, passo per passo:

  • crea la pagina di errore (404.html o 404.php) nel primo livello del tuo sito (la cartella root)
  • apri il file .htaccess o creane uno se non è presente (sempre nella cartella root)
  • digita “ErrorDocument 404” seguito dal percorso della pagina di errore
  • salva e richiedi una pagina che non esiste, come http://www.tuo-dominio.it/98899351
  • dovresti ora vedere il contenuto della pagina di errore 404.html
  • usa httpstatus.io per controllare se il codice di stato 404 viene rimandato in modo corretto
controllo httpstatus.io

La pagina https://www.sistrix.it/98899351, che non esiste, mostra un codice di stato 404.

Configurare una pagina di errore tramite Ngix

Se utilizzi Ngix, puoi configurare una pagina di errore 404 inserendo il codice seguente all’interno del server block del file di configurazione.

error_page 404/404.html

I passi da seguire sono sostanzialmente gli stessi del caso precedente, e si differenziano solo nel codice del file di configurazione e nel fatto che non è presente un file htaccess.

WordPress CMS – configurazione corretta della pagina di errore

Se usi il CMS WordPress, non sarà difficile impostare il corretto codice di errore 404, sempre che sia supportato dal tema che utilizzi.

Molti temi, design o template di WordPress, infatti, mettono a già disposizione un file 404.php nella relativa cartella del tema. Nel caso non riuscissi a trovare il file, imposta una pagina di errore tramite .htaccess.

Apri il file 404.php nel tema di WordPress che hai attivo e inserisci all’inizio ciò che segue:

Configuring the HTTP status code 404 for a WordPress error page

Sopra: configurazione di un codice di stato 404 per una pagina di errore di WordPress.

La pagina di errore 404.php può essere trovata nella directory del tema (“theme”), in /wp-content/themes/nome-tema-attivo/

<?php
header("HTTP/1.0 404 Not Found");
?>

Ecco l’intero processo, passo per passo:

  • trova e apri la pagina di errore nella cartella del tema di WordPress (solitamente “404.php”)
  • nella prima parte del documento, aggiungi il codice sorgente PHP indicato in precedenza e salva
  • apri una pagina che non esiste, come http://www.tuo-dominio.it/98899351
  • dovresti ora vedere il contenuto della pagina di errore 404.html
  • usa httpstatus.io per controllare se il codice di stato HTTP 404 viene rimandato in modo corretto
controllo httpstatus.io

La pagina https://www.sistrix.it/98899351, che non esiste, mostra un codice di stato HTTP 404.

Perché è importante che una pagina di errore mostri il corretto codice di stato?

Un server dovrebbe sempre mostrare il codice di stato 404 (Not Found) o 410 (Gone) se un URL non esiste. Nel caso in cui ci siano dei link vecchi o rotti all’interno del sito, Google sarà in grado di capire che la pagina di riferimento non esiste (più) proprio grazie al codice stato 404 o 410.

Per questo motivo ci si deve accertare che il codice di stato HTTP 404 sia sempre riportato correttamente. Ti consigliamo, inoltre, di evitare di reindirizzare le pagine inesistenti alla homepage tramite un reindirizzamento 301 perché potrebbero causare dei problemi.

Cos’è un errore Soft 404?

I webmaster che reindirizzano tramite un Redirect 301 dei contenuti inesistenti a delle altre pagine mettono Google di fronte ad un problema. Di seguito un esempio.

Se Google sa che il contenuto della pagina www.dominio.it/guida/come-si-cucina-la-pizza-margherita/ è il risultato migliore per la query “Come si cucina la pizza margherita?”, allora lo mostrerà all’inizio delle pagine dei risultati.

Supponiamo che un webmaster elimini questa pagina, ma desideri comunque posizionarsi per la query “Come si cucina la pizza margherita?”, provando a mostrare a Google una pagina tematicamente simile tramite un reindirizzamento 301. Nel nostro esempio, potrebbe essere la pagina di categoria dell’e-commerce che vende pizze margherite, cioè: www.dominio.it/shop/pizza-margherita.

Lo scopo di Google è quello di riportare all’utente sempre e solo il risultato migliore possibile.

Se però Google non considera il contenuto della nuova pagina abbastanza rilevante per la query di ricerca (come, al contrario, avveniva per la pagina eliminata), essa verrà interpretata automaticamente come un errore Soft 404.

L’aggettivo “soft” descrive semplicemente che una pagina la quale non riporta un codice di stato 404 (pagina non trovata), viene comunque interpretata da Google come tale.

Cosa dice Google?

Anche se la tua pagina 404 personalizzata risulta molto utile e di grande impatto, probabilmente non è opportuno che venga inclusa nei risultati di ricerca di Google. Per evitare che le pagine 404 vengano indicizzate da Google e altri motori di ricerca, assicurati che il tuo server web restituisca un codice di stato HTTP 404 effettivo quando viene richiesta una pagina mancante.

Fonte: Guida di Search Console

La nostra conclusione

Anche le pagine che non esistono (più) devono essere comunicate in modo chiaro a Google con il codice di stato 404.