Pagina non trovata? Non con i reindirizzamenti htaccess! I reindirizzamenti portano gli utenti e i bot da un vecchio a un nuovo indirizzo di un sito. In questo articolo ti spieghiamo come funzionano, perché sono così importanti e come puoi evitare gli errori più comuni.
Nuovo server, nuovo host, nuova struttura del sito: sono tante le ragioni per cui si migra un sito. Questa migrazione deve essere però ben ponderata e pianificata, altrimenti i bot di Google e gli utenti non solo si ritroveranno ad un vecchio indirizzo, ma vedranno pure una pagina di errore 404.
Il modo più semplice per collegare il vecchio URL al nuovo è di creare dei reindirizzamenti permanenti usando il codice di stato HTTP 301.
Questo tipo d’implementazione può essere fatta tramite i reindirizzamenti nel file .htaccess per i server web Apache. A tal fine, è necessario attivare il modulo mod_rewrite.
I reindirizzamenti non solo garantiscono che i tuoi contenuti vengano trovati e visitati, ma assicurano anche che rimangano visibili nelle SERP.
Nozioni di base: come funziona un reindirizzamento 301?
Ogni sito nel World Wide Web si trova in una posizione specifica. Tale posizione viene cercata da un client (ad esempio un browser) tramite protocolli di comunicazione e trasmissione, e fornita da un server. Tutte le informazioni necessarie sono mostrate nell’URL.
Poiché questo indirizzo comunica non solo la posizione ma anche il tipo di accesso al sito, esistono regole per l’accesso che si applicano a tutte le directory del dominio. Per i server web Apache, queste sono memorizzate nel file di testo .htaccess.
A ogni accesso al server, le directory vengono analizzate sulla base di queste regole. Se tutto risulta al posto giusto, il server segnala il successo al client (codice di stato HTTP 200) e invia i dati desiderati (cioè il contenuto del sito) al client.
Se, ad esempio, un sito viene spostato da una sottodirectory a un’altra categoria senza che questa modifica sia stata correttamente inserita e “segnalata”, si verifica un problema: la richiesta del client viene fatta al vecchio URL che però non esiste più. Il server invia quindi il codice di stato 404 (Not Found) quindi, nella migliore delle ipotesi, l’utente vedrà una pagina 404 ben fatta, ma inutile al suo scopo.
Per evitare questo problema è necessario impostare un reindirizzamento (permanente) dal vecchio al nuovo URL. Tramite i rendirizzamenti htaccess, il server riceve un percorso dal vecchio al nuovo indirizzo che può comunicare e inoltrare al client. Questi reindirizzamenti vengono visualizzati come codice di stato 301 (Moved Permanently).
Esistono anche reindirizzamenti temporanei (codice di stato 302), ma non sono una buona idea in questo contesto in quanto segnalano solo una deviazione temporanea. Al contrario, il caso precedente implica che il nuovo URL divenga la base permanente per l’indicizzazione.
Che cos’è il reindirizzamento htaccess?
I server Linux Apache sono configurati tramite il file .htaccess. Essendo il tipo di server più diffuso, funge da modello per impostare il reindirizzamento 301 tramite i Redirect htaccess.
Il file di testo .htaccess regola anche il contenuto della directory, ovvero le indicazioni per singoli URL e pagine. Questo file si trova nella directory principale (root): per accedervi, è necessario un programma FTP e un editor di testo standard.
Tramite il codice sorgente del reindirizzamento, si comunica a questo file centrale quale URL originale si vuole reindirizzare al nuovo URL. Tramite queste informazioni, la scansione della directory si risolve in modo efficiente e l’utente viene condotto al contenuto desiderato.
Come si creano i reindirizzamenti in htaccess?
Nel file .htaccess è possibile utilizzare il modulo mod_rewrite (attivato) per definire reindirizzamenti e regole di directory molto complessi. La scelta di questa strada dipende dall’effettiva complessità dei reindirizzamenti e dal proprio livello di conoscenza.
Il codice sorgente di base per i reindirizzamenti htaccess in mod_rewrite è:
RewriteEngine On RewriteRule ˆvz/documento.html
https://www.dominio.it/documento.html [R=301]
- RewriteEngine On “attiva” il modulo di riscrittura.
- RewriteRule avvia le regole di inoltro.
- È seguito da uno SPAZIO.
- Il vecchio URL viene specificato con la posizione della directory originale.
- Segue uno SPAZIO.
- Il nuovo URL viene specificato per intero.
- Infine, è necessario definire il codice di stato HTTP per i reindirizzamenti permanenti (301). Se lo si dimentica, Apache torna all’impostazione predefinita 302 (reindirizzamento temporaneo).
Invece dei reindirizzamenti .htcaccess tramite il modulo mod_rewrite, puoi anche impostare delle direttive di reindirizzamento in mod_alias. Questo ha il vantaggio di non dover scavare nelle viscere del sito se le tue conoscenze sono limitate.
D’altra parte, il mod_alias di Apache è utile solo per i reindirizzamenti semplici, ad esempio se si vuole spostare la directory di un sito ad un livello più alto. Per questo si usa la sintassi generale:
Reindirizzamento [URL-percorso] URL
Esistono molti altri modi per impostare i reindirizzamenti 301 nella forma più conveniente per te. Ne troverai una panoramica con i modelli di codice sorgente nell’articolo “Come si crea un reindirizzamento 301?“.
Come posso evitare errori con i reindirizzamenti htaccess?
Se decidi di apportare delle modifiche a una directory principale o a un file centrale come .htcaccess, ti consigliamo di eseguire prima di tutto una copia di backup del file interessato.
Anche il più piccolo errore di sintassi (come dei semplici spazi mancanti) può infatti comportare problemi imprevisti del server (codice di stato HTTP 500). È inoltre considerato un errore (soprattutto dal punto di vista SEO) creare reindirizzamenti di reindirizzamenti, generando le cosiddette catene di Redirect.
Un passaggio intermedio tramite un URL va bene (anche per Google), tutto ciò che va oltre rende però il sistema altamente instabile e comporta il rischio che il reindirizzamento non funzioni più.
Prima ancora di passare ai Redirect htaccess, è importante identificare tutti gli URL che devono effettivamente essere reindirizzati.
Tool come Google Search Console o SISTRIX possono aiutarti in questo compito, mostrandoti quali pagine stanno riportando un errore 404 perché sono state spostate o modificate.
Che conseguenze hanno i reindirizzamenti htaccess sulla visibilità online e sulla SEO?
Per ragioni comprensibili, Google vuole che gli utenti trovino quello che cercano quando cliccano i risultati nelle SERP. Se tali click finiscono in un vicolo cieco (cioè conducono ad una pagina 404), Google riterrà il tuo sito meno rilevante.
I crawler reagiscono in modo analogo, “frustrati”, quando incontrano un “pagina non trovata” durante una nuova indicizzazione. In questo caso la pagina, che potrebbe contenere contenuti rilevanti per posizionarsi, viene eliminata dall’Indice e perde i ranking che già possedeva.
Gli errori 404 o i link rotti sono un altro problema per gli utenti: se i link interni del tuo sito non funzionano più, gli utenti lo abbandoneranno per cercare altri contenuti.
Backlink rotti, inoltre, rovinano la reputazione e l’immagine del sito: chi vorrebbe aver a che fare con un dominio che mostra solo pagine 404?
Nell’ambito dell’ottimizzazione OnPage, i reindirizzamenti permettono di prendere molti piccioni con una fava perché non sono solo un mezzo tecnico per raggiungere un fine, bensì permettono anche di mettere in discussione la struttura delle directory e, ad esempio, di riordinare menù di navigazione poco chiari.
Ecco perché la ristrutturazione è di solito parte integrante di una migrazione, che a sua volta non dovrebbe mai essere affrontata senza reindirizzamenti. Lo sforzo è grande all’inizio, ma ripaga enormemente nel lungo periodo.
Conclusione
I reindirizzamenti htaccess o 301 sono il modo più semplice per garantire il posizionamento e la corretta visualizzazione del sito in caso avessi in mente di modificare l’intera struttura o di spostare singole pagine.
È importante conoscere le regole, stabilire i reindirizzamenti corretti e non generare codici di errore.