Come fare un redirect alla Home Page delle pagine in 404

errore-404

Dopo un po’ di tempo, è più che normale che su un sito web si trovino delle pagine in errore 404. Fino a quando queste pagine sono poche, l’ideale è gestire l’errore con un redirect verso una pagina affine. Ma sui grandi siti, queste pagine potrebbero essere numerose e anche difficili da individuare. Come gestirle?

L’errore 404

Innanzi tutto spieghiamo cos’è un errore 404?

Un errore 404 è un codice di stato HTTP che indica che la pagina richiesta non è stata trovata sul server. In altre parole, significa che l’URL richiesto non esiste sul sito web o che la pagina è stata rimossa o spostata.

Quando un utente tenta di accedere a una pagina che restituisce un errore 404, il browser restituisce una pagina che informa di non aver trovato la risorsa richiesta.

I più attenti personalizzano questa pagina inserendo sotto l’avviso, un link che invita a navigare altre aree del sito o un campo di ricerca interna al sito.

schermata 404 personalizzata

schermata 404 personalizzata

 

Come gestire l’errore 404?

La maniera ideale per gestire i 404 su un sito, a mio avviso è fare un redirect alle pagine più idonee, magari perché parlano dello stesso argomento. In questo caso basta fare dei redirect 301 sul file .htaccess come di seguito:

Redirect 301 /pagina-in-404 https://dominio.tld/pagina-da-mostrare

Ma la realtà a volte è diversa dalla teoria e a volte si è costretti a prendere decisioni più drastiche.

Una soluzione è utilizzare un codice 410 per indicare agli utenti e soprattutto ai motori di ricerca, che la pagina non esiste più (utilizzando un plugin come questo).

L’altra è redirezionare tutte le pagine in 404 alla Home Page. Vediamo come.

Codice per redirect delle pagine in 404 alla Home Page

Anche per redirezionare le pagine in 404 alla home page esistono dei semplici plugin. Li troverete facilmente. Ma qui voglio postare la funzione da inserire nel functions.php del tema.

function fw_redirect_404_to_home() {
global $wp_query;
if ( $wp_query->is_404 ) {
wp_redirect( get_bloginfo('wpurl'), 301 );
exit;
}
}
add_action('template_redirect', 'fw_redirect_404_to_home', 1);

Cosa fa questo codice?

Questo codice crea una funzione personalizzata in WordPress che gestisce il reindirizzamento della pagina 404 (non trovata) alla Home del sito.

La funzione “fw_redirect_404_to_home” verifica se la pagina attualmente visualizzata è una pagina in 404 utilizzando la proprietà “is_404” dell’oggetto globale $wp_query.

Se la pagina è in 404, la funzione utilizza la funzione wp_redirect per reindirizzare l’utente alla home page del sito web, passando l’URL della pagina principale come argomento. Il codice “301” indica che il reindirizzamento è permanente.

Infine, la funzione add_action registra la funzione “fw_redirect_404_to_home” come azione da eseguire utilizzando la funzione “template_redirect”.

Da evidenziare

Questa soluzione potrebbe non essere adatta a tutti i casi. Prima di utilizzare questo codice, è consigliabile fare un backup del functions.php in maniera tale da poterlo ripristinare attraverso un client FTP, nel caso in cui non sia più possibile alla bacheca.

Conseguenze negative dei 404 sulla SEO del sito

Le pagine 404 possono influire negativamente sulla SEO di un sito web in diversi modi:

  1. Perdita di link: Le pagine 404 potrebbero essere linkate da altri siti. Andando in 404, si perde il link in ingresso.
  2. Perdita di traffico: Le pagine 404 possono anche far perdere traffico al sito web, poiché gli utenti che incontrano queste pagine potrebbero abbandonare il sito.
  3. Conseguenze sull’indicizzazione: Se i motori di ricerca incontrano molte pagine 404 sul tuo sito, potrebbero ridurre la frequenza di scansione e di conseguenza ridurre la considerazione del sito.

Naturalmente qualche 404 non avrà effetti catastrofici sulla SEO, ma quando iniziano ad essere molti il consiglio è quello di gestirli nella maniera più idonea possibile a seconda dei casi.

Be the first to comment

Leave a comment

Il tuo indirizzo email non sarà pubblicato.


*