Canonical URL: cos'è e come configurarla
Cos'è rel canonical, perché serve ai motori di ricerca e come inserire il tag canonical in HTML, negli header HTTP e nelle CMS più diffuse.
Cos'è una canonical URL
Una canonical URL (o rel canonical) è un tag HTML che comunica al motore di ricerca: fra tutte le versioni di questa pagina, quella principale è questa. Risolve uno dei problemi SEO più comuni — la duplicazione dei contenuti, quando lo stesso materiale è raggiungibile da più indirizzi.
Senza canonical, è il motore di ricerca a decidere da solo quale versione trattare come principale — e spesso sceglie quella che non vorresti nell'indice. Il tag ti restituisce il controllo: dichiari esplicitamente l'URL preferito, e Google e Yandex seguono questo suggerimento nella maggior parte dei casi.
Canonical in numeri
Anno di introduzione
Google, Yahoo e Bing hanno annunciato congiuntamente il supporto a rel canonical — il primo standard SEO condiviso dall'intero settore
Siti con duplicati
Secondo Ahrefs, circa il 60% dei siti ha pagine con contenuti duplicati che richiedono un canonical
Motori di ricerca
Google, Yandex e Bing supportano rel canonical. È un suggerimento, non una direttiva: il motore lo segue nella maggior parte dei casi, ma non sempre
Non è un redirect
Canonical è un suggerimento per il motore di ricerca, non un redirect per l'utente. La pagina duplicata resta raggiungibile al proprio URL
Canonical: significato e concetto di base
La parola «canonical» arriva sul web dalla matematica e dalla logica: la forma canonica è la rappresentazione più semplice e standard di un oggetto. Nel contesto degli URL, l'indirizzo canonical è il link «ufficiale» che il motore di ricerca usa per posizionamento e indicizzazione, mentre tutte le altre versioni vengono trattate come duplicate.
Canonical e redirect 301 vengono spesso confusi. La differenza chiave: un redirect è una direttiva, canonical è un suggerimento. Un redirect porta fisicamente l'utente su un nuovo URL. Canonical lascia l'utente sulla pagina originale ma dice al motore di ricerca quale URL considerare principale ai fini dell'indicizzazione.
| Criterio | rel="canonical" | Redirect 301 |
|---|---|---|
| Tipo di segnale | Suggerimento | Direttiva |
| Cosa vede l'utente | L'URL della pagina duplicata | L'URL di destinazione (principale) |
| Cosa indicizza il motore | Solo l'URL canonical | Solo l'URL di destinazione |
| Trasferimento del valore dei link | Parziale (non 100%) | Pieno (~99%) |
| Entrambi gli URL raggiungibili | Sì | No — il duplicato restituisce 301 |
| Caso d'uso | Duplicati, filtri, paginazione | Spostamento permanente di una pagina |
Come inserire il tag canonical
Il tag canonical va nella sezione <head> della pagina duplicata. La sintassi non cambia dal 2009 — è un singolo elemento <link> void. Ricorda che l'attributo href deve contenere un URL assoluto completo:
<head>
<meta charset="UTF-8">
<title>Laptops — buy at TechShop</title>
<link rel="canonical" href="https://example.com/catalog/laptops/">
</head><meta rel="canonical"> o <meta name="canonical"> — quel tag non esiste. L'unica forma corretta è <link rel="canonical" href="..."> dentro <head>. La variante meta viene ignorata del tutto dai motori di ricerca.Se la pagina è un PDF, un'immagine o un altro file senza <head> HTML, il canonical può essere inviato tramite l'header HTTP Link. La configurazione nginx qui sotto funziona sia per risorse non HTML sia per pagine normali quando controlli direttamente il server:
# nginx.conf — canonical via HTTP header
# For PDF and other non-HTML resources:
location ~* \.pdf$ {
add_header Link '<https://example.com/docs/price-list.pdf>; rel="canonical"';
}
# For dynamic URLs with GET parameters:
location /catalog/ {
add_header Link '<https://example.com/catalog/>; rel="canonical"';
}Cinque regole del canonical che vengono violate più spesso:
- Solo URL assoluti. Scrivi sempre l'indirizzo completo:
https://example.com/page/, non/page/. I canonical relativi sono tecnicamente supportati ma si comportano male quando cambia dominio o protocollo. - rel canonical https. Il canonical deve puntare alla versione https della pagina. Se il sito è in HTTPS ma il canonical punta a
http://, crei un duplicato che il motore non riesce a risolvere correttamente. - Un solo canonical per pagina. Più tag
<link rel="canonical">con href diversi — il motore di ricerca li ignora tutti o ne sceglie uno a caso. - Il canonical deve essere raggiungibile. Un tag che punta a un URL 404 o 301 non ha senso. La pagina principale deve restituire 200 OK.
- Slash finale coerente. Se l'URL principale è
/catalog/(con slash), anche il canonical deve includere lo slash. Mescolare le varianti crea nuovi duplicati.
Quando usare canonical
Canonical risolve sei scenari classici di duplicazione dei contenuti. Ecco ciascuno con esempi di URL reali.
URL come /catalog/?sort=price e /catalog/?utm_source=email contengono lo stesso contenuto di /catalog/. Il canonical di tutte queste pagine deve puntare a /catalog/. È la fonte di duplicati più diffusa negli e-commerce.
Pagine come /blog/page/2/ e /blog/page/3/ contengono contenuti unici, quindi la paginazione con canonical di norma significa self-canonical su ogni pagina. Non puntare tutte le pagine paginate alla pagina 1 — così nascondi contenuti unici all'indicizzazione.
Una pagina categoria con filtri può generare centinaia di URL: /shoes/?color=red&size=42. Se una pagina filtro ha contenuti unici e domanda di ricerca, indicizzala. Se è un duplicato della categoria padre — canonical verso /shoes/.
Quattro varianti della homepage: http://example.com, https://example.com, http://www.example.com, https://www.example.com. Scegline una principale (meglio https://example.com senza www) e imposta canonical + 301 da tutte le altre.
Se il tuo articolo è stato ripubblicato su un sito partner (sindacazione, mirror), chiedi al partner di aggiungere un canonical che punta al tuo originale. Google supporta il canonical cross-domain — tratta il tuo dominio come fonte e trasferisce il valore dei link.
Se la tua pagina compare su più aggregatori senza il tuo intervento, aggiungi un self-canonical all'originale. Quando sceglie la versione principale fra i duplicati, Google dà priorità agli URL con un self-canonical esplicito.
Canonical nelle CMS: WordPress, Bitrix e Tilda
Le CMS più diffuse generano i canonical automaticamente o offrono uno strumento integrato. La configurazione manuale serve solo per scenari non standard o quando la CMS non li gestisce correttamente.
WordPress
I plugin Yoast SEO e Rank Math aggiungono automaticamente un <link rel="canonical"> autoreferenziale per ogni pagina e post. Se non usi questi plugin, aggiungi quanto segue al functions.php del tuo tema:
<?php
// functions.php — canonical without an SEO plugin
add_action('wp_head', function() {
if (is_singular()) {
echo '<link rel="canonical" href="' . esc_url(get_permalink()) . '">' . "\n";
} elseif (is_home() || is_front_page()) {
echo '<link rel="canonical" href="' . esc_url(home_url('/')) . '">' . "\n";
}
}, 1);Bitrix
In 1C-Bitrix il canonical si imposta tramite le proprietà della pagina. L'approccio standard è assegnare il valore in un componente e stamparlo nel header.php del template principale:
<?php
// In a component or init.php: set the canonical
$canonicalUrl = 'https://' . SITE_SERVER_NAME . $APPLICATION->GetCurPage(false);
$APPLICATION->SetPageProperty('canonical', $canonicalUrl);
// In the template's header.php: output the tag
$canonical = $APPLICATION->GetPageProperty('canonical');
if ($canonical):
?><link rel="canonical" href="<?= htmlspecialchars($canonical, ENT_QUOTES, 'UTF-8') ?>">
<?php endif; ?>Tilda
<head> automaticamente. Per canonical cross-domain o casi particolari, usa uno Zero Block con un inserimento HTML in <head>.Errori e verifica con Google Search Console
Google Search Console è lo strumento principale per monitorare lo stato del canonical. Nel report Indicizzazione → Pagine vedrai diversi stati legati al canonical:
| Stato GSC | Cosa significa | Cosa fare |
|---|---|---|
| Alternate page with proper canonical tag | Google ha accettato il tuo canonical. Il duplicato non è indicizzato; il valore dei link passa alla pagina principale | Tutto corretto — è il comportamento atteso |
| Duplicate, Google chose different canonical than user | Google ha ignorato il tuo canonical e ha scelto un altro URL come principale | Verifica: URL assoluto? Nessun 301? Contenuti identici su entrambe le pagine? |
| Duplicate without user-selected canonical | Il motore ha trovato pagine simili senza canonical | Aggiungi il tag canonical a tutte le pagine duplicate |
| Indexed | Pagina accettata nell'indice come principale (self-canonical o scelta esplicita) | Normale per le pagine principali |
Oltre a GSC, verifica il canonical a livello di risposta HTTP. Il metodo più rapido senza strumenti è il sorgente della pagina nel browser (Ctrl+U → cerca canonical) oppure curl:
# Check canonical in HTTP header:
curl -sI https://example.com/catalog/?sort=price | grep -i link
# Check canonical in HTML (first 2000 bytes of response):
curl -s https://example.com/page/ | head -c 2000 | grep -i canonical- Catene di canonical. Pagina A → canonical B → canonical C. I motori di ricerca preferiscono i puntamenti diretti. Assicurati che il canonical porti dritto all'URL principale finale, senza salti intermedi.
- Canonical che punta a un redirect. Un canonical verso un URL in 301 manda un segnale ambiguo. Il motore deve seguire la catena — è più pulito puntare direttamente all'URL finale.
- Noindex + canonical — una contraddizione. Una pagina con sia
noindexsia canonical manda segnali conflittuali. Scegli uno dei due: oppure metti noindex alla pagina, oppure imposta il canonical verso l'URL principale. - Canonical via JavaScript. Google riesce a processare i tag canonical iniettati da JS, ma è più lento e meno affidabile. Preferisci sempre un
<link>statico in<head>HTML.
canonical. Se il tag non è dentro <head> — c'è un problema di template. Se il canonical punta a un 404 o a un dominio esterno inatteso — errore di configurazione critico.FAQ
Le risposte alle domande più frequenti sul canonical che emergono negli audit SEO.
In sintesi
Il tag canonical è uno degli strumenti fondamentali della SEO tecnica. È semplice da implementare, eppure causa regolarmente seri problemi di indicizzazione quando è configurato male o manca su siti con generazione dinamica di URL. Tre regole base — URL assoluto, rel canonical https, niente catene — sistemano l'80% degli errori possibili.
Inizia verificando lo stato attuale: GSC → report Pagine → filtra per gli stati «Duplicates» e «Not indexed». Così vedi subito dove il canonical manca o viene ignorato dal motore di ricerca.
Qual è la differenza fra canonical e redirect 301?
Posso puntare un canonical a una pagina su un altro dominio?
<link rel="canonical" href="https://your-site.com/article/">. Google trasferirà il valore dei link e l'attribuzione del contenuto al tuo dominio.Perché Google ignora il mio canonical?
Come verifico il canonical senza un crawler?
canonical. (2) Chrome DevTools — scheda Elements, cerca <link rel. (3) Google Search Console — report Pagine → clicca un URL → nel pannello laterale trovi sia il campo «Google-selected canonical» sia «User-declared canonical».Come correggo lo stato «alternate page with proper canonical tag» in GSC?
Check it with SpiderHead
Free and local: run the audit on your own machine.



