← Torna al blog

Canonical Tag Checker: come trovare e correggere i canonical rotti

Canonical Tag Checker: come trovare e correggere i canonical rotti

Un canonical tag checker legge l'elemento <link rel="canonical"> di una pagina e ti dice se c'è, se ce n'è più di uno e se l'URL indicato è una pagina viva e indicizzabile. Serve perché il canonical decide quale tra più URL quasi identici raccoglie link e segnali di ranking, e si rompe molto più spesso per colpa di template e plugin che per una scelta consapevole di qualcuno.

Su un sito solo puoi aprire il sorgente ogni tanto. Su un portafoglio di clienti i canonical cambiano come effetto collaterale di lavori che nessuno collega alla SEO: un aggiornamento del tema, una nuova regola di redirect, una copia di staging scansionata mentre i suoi canonical puntavano ancora all'hostname di staging.

Cosa comunica davvero il canonical a Google

Il tag sta nell'<head> e indica l'URL preferito per un contenuto, per esempio <link rel="canonical" href="https://example.com/scarpe/">. Conta ovunque lo stesso contenuto risponda su più indirizzi: ?colore=blu e altri parametri, http e https, con e senza slash finale, versioni stampabili, viste paginate o filtrate delle categorie.

Google lo tratta come un suggerimento forte, non come un ordine. Lo mette sulla bilancia insieme a redirect, link interni, URL elencati nella sitemap e HTTPS, poi sceglie per conto suo. Il risultato lo vedi per ogni URL con lo strumento Controllo URL di Search Console, che mostra l'"URL canonico dichiarato dall'utente" accanto all'"URL canonico selezionato da Google". Quando i due non coincidono, Google ha deciso che il tuo tag è sbagliato o poco credibile.

Due regole meno ovvie colgono spesso di sorpresa. Un canonical inserito nel <body> viene ignorato, e succede quando uno script o un page builder lo inietta troppo tardi. E i file non HTML, come i PDF, possono dichiarare un canonical solo tramite header HTTP: Link: <https://example.com/guida/>; rel="canonical".

I problemi che un canonical tag checker deve segnalare

Problema Cosa trovi nel sorgente Effetto tipico
Mancante Nessun rel="canonical" Google sceglie da solo una versione, spesso quella con parametri
Multiplo Due tag con URL diversi, di solito tema più plugin SEO Google può ignorare del tutto i canonical dichiarati
Destinazione sbagliata Tutte le schede prodotto canonicalizzate su un solo prodotto o sulla home Quegli URL escono dall'indice come duplicati
Destinazione rotta Canonical verso una 404, un redirect o una pagina in noindex Segnali contraddittori, e la pagina "vera" rischia di non essere indicizzata
Hostname vecchio Il canonical cita ancora staging. o il dominio pre-migrazione I segnali vanno a un sito che non dovrebbe posizionarsi
URL relativo href="/scarpe/" invece di un URL assoluto In teoria funziona, ma sbaglia quando la pagina viene servita su un altro host

I casi a livello di template fanno più danni perché colpiscono in un colpo tutte le pagine di un tipo. Nel report Indicizzazione delle pagine di solito emergono come un'impennata di "Pagina duplicata, Google ha scelto una pagina canonica diversa da quella specificata dall'utente" o di "Pagina alternativa con tag canonical appropriato".

Controllare un URL a mano

Se stai facendo debug di una pagina, la strada manuale va benissimo:

  1. Apri view-source: e cerca canonical. Conta le occorrenze.
  2. Guarda anche gli header di risposta (curl -I https://example.com/pagina/) per un eventuale header Link, che può contraddire l'HTML.
  3. Richiedi l'URL di destinazione del canonical e verifica che risponda 200, non abbia noindex e dichiari se stesso come canonical.
  4. Passa l'URL nel Controllo URL per vedere quale canonical ha scelto davvero Google.

Da dove arriva il tag dipende dalla piattaforma. Yoast SEO e Rank Math generano di default un canonical self-referencing e permettono a chi scrive di sovrascriverlo pagina per pagina nella scheda Avanzate, che è proprio dove si annidano gli errori di copia-incolla. I temi Shopify di solito stampano {{ canonical_url }} in theme.liquid, quindi un tema personalizzato che mette un valore fisso lì sbaglia su tutti i template che usano quel layout.

Tenere d'occhio i canonical su molti siti

Un controllo manuale ti dice cosa riporta un canonical oggi. I guasti costosi sono quelli che cambiano dopo l'ultima volta che hai guardato, quindi la domanda utile è: cosa è cambiato da ieri?

Deltio controlla ogni giorno le pagine presenti nella sitemap di ciascun sito cliente e confronta i canonical con il controllo precedente, insieme a title, meta description, H1, noindex e robots.txt. Quando un canonical cambia o sparisce, l'alert arriva sul canale Slack e via email di quel sito, con gli URL coinvolti. Subito dopo un deploy puoi anche lanciare una scansione SEO manuale invece di aspettare il ciclo successivo. Il limite è la tempistica: una modifica fatta stamattina compare al prossimo controllo giornaliero, non entro pochi minuti. Se controlli già i title tag in questo modo, i canonical rientrano nella stessa routine.

Puoi aggiungere un sito cliente con la prova di 14 giorni e vedere cosa dicono oggi i suoi canonical.

Domande frequenti

Ogni pagina dovrebbe avere un canonical self-referencing?
È un buon default. Un canonical che punta a se stesso su ogni pagina indicizzabile evita che varianti con parametri o tracciamenti (per esempio ?utm_source=) vengano trattate come URL separati. La maggior parte dei plugin SEO, Yoast SEO e Rank Math compresi, lo aggiunge in automatico.
Il tag canonical equivale a un redirect 301?
No. Un 301 manda utenti e crawler su un altro URL, e Google lo considera un segnale forte. Il canonical lascia la pagina raggiungibile e si limita a suggerire quale URL indicizzare. Usa il redirect quando il vecchio URL non deve più essere visitato, il canonical quando entrambe le versioni devono restare accessibili, come nelle viste filtrate delle categorie.
Un canonical può puntare a un altro dominio?
Sì. I canonical cross-domain sono supportati e diffusi nei contenuti in syndication, dove un articolo ripubblicato rimanda all'originale. La destinazione deve comunque essere accessibile e indicizzabile, altrimenti è probabile che Google ignori il suggerimento.
Perché Search Console mostra un canonical diverso da quello che ho impostato?
Google tratta rel=canonical come un suggerimento e può scavalcarlo quando altri segnali dicono altro, per esempio quando link interni, redirect o sitemap puntano con costanza a un URL diverso, oppure quando il canonical dichiarato fa redirect o restituisce un errore. Il Controllo URL mostra sia il canonical dichiarato dall'utente sia quello selezionato da Google, così puoi confrontarli.
Quanto costa Deltio?
Starter copre fino a 50 siti e 5.000 URL a 29 € al mese, oppure 24 € al mese con fatturazione annuale. Professional (fino a 200 siti) costa 59 € al mese, o 49 € con fatturazione annuale, ed Enterprise (fino a 500 siti) 139 € al mese, o 116 € con fatturazione annuale. Ogni piano include una prova gratuita di 14 giorni.