TrueURL

Strumento gratuito per i redirect

Verifica meta refresh

Non tutti i reindirizzamenti sono un codice di stato HTTP. TrueURL legge l’HTML di ogni pagina della catena e trova i tag meta refresh e i reindirizzamenti JavaScript, con il relativo URL di destinazione e ritardo.

Che cos’è un redirect meta refresh?

Un meta refresh è un tag HTML che dice al browser di caricare un altro URL dopo un ritardo espresso in secondi:

<meta http-equiv="refresh" content="0; url=https://example.com/new-page">

Con un ritardo di 0 si comporta come un normale reindirizzamento. Con un ritardo più lungo, i visitatori vedono prima la pagina, come nelle vecchie pagine “Stai per essere reindirizzato”. I reindirizzamenti JavaScript fanno lo stesso lavoro con codice come location.href = '...' o location.replace('...'). Entrambi sono reindirizzamenti lato client: il server risponde 200 OK ed è il browser a eseguire il reindirizzamento.

Come TrueURL rileva i reindirizzamenti lato client

Per ogni risposta HTML con stato 2xx, TrueURL analizza i primi 256 KB della pagina alla ricerca di un tag meta refresh e di semplici reindirizzamenti JavaScript incondizionati. Viene rilevata anche un’intestazione HTTP Refresh, che funziona come un meta refresh. Quando ne trova uno, mostra il tag o il frammento di script, l’URL di destinazione risolto e il ritardo, contrassegna il salto come meta refresh o JavaScript e prosegue la catena dalla destinazione. Un refresh che si limita a ricaricare la stessa pagina non è un reindirizzamento e viene ignorato.

Nelle Impostazioni avanzate puoi scegliere di non seguire l’uno o l’altro tipo, per esaminare la pagina stessa. TrueURL non esegue JavaScript: legge gli script presenti nella pagina e riconosce i reindirizzamenti verso un URL fisso che vengono sempre eseguiti al caricamento della pagina, subito o in un setTimeout di primo livello. Non vengono rilevati i reindirizzamenti che dipendono da una condizione, come un clic, una scelta sul consenso o le dimensioni dello schermo, né quelli che costruiscono l’URL di destinazione nel codice. Usa GET anziché HEAD, perché le risposte HEAD non hanno un corpo da analizzare.

Come i motori di ricerca trattano i reindirizzamenti lato client

  • Meta refresh immediato (ritardo 0): Google lo considera un reindirizzamento permanente, come un 301.
  • Meta refresh con ritardo: viene considerato un reindirizzamento temporaneo, quindi l’URL originale tende a restare indicizzato.
  • Reindirizzamenti JavaScript: Google li vede solo dopo aver eseguito il rendering della pagina, che può avvenire molto tempo dopo la scansione. Molti altri crawler e la maggior parte dei bot di anteprima dei link non eseguono affatto JavaScript.

Google consiglia i reindirizzamenti lato server ovunque tu possa configurarli e il meta refresh come soluzione di ripiego, ad esempio su un hosting statico che non può inviare un 301.

Accessibilità ed esperienza utente

I reindirizzamenti temporizzati sono un problema di accessibilità: chi usa uno screen reader, o semplicemente legge lentamente, perde il segno quando la pagina cambia all’improvviso. Le WCAG elencano il meta refresh temporizzato tra i casi di non conformità (failure F40), mentre un reindirizzamento immediato con ritardo 0 è una tecnica accettata (H76).

Se devi reindirizzare dall’HTML, usa un ritardo di 0, aggiungi un tag canonical che punti al nuovo URL e inserisci nella pagina un link visibile al nuovo indirizzo per i visitatori il cui browser non segue il refresh.

Guide

Domande frequenti

Un meta refresh trasferisce valore SEO come un 301?

Google considera un meta refresh immediato (ritardo 0) un reindirizzamento permanente, quindi in pratica funziona in modo molto simile a un 301. Un refresh con ritardo conta come temporaneo. Altri crawler potrebbero gestire il meta refresh in modo meno affidabile, quindi usa un 301 lato server ogni volta che il tuo hosting lo consente.

Perché il mio redirect checker mostra 200 se nel browser la pagina reindirizza?

Il reindirizzamento avviene nell’HTML o nel JavaScript della pagina, non nella risposta HTTP. Gli strumenti che seguono solo i codici di stato, come curl -L, si fermano alla pagina con codice 200. TrueURL analizza il contenuto della pagina e mostra il reindirizzamento lato client come un salto a sé.

Quale ritardo deve avere un meta refresh?

0, se lo scopo è reindirizzare. Qualsiasi ritardo lo trasforma in un reindirizzamento temporaneo per Google, fa aspettare i visitatori e crea problemi di accessibilità. Un ritardo ha senso solo su una pagina che deve prima mostrare un messaggio, e quella pagina dovrebbe avere anche un link ben visibile per proseguire.

TrueURL può rilevare tutti i reindirizzamenti JavaScript?

No, solo quelli semplici e incondizionati con un URL di destinazione fisso nell’HTML della pagina, come location.href = '...', window.location = '...' o location.replace('...'), anche all’interno di un setTimeout di primo livello. I reindirizzamenti contenuti in file di script esterni, soggetti a condizioni, attivati da azioni dell’utente o con un URL calcolato hanno bisogno di un vero browser per essere eseguiti. Se la catena si ferma su una pagina che sai che reindirizza, probabilmente il motivo è questo.

Perché un sito dovrebbe usare un meta refresh invece di un 301?

Di solito perché non può inviare reindirizzamenti HTTP: hosting statico senza regole di reindirizzamento, un page builder o un vecchio CMS. Anche alcuni servizi di abbreviazione URL e sistemi di tracciamento dei clic usano reindirizzamenti HTML, così possono eseguire prima gli script di analisi o controllare il referrer che vede la destinazione.

Una richiesta HEAD rileva il meta refresh?

No. Una risposta HEAD ha le intestazioni ma non il corpo, quindi non c’è HTML da analizzare. TrueURL ti avvisa quando verifichi con HEAD; con questo strumento usa GET.