Tag canonical
Controlla il tag rel=canonical di una pagina e ti dice quale URL stai indicando a Google come versione principale. Il canonical serve a evitare i contenuti duplicati: quando la stessa pagina è raggiungibile da più indirizzi, indica al motore quale considerare quello buono. Un canonical sbagliato è uno degli errori che fanno sparire pagine intere dai risultati.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
A cosa serve il tag canonical
Lo stesso contenuto è spesso raggiungibile da indirizzi diversi: con e senza “www”, in http e https, con parametri di tracciamento dopo il punto interrogativo, con e senza la barra finale. Per Google sono URL distinti, e senza un segnale rischiano di essere trattati come doppioni che si fanno concorrenza tra loro. Il tag canonical dice qual è la versione ufficiale: le altre passano il loro valore a quella. Impostarlo bene concentra la forza del contenuto su un solo indirizzo invece di disperderla.
Autoreferenziale o verso un'altra pagina
Nella maggior parte dei casi una pagina dovrebbe puntare a sé stessa: il canonical coincide con il proprio URL. A volte invece punta di proposito altrove — una scheda prodotto in più colori che rimanda alla versione base, per esempio. Il problema nasce quando il canonical punta altrove per errore: succede spesso dopo una migrazione, quando resta l'indirizzo del sito di prova, o quando un template mette su tutte le pagine il canonical della home. Lo strumento ti dice a chiare lettere dove punta, così te ne accorgi subito.
Cosa controlla, esattamente
Verifica che il tag canonical ci sia, che ne esista uno solo (più canonical sulla stessa pagina si annullano a vicenda), che usi un URL assoluto e non un percorso relativo, e che punti a una pagina indicizzabile e non bloccata. Ti segnala anche i casi ambigui, come un canonical verso http mentre il sito è in https. Incolli l'HTML e l'analisi gira nel browser: gratis, senza limiti. L'analisi diretta da URL, comoda per molte pagine, passa dal servizio a $0.002 a pagina.
Casi d'uso
Dopo una migrazione andata storta
Un sito rifatto perde traffico da un giorno all'altro: incollando l'HTML di qualche pagina si scopre che il canonical punta ancora al dominio di staging usato in prova, quindi Google considerava le pagine reali dei doppioni e smetteva di mostrarle.
E-commerce con filtri e parametri
Un negozio online ha pagine di categoria con decine di varianti da filtri e ordinamenti: verifica che tutte puntino con il canonical alla versione pulita della categoria, così Google indicizza una pagina sola invece di centinaia quasi identiche.
Template che sbaglia su tutto il sito
Chi gestisce un sito nota che una pagina interna ha come canonical l'indirizzo della home: segno che il tema mette lo stesso tag ovunque. Il controllo su qualche pagina campione conferma il problema prima di sistemare il template.
Domande frequenti
Una pagina deve puntare a sé stessa?
Di solito sì: il canonical coincide con l'URL della pagina. Punta altrove solo quando è una variante voluta di un'altra pagina. Se punta altrove per sbaglio, quella pagina rischia di sparire dai risultati.
Cosa succede con due tag canonical sulla stessa pagina?
Si contraddicono e Google può ignorarli entrambi, scegliendo da solo la versione da indicizzare. Averne uno solo è la regola: lo strumento segnala se ne trova più di uno.
Il canonical deve essere un URL assoluto?
Sì, l'indirizzo completo con protocollo e dominio. Un percorso relativo può essere interpretato male dal motore. Il controllo verifica proprio che l'URL sia assoluto e coerente con il resto del sito.
È davvero gratis?
Sì, incollando l'HTML nel browser il controllo è gratuito e senza limiti. A pagamento è solo la modalità che scarica e analizza una pagina da URL, a $0.002 a pagina, utile per controlli su molte pagine.
I dati restano sul mio dispositivo?
Nella modalità gratuita sì: l'HTML che incolli viene analizzato nel browser e non viene inviato da nessuna parte, quindi puoi controllare anche pagine di un sito non ancora online.
Vale per qualsiasi sito?
Sì: il tag canonical è uno standard indipendente dalla lingua e dalla tecnologia del sito, quindi il controllo funziona identico su un sito italiano, su WordPress, su un e-commerce o su pagine statiche.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/seo/canonical-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/seo/canonical-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/canonical-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/canonical-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/canonical-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"url": "https://ejemplo.com"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.canonical_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |