Il peggior bug hreflang che ho spedito è stato un cambio di modello di una riga che ha preso quattro versioni linguistiche dall'indice Google' s. Il parziale della testa ha reso un tag canonico, e qualcuno lo ha refactorizzato in modo che il canonico fosse costruito dalla locale predefinita piuttosto che da quella corrente Ogni pagina tradotta ha iniziato a dichiarare la pagina inglese come canonica Le annotazioni hreflang erano intatte e ancora perfette Erano anche completamente irrilevanti, perché non è possibile servire un URL che è stato canonizzato fuori dall'indice.
Niente si è rotto Le pagine ancora caricate Il traffico dai mercati non inglesi è diminuito nell'arco di circa tre settimane, che è più o meno il tempo impiegato da Google per rielaborare tutto, e quando è stato ovvio la causa era cinque commit indietro.
Canonica e hreflang sono le due annotazioni che più probabilmente verranno confuse tra loro e le due che più probabilmente si annulleranno a vicenda Questa guida copre ciò che ciascuno sostiene, la regola che le mantiene compatibili e le combinazioni specifiche che vanno male Si trova sotto il guida completa di hreflang, accanto 12 errori hreflang comuni.
tl; dr: Un tag canonico dice & quot; di questi URL quasi duplicati, indicizza questo.& quot; Un'annotazione hreflang dice & quot;questi URL sono alternati localizzati, servono quello giusto per utente.& quot; Rispondono a domande diverse e non devono contraddirsi La regola è che ogni pagina si canonizza a se stessa, e hreflang descrive le relazioni tra quelle pagine autocanoniche Canonicalizzando una versione linguistica all'altra la rimuove dall'indice e rende inutile l'insieme hreflang, perché canonico è il segnale più forte.
Cosa rivendica un tag canonico?
Un tag canonico nomina l'URL preferito tra un gruppo di URL che servono sostanzialmente lo stesso contenuto:
<link rel="canonical" href="https://example.com/pricing" />
Esiste perché lo stesso contenuto è raggiungibile a molti URL: con e senza parametri di tracciamento, con e senza barra finale, attraverso una visualizzazione di stampa, attraverso un percorso di categoria e un percorso diretto Lasciato solo, Google ne sceglie uno e consolida i segnali di ranking su di esso Il tag canonico è il modo in cui fai quel pick da solo.
Due proprietà contano per questa discussione Innanzitutto, è un suggerimento, non una direttiva, anche se forte che Google segue per la maggior parte del tempo Secondo, e questa è la parte che morde, gli URL non canonici smettono di essere indicizzati a pieno titolo. I loro segnali sono piegati nel canonico Questo è il punto centrale del tag, ed è esattamente la cosa sbagliata da fare a una traduzione.
Cosa sostiene hreflang?
Hreflang fa un'affermazione completamente diversa:
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/preise" />
Dice: esiste un'altra versione di questa pagina, è rivolta ai parlanti tedeschi in Germania, ed ecco dove vive Non dice nulla su quale URL debba essere indicizzato Tutti i supplenti dovrebbero essere indicizzati, indipendentemente, ogni classifica nel proprio mercato Hreflang è un suggerimento di routing applicato al servizio, non un'istruzione di indicizzazione.
Mettete i due fianco a fianco e la differenza è netta:
| Canonico | Hreflang | |
|---|---|---|
| Metti in dubbio le risposte | Quale di questi URL dovrebbe essere indicizzato? | Quale versione dovrebbe vedere questo utente? |
| Effetto sugli altri URL | Smettono di essere indicizzati separatamente | Rimangono indicizzati, ciascuno nel suo mercato |
| Si applica a | Contenuti duplicati o quasi duplicati | Contenuti tradotti o regionalizzati |
| Direzione | Punti a un vincitore | Descrive un insieme simmetrico |
| potenza | Forte; solitamente seguito | Un suggerimento utilizzato per classificare e servire il tempo |
Le pagine tradotte non sono duplicati Sono contenuti diversi per pubblici diversi che risultano strutturalmente paralleli Trattandoli come duplicati con un canonico cross-language è l'errore di categoria alla radice di ogni errore riportato di seguito.
Qual è la regola?
Ogni pagina si canonizza a se stessa Hreflang descrive le relazioni tra quelle pagine autocanoniche.
Concretamente, la pagina dei prezzi in inglese riporta:
<link rel="canonical" href="https://example.com/pricing" />
<link rel="alternate" hreflang="en" href="https://example.com/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />
E la pagina dei prezzi tedesca porta l'identico blocco hreflang con un canonico diverso:
<link rel="canonical" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="en" href="https://example.com/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />
Stesso hreflang impostato su entrambi, canonica autoreferenziale su ciascuno Questo è l'intero modello Google documenta lo stesso requisito nel suo guida alle versioni localizzate: le annotazioni devono essere reciproche e gli URL che nominano devono essere quelli che desideri indicizzare.
Cosa succede quando il canonico punta attraverso le lingue?
La versione linguistica scompare.
Passeggiaci dentro La pagina francese dice & quot; indicizza la pagina inglese invece di me.& quot; Google obbliga e lascia cadere l'URL francese dall'indice La pagina inglese' s hreflang dice & quot; la versione francese è a questo URL.& quot; Google guarda quell'URL, trova che è canonizzato alla pagina in cui si trova già, e non ha nulla da servire agli utenti francesi Il set collassa in una pagina.
Il sintomo è una versione linguistica che viene scansionata, restituisce 200, contiene un buon contenuto tradotto e non si classifica mai In Search Console lo strumento di ispezione URL lo segnala come un'alternativa di un'altra pagina anziché come indicizzato Quel rapporto è il modo più veloce per confermare la diagnosi e, se stai inseguendo una versione linguistica che non si posizionerà, controllalo prima di ogni altra cosa.
Il motivo per cui vincono canonical è che i due segnali operano in fasi diverse La canonicalizzazione avviene durante l'indicizzazione; hreflang viene consultato durante il ranking e il serving Un URL che non entra mai nell'indice non è disponibile nella fase successiva.
E i parametri e i quasi duplicati all’interno di una lingua?
È qui che entrambi i segnali sono legittimamente in gioco contemporaneamente e la combinazione va bene purché si mantengano i livelli dritti.
Supponiamo che la pagina dei prezzi tedesca sia raggiungibile su /de/preise e /de/preise?utm_source=newsletter. L'URL parametrizzato si canonizza in /de/preise, che è corretto: sono veri e propri duplicati all'interno di una lingua L'insieme hreflang opera un livello più in alto, tra /pricing, /de/preise, e /fr/tarifs, e nomina solo la forma canonica di ciascuno.
Due regole lo tengono pulito:
- Hreflang nomina sempre gli URL canonici. Non puntare mai un'annotazione su un URL parametrizzato o comunque non canonico Il tag di ritorno su quell'URL non corrisponderà, perché la versione canonica è quella che trasporta il blocco.
- Canonicalizzare all'interno di una lingua, mai attraverso. Parametri, visualizzazioni di stampa, URL di sessione, tutto bene Un'altra lingua, mai.
La stessa logica copre l'impaginazione, gli URL sfaccettati e qualsiasi altro meccanismo di duplicazione Risolvilo all'interno del linguaggio, quindi lascia che hreflang descriva l'insieme risolto.
Hreflang aiuta con contenuti duplicati in tutte le regioni?
In parte, e vale la pena precisare la distinzione perché spesso è sopravvalutata.
Hreflang non deduplica Non dice a Google di ignorare la somiglianza tra le tue pagine inglesi negli Stati Uniti e nel Regno Unito Quello che fa è dire a Google che quelle pagine sono varianti regionali deliberate, il che cambia il modo in cui Google gestisce la somiglianza: invece di sceglierne una e filtrare l'altra, mantiene entrambe e seleziona per query e per utente.
Questo è il vantaggio pratico per i siti nella stessa lingua e multi-regione, ed è il motivo per cui questi siti hanno bisogno di hreflang più urgentemente rispetto ai siti multilingue. Due pagine in lingue diverse sono ovviamente documenti diversi. Due pagine in inglese con prezzi e ortografie diversi non sono ovviamente diverse da un crawler e senza l'annotazione una di esse perde.
Se le pagine regionali sono genuinamente identiche, parola per parola, la risposta onesta è che potresti non aver bisogno di pagine separate a tutti Hreflang non è un modo per giustificare contenuti quasi duplicati; è un modo per descrivere contenuti che è legittimamente differenziato dal mercato.
Come si fa a controllare i due insieme?
Una scansione che estrae entrambe le annotazioni risponde a questo in un unico passaggio Per ogni URL, vuoi due fatti: il suo canonico è uguale al proprio URL, e il suo set hreflang corrisponde ai suoi fratelli' Ordina per canonica e cerca gruppi in cui diversi URL condividono un canonico attraverso diversi percorsi linguistici Quel raggruppamento è il bug, ed è visibile a colpo d'occhio.
Per una sola pagina, curl esso e leggere insieme entrambi i tag:
curl -s https://example.com/de/preise | grep -E 'rel="(canonical|alternate)"'
Quello che stai controllando è che il canonico href è l'URL che hai appena recuperato e il blocco hreflang contiene una voce per questa pagina ' la propria posizione punta allo stesso URL. Questi due fatti sono coerenti è la maggior parte della battaglia.
Quindi controlla che i bersagli hreflang siano essi stessi autocanonici Un set può essere perfettamente reciproco e fallire comunque perché uno dei bersagli si canonizza altrove, che è il fallimento nella parte superiore di questo articolo e quello che è invisibile dalla pagina che stai guardando.
E il canonical e la sitemap?
Stesso principio, esteso Una mappa del sito dovrebbe elencare solo URL canonici e indicizzabili Se la tua mappa del sito porta annotazioni hreflang come xhtml:link voci, tali voci nominano gli stessi URL canonici dell'HTML.
La modalità di errore qui è una mappa del sito generata da una tabella di percorso piuttosto che dal set di URL indicizzabili, quindi elenca varianti parametrizzate o non canoniche insieme a quelle reali Google tratta l'inclusione della mappa del sito come un suggerimento di canonicalizzazione debole, quindi una mappa del sito che non è d'accordo con i tuoi tag canonici è un segnale più contraddittorio. Il Generatore di mappe del sito XML è un modo rapido per ricostruire un elenco pulito quando non sei sicuro di cosa ci sia attualmente e il strumento generatore Hreflang produce l'abbinamento xhtml:link blocco nel formato sitemap.
Domande frequenti
Qual è la differenza tra hreflang e canonica?
Un tag canonico nomina quale di diversi URL quasi duplicati deve essere indicizzato Un'annotazione hreflang dichiara che diversi URL sono alternati localizzati e aiuta i motori di ricerca a servire quello giusto per utente Consolida Canonical; hreflang differenzia.
Ogni versione linguistica dovrebbe canonicalizzarsi a se stessa?
Sì. Ogni pagina di un set hreflang deve avere un canonico autoreferenziale Canonicalizzare una pagina tradotta in un'altra lingua la rimuove dall'indice e rende inutile l'insieme hreflang.
Quale segnale vince se hreflang e canonical non sono d'accordo?
Canonica, in effetti La canonicalizzazione avviene al momento dell'indicizzazione e un URL che non è indicizzato non può essere servito a nessuno, qualunque cosa dicano le annotazioni hreflang.
Posso utilizzare i tag canonici su un sito multilingue a tutti?
Sì, e dovresti Usarli per risolvere la duplicazione all'interno di una lingua, come i parametri di tracciamento e le visualizzazioni di stampa Non usarli mai nelle lingue.
Hreflang corregge i contenuti duplicati tra le mie pagine negli Stati Uniti e nel Regno Unito?
Non deduplica, ma dice a Google che le pagine sono varianti regionali deliberate piuttosto che duplicati accidentali, quindi entrambi rimangono indicizzati e quello giusto viene servito per mercato. Questo è il motivo principale per cui i siti multiregione nella stessa lingua hanno bisogno di hreflang.
Hreflang dovrebbe puntare agli URL canonici?
Sempre. Puntando un'annotazione su un URL parametrizzato o non canonico si interrompe il tag di ritorno, perché il blocco vive sulla versione canonica anziché sulla variante che hai nominato.
Come faccio a capire se un canonico sta uccidendo una versione linguistica?
Eseguire l'URL attraverso Search Console's URL Strumento di ispezione Se riporta la pagina come alternativa di un altro URL anziché come indicizzata, una lingua canonica è la causa.
Gli URL della mappa del sito devono corrispondere ai miei tag canonici?
Sì. Le mappe del sito dovrebbero elencare solo URL canonici e indicizzabili Una mappa del sito che elenca varianti non canoniche aggiunge un segnale contraddittorio sopra i tag che hai già emesso.



