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.

Redirect 301: non solo reindirizzamenti, ma anche strategia [webinar]
Redirect 301: non solo reindirizzamenti, ma anche strategia [webinar]

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.

Un dialogo tra client e server nella fase di redirection
Un dialogo tra client e server nella fase di redirection

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.

  1. 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.
  2. 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.
Come si implementa un redirect 301?
Come si implementa un redirect 301?

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.

Redirects and Google Search | Google Search Central | Documentation | Google for Developers
Learn about the different types of redirects, how Google can interpret them, and how they can be useful in Google Search.

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.

Associando le entità in fase di data entry, è possibile generare le regole di rewrite automaticamente
Associando le entità in fase di data entry, è possibile generare le regole di rewrite automaticamente

Nel seguente post ho approfondito l'argomento, affrontato nello specifico all'Advaned SEO Tool 2021.

Advanced SEO Tool 2021: l’automazione per il redirect 301
Sul palco dell’Advanced SEO Tool ho parlato di migrazione dei siti web, un’operazione critica per i brand che operano nel mondo digital. In particolare ho approfondito il tema dell’automazione della fase di redirect 301, condividendo un metodo messo a punto nel team.

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.

Un esempio di debug del file .htaccess utilizzando un tool di Merkle
Un esempio di debug del file .htaccess utilizzando un tool di Merkle

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.

Alcuni esempi di regole di rewrite in cui l'ordine provoca degli errori
Alcuni esempi di regole di rewrite in cui l'ordine provoca degli errori

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.

regex101: build, test, and debug regex
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET, Rust.

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.

Un esempio di redirect multiplo
Un esempio di redirect multiplo

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.

Un esempio di redirect multiplo corretto
Un esempio di redirect multiplo corretto

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.

Redirect 301: le espressioni regolari complesse
Redirect 301: le espressioni regolari complesse

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.

Un'introduzione alle RegEx 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}.

Regole di rewrite con le query string
Regole di rewrite con le 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.

Resta aggiornato con i nostri webinar!
Consulta il calendario dei prossimi webinar di SEOZoom. La partecipazione è gratuita.

Per approfondire

Come creare espressioni regolari (RegEx) con GPT-3 attraverso un Foglio di Google
Le espressioni regolari (RegEx) sono poco intuitive, ma molto potenti, e tutti i tool utilizzati dai professionisti del web le utilizzano. Come possiamo sfruttare GPT-3 e l’intelligenza artificiale per crearle al posto nostro? Vediamo un esperimento e una guida dettagliata.