hreflang mı canonical mı.
hreflang bir sayfanın dil sürümlerini bildirir, canonical ise aynı içeriğin tercih edilen adresini seçer; ikisi rakip değil ve biri diğerinin yerine kullanılamaz.
İki etiket sık karıştırılır çünkü ikisi de «bu sayfayla ilgili başka bir adres var» der. Ama söyledikleri şey birbirinin tersidir: hreflang eşitler arasında bir küme kurar, canonical ise bir tercih ilan eder ve diğerini eler.
Neden birlikte çalışırlar
Çok dilli bir sitede her dil sürümü ayrı bir sayfadır: farklı metin, farklı hedef kitle, farklı arama sorguları. Kopya değildirler. Bu yüzden her biri KENDİNE kanonik verir — yani «benim tercih edilen adresim benim» der — ve ayrıca hreflang kümesiyle kardeşlerini bildirir.
Bu iki bildirim aynı anda doğrudur ve birbirini bozmaz. Bozulma ancak biri diğerine kanonik verdiğinde başlar: o an motor iki sayfayı kopya sayar, birini eler ve elenen dilin tüm sorguları kaybolur. Hataların tamamı ayrı yazıldı.
Canonical'ın asıl işi
Kanonik adres esas olarak aynı içeriğin farklı adreslerden ulaşılabildiği durumlar içindir: eğik çizgili ve çizgisiz biçimler, sorgu dizesi taşıyan varyantlar, yazdırma sürümleri. Bunlar gerçekten kopyadır ve birini seçmek doğrudur.
Dil sürümleri bu tanıma girmez. Aynı ürünü iki dilde anlatan iki sayfa, aynı içeriğin iki adresi değil iki ayrı içeriktir. Kanonik adresin tanımı ve hreflang'in tanımı ayrı yazıldı.
Bu sitede nasıl
Üretilen her sayfa kendine kanonik veriyor ve bu ölçülerek doğrulanıyor — sapan tek sayfa yok. hreflang kümesi ise sayfanın gerçekten kaç dilde var olduğuna göre değişiyor: üç dilde var olan sayfa dört bağ taşıyor, yalnız Türkçe olan iki. İkinci durumda küme yalancı değil eksiksizdir, çünkü hreflang var olmayan bir çeviriyi bildiremez.
Ölçüt
- Ne söyler — hreflang: «Bu sayfanın şu dillerde sürümleri var» · canonical: «Bu içeriğin tercih edilen adresi budur»
- Sayfalar arası ilişki — hreflang: Eşit — hiçbiri diğerinin kopyası değil · canonical: Hiyerarşik — biri tercih edilir, diğeri elenir
- Dizine etkisi — hreflang: Hepsi dizine girer, doğru dil gösterilir · canonical: Yalnız tercih edilen adres dizine girer
- Karşılıklılık — hreflang: Zorunlu — tek yönlü bildirim yok sayılır · canonical: Gerekmez — tek yönlüdür
- Kendine referans — hreflang: Küme kendini içermeli · canonical: Her sayfa kendine kanonik verebilir ve vermelidir
- Birlikte kullanım — hreflang: Her dil sürümü KENDİNE kanonik verir · canonical: Dil sürümleri birbirine kanonik VERMEZ
- En sık hata — hreflang: Karşılıklılığın kopması · canonical: Çevirileri birbirinin kopyası ilan etmek
Çeviriler birbirine canonical vermeli mi?
Hayır, kesinlikle hayır. Bu en yıkıcı çok dilli hatadır: çeviriler birbirinin kopyası ilan edilir ve yalnız biri dizine girer, diğer diller aramadan kaybolur. Her dil sürümü kendine kanonik verir.
İkisini birlikte kullanmak çelişki yaratır mı?
Yaratmaz, hatta doğrusu budur. Her sayfa kendine kanonik verir ve aynı zamanda hreflang kümesiyle diğer dilleri bildirir. Çelişki ancak bir sayfa başka bir dile kanonik verirse doğar.
hreflang olmadan çok dilli site olur mu?
Olur ama motor hangi sürümü kime göstereceğini tahmin eder. hreflang bu tahmini bir bildirime çevirir; yanlış dilde sayfa gösterilmesi riski belirgin biçimde azalır.