Sito multilingua
Verifica i tag hreflang di una pagina e ti dice se le versioni in lingue diverse dello stesso contenuto sono collegate correttamente. Su un sito multilingua l'hreflang serve a mostrare a ogni utente la versione giusta — l'italiano a chi cerca in italiano, l'inglese agli altri — ed è una delle configurazioni SEO che si sbaglia più facilmente.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Cosa fanno gli hreflang
Quando la stessa pagina esiste in più lingue, gli hreflang dicono a Google quale versione servire a seconda della lingua e del paese di chi cerca. Senza, il motore può mostrare la pagina inglese a un utente italiano, o considerare le varie versioni dei doppioni. Con hreflang corretti, ogni visitatore arriva sulla versione nella sua lingua e le pagine non si fanno concorrenza. È fondamentale per chi ha un sito in italiano e inglese, o serve mercati diversi con la stessa lingua.
L'errore più comune: i link di ritorno mancanti
Gli hreflang devono essere reciproci: se la pagina italiana indica quella inglese, la pagina inglese deve indicare a sua volta quella italiana. Se manca anche solo uno di questi rimandi, Google ignora l'intera annotazione e la configurazione non serve a niente. È l'errore che rovina la maggior parte delle implementazioni. Lo strumento controlla che ogni versione dichiarata rimandi indietro alle altre e ti segnala i collegamenti a senso unico da sistemare.
Codici lingua e x-default
I codici devono seguire lo standard: “it” per l'italiano, “en-GB” o “en-US” quando distingui il paese, non sigle inventate come “it-IT” usato a caso o “ita”. Un codice sbagliato viene scartato. Serve anche il valore x-default, la versione da mostrare a chi non rientra in nessuna lingua prevista. Lo strumento verifica la validità di ogni codice, la presenza dell'x-default e la coerenza tra le versioni. Incolli l'HTML e il controllo è gratis nel browser; l'analisi diretta da URL costa $0.002 a pagina.
Casi d'uso
Sito aziendale in italiano e inglese
Un'azienda di Milano con sito bilingue scopre che le pagine italiane rimandano a quelle inglesi ma non viceversa: Google ignorava tutti gli hreflang. Sistemati i link di ritorno, gli utenti italiani smettono di ricevere la versione inglese nei risultati.
E-commerce che vende in più paesi
Un negozio online che spedisce in Italia, Francia e Spagna verifica che ogni scheda prodotto colleghi correttamente le tre versioni linguistiche e includa l'x-default, così ogni cliente vede i prezzi e la lingua giusti per il suo paese.
Portale con codici lingua sbagliati
Un portale turistico usava codici come “ita” e “ing” inventati: il controllo li segnala tutti come non validi e chi lo gestisce li corregge con gli standard “it” e “en”, facendo finalmente funzionare la selezione della lingua.
Domande frequenti
Perché i miei hreflang non funzionano anche se ci sono?
Quasi sempre perché mancano i link di ritorno: gli hreflang devono essere reciproci. Se la pagina italiana indica l'inglese ma l'inglese non indica l'italiano, Google scarta tutto. Lo strumento individua proprio questi rimandi mancanti.
Che codice devo usare per l'italiano?
Basta “it” per l'italiano in generale; usi “it-IT”, “it-CH” e simili solo se distingui davvero il paese. L'importante è seguire lo standard: codici inventati vengono ignorati. Il controllo verifica la validità di ognuno.
Cos'è l'x-default e mi serve?
È la versione da mostrare a chi non rientra in nessuna delle lingue previste, tipicamente una pagina di scelta o quella in inglese. È consigliato su un sito multilingua: lo strumento segnala se manca.
È gratis?
Sì, incollando l'HTML il controllo gira nel browser senza costi né limiti. A pagamento è solo l'analisi diretta da URL, a $0.002 a pagina, comoda per verificare molte pagine in una volta.
I dati vengono inviati a un server?
No, nella modalità gratuita l'HTML resta nel tuo browser e non lascia il dispositivo, quindi puoi controllare anche un sito multilingua ancora in preparazione senza pubblicarlo.
Funziona con hreflang messi nella sitemap invece che nell'HTML?
Questo strumento legge gli hreflang inseriti nell'HTML della pagina. Se li dichiari nella sitemap, quella va verificata con lo strumento dedicato alle sitemap: qui incolli il codice della pagina.
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/hreflang-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/hreflang-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/hreflang-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/hreflang-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/hreflang-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.hreflang_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. |