Redirect 301: non solo reindirizzamenti, ma anche strategia [webinar]
Un webinar che approfondisce il redirect 301. Si tratta di un argomento del quale si è già parlato tanto, per questo ho cercato di creare un percorso in cui non vedremo una lista di regole di rewrite da copiare ed incollare, ma cercheremo di capire come come ragionare in fase di redirection.
Il 30 marzo ho partecipato con piacere ad un webinar organizzato da SEOZoom. Attraverso questo post, lo ripropongo attraverso il video integrale e qualche appunto per chi vuole approfondire.
Di certo il "redirect 301" è un argomento di cui si è già parlato abbondantemente. Per questo ho cercato di creare un percorso che va oltre a una semplice lista di istruzioni e regole di rewrite: cercheremo di capire come come ragionare in fase di redirection.
Cos’è il redirect 301?
Il redirect 301 corrisponde ad uno spostamento permanente di una risorsa da un "luogo" ad un altro.. Ovvero si usa quando cambia l’URL per raggiungere una pagina web, un file, o altro.
Il valore "301" indica il numero dello status code che viene restituito al client.
Quello che identifichiamo come redirect 301, quindi, comporta 2 elementi fondamentali:
- attua la redirezione fisica all’altra risorsa;
- restituisce lo status code.
Questo tipo di reindirizzamento è fondamentale per gli utenti e per la SEO, in quanto consente di "informare" (attraverso lo status code), che lo spostamento è permanente, e quindi che la risorsa indicizzata può essere sostituita.
Come si implementa un redirect 301?
Le tecniche che considero, sono due: attraverso il web server, e via software.
- Attraverso il webserver, usando il noto file .htaccess.
Attenzione: il file .htaccess estende le configurazioni di Apache Web Server, quindi è necessario accertarsi che si stia utilizzando tale tipologia di servizio (in alternativa, potrebbe essere Nginx, IIS, Tomcat, ecc.), perché e il metodo di implementazione cambia, anche se i principi sono i medesimi. In questo webinar faccio riferimento ad Apache. - Via software, utilizzando il linguaggio di programmazione, oppure attraverso un plugin dei diversi CMS. Nell'immagine seguente, si può vedere un esempio di implementazione in PHP.
Quali sono i migliori metodi?
- Il redirect via web server ha le prestazioni migliori, perché le richieste si fermano al server (o addirittura al proxy) e non arrivano al software, che è più lento.
- Via software le prestazioni sono inferiori perché si aggiunge il tempo di elaborazione, il quale aumenta nel caso di utilizzo di un framework: aumentano gli step logici. Si tratta di millisecondi, ma attenzione al crawl budget.
Google, nella documentazione, descrive anche alcune forme di redirect lato client, utilizzando, ad esempio, il tag HTLM meta refresh.
Consiglio di considerare tali soluzioni come l'ultima possibilità a disposizione.
Una strategia di redirect
Nel titolo del webinar affermo che il redirect non è solo questione di fare reindirizzamenti, ma è anche strategia.
Una strategia con quale obiettivo? Con il fine di ridurre l’effort dell’attività e il margine d’errore!
Spesso, molti SEO si trovano di fronte a frasi come questa:
..bene, il nuovo sito web è sviluppato e siamo pronti al go-live! Caro SEO, tocca a te!
Ma se, in caso di migrazione, il team SEO venisse coinvolto da subito, si potrebbero mettere in atto degli accorgimenti che consentirebbero di raggiungere l'obiettivo specificato in precedenza.
Come si azzera l'effort del redirect 301?
Quando avviene una migrazione, i dati vengono inseriti attraverso un’importazione o un’attività di data entry. Se in queste fasi, per ogni entità (es. prodotti, pagine, categorie, ecc.) riusciamo ad associare l’URL del vecchio sito web a quello nuovo, possiamo ottenere la generazione del file .htaccess automaticamente, attraverso alcune query SQL e poche righe di codice.
Nel seguente post ho approfondito l'argomento, affrontato nello specifico all'Advaned SEO Tool 2021.
Nel video del webinar faccio vedere l'esempio di utilizzo di un sistema, basato su un Foglio di Google che utilizziamo nel mio team per generare automaticamente le regole di rewrite. Il tool sfrutta lo scraping del vecchio sito web, l'automazione della ricerca interna del nuovo sito web e un semplice algoritmo sviluppato in Apps Script per generare automaticamente le regole di rewrite.
Redirect 301 e 302: qual è la differenza?
Il redirect 301 indica uno spostamento definitivo della risorsa, ad esempio in una migrazione, o se dovesse essere necessario modificare un URL, o unire due contenuti.
Il redirect 302 indica uno spostamento temporaneo: il vecchio URL tornerà a raggiungibile in un tempo breve (es. un prodotto temporaneamente non disponibile).
Note
- il redirect 302 non trasferisce il trust della risorsa, ed è corretto che avvenga questo, perché è l’altra che vogliamo che lo mantenga;
- se un redirect 302 rimane per molto tempo, avrà la valenza di un 301, ma sconsiglio vivamente di contare su questo aspetto.
Approfondimenti sul redirect 301
I punti che seguono puntano ad esplorare degli aspetti che possono essere interessanti per chi si occupa di SEO e deve gestire migrazioni anche utilizzando regole di una certa complessità.
Le tipologie di istruzione
Le principali modalità di redirezione utilizzando il file .htaccess sono tre.
- Redirect 301 è l’istruzione più semplice. Si tratta di una regola "case sensitive", e non ammette l'utilizzo delle espressioni regolari per individuare gli URL.
- RedirectMatch 301 è un’istruzione equivalente, ma al contrario della precedente supporta le "regex";
- RewriteRule è la soluzione più evoluta, che ammette anche la possibilità di esplicitare delle condizioni (le RewriteCond).
Le prime due fanno parte di mod_alias, mentre l’ultima fa parte di mod_rewrite: entrambi moduli Apache Web Server.
Per utilizzare le istruzioni di mod_rewrite è necessario specificare
RewriteEngine ON
Le altre istruzioni, non ne hanno bisogno.
Il debug del file .htaccess
Esistono dei tool efficaci per verificare se il file .htaccess contiene degli errori di sintassi. L'htaccess Tester di Merkle è completo, offre delle spiegazioni degli errori dettagliate e delle simulazioni utili.
Oltre all'utilizzo di tool, suggerisco di verificare le istruzioni suddividendole in blocchi; questo rende più semplice l'individuazione dell'errore.
I loop di redirect
Gli errori che i tool non possono rilevare sono quelli logici, ad esempio i loop di reindirizzamento. Quello che segue né è uno schema classico.
Redirect 301 /pagina-a/ /pagina-b/ Redirect 301 /pagina-b/ /pagina-c/ Redirect 301 /pagina-c/ /pagina-a/
Nel video del webinar è possibile vedere l'effetto di queste regole all'interno del file .htaccess ed alcune indicazioni per evitare problemi.
L'importanza della sequenza nelle regole di rewrite
L'ordine con il quale vengono indicate le istruzioni può spesso causare dei problemi: dei veri e propri errori di reindirizzamento. Un esempio classico riguarda le directory annidate.
Durante il webinar si possono vedere gli effetti dei redirect cambiando l'ordine delle regole di rewrite.
Quindi, quali sono i "paletti" che possiamo usare per evitare di preoccuparsi di questo aspetto? La risposta è nelle espressioni regolari.
Nel video spiego, attraverso il seguente tool (dedicato ai test e all'implementazione delle RegEx), il motivo per il quale le istruzioni interferiscono tra di loro e con quale tecnica è possibile eliminare il problema.
Nell'esempio che segue, l'ordine delle regole è indifferente grazie al carattere "$" nella regex, il quale stabilisce che l'URL da individuare deve concludersi esattamente con la stringa che lo precede.
RedirectMatch 301 /news-test/$ /blog-test/ RedirectMatch 301 /news-test/titolo-notizia/$ /blog-test/titolo-notizia-81/
Redirect multipli
Le catene di reindirizzamento non rappresentano un errore, ma un'ottimizzazione non ottimale.
L'esempio che segue mostra un esempio di redirect multiplo in cui, per redirigere l'URL vecchio a quello nuovo, avviene un redirect aggiuntivo per passare dalla versione http ad https.
E quelle che seguono sono le istruzioni che lo generano.
RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] RedirectMatch 301 /news-test-2/$ https://seo.sitebysite.it/blog-test-2/
Nell'immagine che segue, invece, si può vedere un esempio di un redirect che avviene in un unico passaggio.
Ed ecco un esempio di istruzioni che lo permettono.
RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^seo.sitebysite.it$ RewriteCond %{REQUEST_URI} ^\/?$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] RedirectMatch 301 /news-test-2/$ https://seo.sitebysite.it/blog-test-2/
Più ottimizziamo le istruzioni, e migliori saranno le prestazioni!
I Flag di Apache
Si tratta di ulteriori "paletti" che possono essere utilizzati all'interno delle RewriteRule e delle RewriteCond, ovvero dei mezzi per andare a dettagliare maggiormente le istruzioni.
I più noti sono i seguenti.
- R: definisce la tipologia di redirect (es. R=301).
- L: last. Interrompe l'elaborazione delle regole.
- NC: no case. Elimina la distinzione tra lettere maiuscole e minuscole.
- QSD: query string discard. Non considera le query string.
All'interno della documentazione ufficiale di Apache Web Server è possibile consultare l'intero set di flag.
Alcuni esempi di porzioni di istruzioni in cui vengono utilizzati:
RewriteRule ^(.*?)news-test\/$ /blog-test/ [R=301,L]
RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR]
RewriteRule ^(.*)$ https://nuovosito.it/$1 [L,R=301,NC]
Le espressioni regolari complesse
Utilizzare delle regole strutturate rappresenta un approccio interessante perché permettono di risparmiare istruzioni e lavoro.
Nel video del webinar utilizzo il tool Regex 101 per descrivere come approcciare ad un redirect come quello illustrato nell'immagine, e quindi come ricavare la regola di rewrite partendo dall'URL da intercettare. L'aspetto più interessante riguarda l'utilizzo dei "Capturing Group" e delle variabili.
Da dove si inizia per imparare ad usare le espressioni regolari?
Il video che segue offre un'ottima introduzione all'argomento in 100 secondi.
Dopo l'introduzione, consiglio di fare esperienza sul campo utilizzando dei tool come Regex 101, i quali oltre ad effettuare il debug, offrono strumenti utilissimi per la fase di creazione.
Le regole di rewrite in presenza di query string
Se si devono redirigere degli URL con dati nelle query string è necessario utilizzare delle condizioni che verificano la variabile del server {QUERY_STRING}.
Nel webinar approfondisco il tema e descrivo come utilizzare non solo le variabili che derivano dai "Capturing Group" delle espressioni regolari delle regole (es. $1), ma anche quelle che derivano dalle espressioni regolari delle condizioni (es. %1).
Usare la testa, ragionare sulla strategia, comprendere le regole di rewrite, sono gli ingredienti per ridurre l’effort e il margine d’errore.. e aumentare le probabilità di successo!
Il video, oltre che in formato integrale su YouTube e in questo blog, è presente anche nell'area Webinar di SEOZoom, insieme ad altri interessantissimi contenuti curati da professionisti autorevoli.