⌕ SEO tecnico

Catene e loop di redirect: come trovarli e appiattirli

Perché i redirect a più salti rallentano utenti e crawler, come nascono dopo migrazioni successive, come individuarli con un crawler e come appiattirli.

Un singolo redirect è innocuo. Il problema nasce quando i redirect si accumulano: la pagina A rimanda a B, che rimanda a C, che rimanda a D. Ogni salto aggiunge una richiesta, un ritardo e una possibilità di errore. Nel caso peggiore, la catena si chiude su sé stessa e diventa un loop, e la pagina semplicemente non si apre.

Come nascono le catene

Quasi nessuno crea una catena intenzionalmente. Si formano per stratificazione, un intervento dopo l'altro:

  1. anni fa il sito passa da HTTP a HTTPS: http:// → https://;
  2. poi si decide di togliere il www: https://www. → https://;
  3. poi si cambia la struttura degli URL: /blog/2019/articolo → /articoli/articolo;
  4. infine si rinomina lo slug: /articoli/articolo → /articoli/titolo-nuovo.

Un vecchio link esterno verso http://www.example.com/blog/2019/articolo attraversa ora quattro redirect prima di arrivare a destinazione. Nessuno dei quattro è sbagliato preso da solo; è la somma che crea il problema.

Altre cause frequenti:

  • regole di normalizzazione applicate in sequenza invece che insieme (protocollo, poi host, poi barra finale);
  • redirect configurati sia nella CDN sia nel CMS, che si sommano;
  • plugin che aggiungono automaticamente un redirect a ogni cambio di slug, anche su pagine già reindirizzate.

Perché sono un problema

Per gli utenti

Ogni salto è un viaggio di andata e ritorno verso il server, e su una connessione mobile lenta ognuno può costare in modo percepibile. Con tre o quattro salti il ritardo si somma prima ancora che inizi il caricamento della pagina.

Per i crawler

I motori seguono un numero limitato di salti consecutivi; oltre una certa soglia interrompono e trattano l'URL come errore. Anche entro il limite, ogni salto è una richiesta che consuma risorse di scansione. E più lunga è la catena, più tempo impiega il motore a consolidare i segnali sulla destinazione finale.

Per la manutenzione

Una catena è fragile: basta che un anello intermedio venga rimosso, magari pensando che «quella vecchia regola non serva più», perché l'intero percorso si interrompa con un 404.

I loop

Un loop si verifica quando la catena torna a un URL già visitato. I casi tipici:

  • regola che aggiunge la barra finale e un'altra che la toglie;
  • HTTPS forzato dal server mentre la CDN, che comunica col server in HTTP, riceve un redirect e lo ripete all'infinito;
  • redirect basato sulla lingua che manda alla versione italiana, che a sua volta rimanda alla scelta della lingua.

Il browser si ferma dopo un certo numero di salti con un errore del tipo «troppi reindirizzamenti». Il crawler fa lo stesso, e la pagina sparisce dall'indice.

Come trovarli

Con un crawler

Un crawler desktop segnala catene e loop durante la scansione, indicando URL di partenza, salti intermedi e destinazione finale. Conviene lanciarlo in due modalità:

  1. partendo dalla home, per trovare i link interni che finiscono in una catena;
  2. caricando un elenco di URL storici, presi da vecchie sitemap, dai log o dagli strumenti per webmaster, per verificare i percorsi che arrivano dall'esterno.

Con la riga di comando

Per un singolo URL, curl mostra tutti i salti:

curl -sIL http://www.example.com/blog/2019/articolo | grep -i -E "^(HTTP|location)"

L'output elenca ogni codice di stato e ogni intestazione Location, in ordine.

Come appiattirli

L'obiettivo è che ogni URL vecchio porti alla destinazione finale in un solo salto.

  1. Raccogli tutte le regole in un'unica tabella: origine, destinazione, dove è configurata.
  2. Risolvi le destinazioni: per ogni origine, segui la catena fino in fondo e scrivi direttamente l'URL finale.
  3. Unifica le normalizzazioni: una sola regola che porta protocollo, host e barra finale nella forma corretta in un colpo solo.
  4. Elimina i duplicati tra CDN, server e CMS, scegliendo un solo livello in cui gestire i redirect.
  5. Aggiorna i link interni in modo che puntino direttamente alla destinazione, senza passare da alcun redirect.
  6. Riverifica con il crawler l'elenco degli URL storici.
Prima Dopo
A → B → C → D A → D
B → C → D B → D
C → D C → D

In sintesi

  • Le catene nascono dalla somma di interventi successivi, non da un errore singolo.
  • Ogni salto rallenta utenti e crawler e aumenta la fragilità.
  • I loop rendono la pagina irraggiungibile per browser e motori.
  • Verifica con un crawler sia i link interni sia gli URL storici.
  • Ogni vecchio URL deve arrivare alla destinazione finale in un solo salto.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche