Hreflang etiketleri yazarken en sık tereddüt edilen noktalardan biri dil kodu formatıdır. Yayında olan örnekleri incelediğinizde bir kısım sitenin tr kullandığını, diğerlerinin tr-TR tercih ettiğini görürsünüz. Her iki format da çalışır; ancak "çalışır" ifadesi, ikisinin aynı şeyi yaptığı anlamına gelmez. Hedefleme açısından aralarında gerçek bir fark bulunur ve bu farkı anlamak, özellikle birden fazla Türkçe pazarı düşünen ya da ilerleyen dönemde yeni dil sürümleri eklemeyi planlayan siteler için karar değiştirecek niteliktedir.
Konu yalnızca sözdizimsel bir tercih değildir. tr yazdığınızda Google'a dil bilgisi vermiş olursunuz; tr-TR yazdığınızda bölge bilgisi de eklenir. Bu iki sinyal aynı kullanıcıyı hedefliyor gibi görünse de algoritmik olarak farklı yorumlanır. Nerede ayrıştıklarını anlamak için BCP 47 etiket yapısından başlamak gerekir.
BCP 47 etiketinin iki katmanı: dil ve bölge
Hreflang etiketlerinde kullanılan dil kodları BCP 47 standardına dayanır. Bu standart iki temel katmandan oluşur: dil kodu (ISO 639-1, iki harfli, küçük harf) ve bölge kodu (ISO 3166-1 alpha-2, iki harfli, büyük harf). İkisi birleştiğinde bir kısa çizgiyle ayrılır.
Türkçe için bu katmanlar şöyle kurulur:
- Dil kodu: tr (Türkçe)
- Bölge kodu: TR (Türkiye)
- Birleşik form: tr-TR
tr tek başına kullanıldığında Google bu etiketi "dil sinyali var, bölge sinyali yok" şeklinde okur. tr-TR kullanıldığında ise "Türkçe içerik, Türkiye bölgesi hedef" anlamına gelir. Bu iki okuma pratikte farklı sonuçlar doğurabilir; özellikle hreflang setinin karmaşıklaşmaya başladığı noktalarda.
Standart aynı zamanda daha uzun etiketlere de izin verir; örneğin script alt etiketiyle birlikte zh-Hant-TW (Geleneksel Çince, Tayvan) gibi üç parçalı formlar da geçerlidir. Türkçe için bu derinliğe inilmesini gerektiren bir senaryo pratikte karşılaşılmaz. Karar her zaman tr ile tr-TR arasında kalır.
tr etiketini tek başına kullanmak ne anlama gelir?
tr etiketini kullandığınızda Google'a şunu söylemiş olursunuz: "Bu sayfa Türkçe içeriğe sahip." Bölge belirtilmediği için algoritma Türkçe konuşan kullanıcıların tamamına bu sayfayı uygun görebilir: Türkiye'de yaşayanlar, Almanya'daki Türk diasporası veya Türkçeyi tercih eden başka coğrafyalardaki kullanıcılar.
Bu genişlik bazı senaryolarda avantajdır. Bir diaspora sitesi veya Türkçe konuşan küresel bir kitleye hitap eden içerik üretiyorsanız, tr daha kapsayıcı bir sinyal üretir. Algoritma yalnızca bu etikete bakmaz; kullanıcının IP adresi, tarayıcı dil ayarları ve arama geçmişi de birlikte değerlendirilir.
Bölge sinyali eksikliği, algoritmanın diğer coğrafi göstergelere daha fazla ağırlık vermesine yol açar. Türkiye'den gelen bir kullanıcı için çoğu durumda doğru sayfayı sunar; ancak bu eşleşme, tr-TR'ye kıyasla daha dolaylı bir yoldan gerçekleşir. Hreflang setinizde başka bölge etiketleri yoksa ve Türkiye IP'si belirgin şekilde baskın bir trafik kaynağıysa, tr kullanımının pratikte önemli bir dezavantaj yaratmayabileceği doğrudur. Ama bu durum, bölge kodunu atlamanın doğru bir karar olduğu anlamına gelmez.
Kısaca: tr dili tanımlar, coğrafyayı algoritmaya bırakır.
tr-TR etiketinin hedefleme farkı
tr-TR kullandığınızda Google'a dili ve hedef bölgeyi birlikte bildirirsiniz. Bu, Türkiye pazarını önceliklendirmeniz gerektiğinde daha net bir sinyal üretir. Bölge kodunun pratik fark yarattığı iki senaryo öne çıkar.
Aynı dilde birden fazla ülke hedefleniyorsa bölge kodu zorunlu hale gelir. Türkçe yalnızca Türkiye'de değil, Kıbrıs'ta ve diaspora topluluklarının yoğun olduğu pek çok Avrupa ülkesinde de kullanılmaktadır. Bu pazarları ayrı ayrı hedefleyen bir site için tr-TR ve tr-CY gibi etiketler, her ülkeye özgü içerik sunumunu mümkün kılar. Yalnızca tr kullansaydınız, iki URL arasındaki ayrımı Google'a bildirmenin teknik bir yolu kalmazdı.
Aynı ülkeyi farklı dillerde hedefliyorsanız bölge kodu yine devreye girer. Türkiye'de hem Türkçe hem İngilizce içerik sunuyorsanız, tr-TR ve en-TR etiketleri coğrafi hedeflemeyi tutarlı biçimde kurar. Bu yapı, aynı coğrafyaya yönelik iki farklı dil sürümünün açıkça tanımlanmasını sağlar.
Hreflang etiketlerini oluştururken dil-bölge çiftlerini tek listeden üretmek, özellikle büyük setlerde format tutarlılığını korur; bu üretimde varsayılan öneri genellikle tr-TR formatındadır. Türkiye odaklı bir Türkçe site için bu varsayılanı değiştirmek için özel bir gerekçe bulunması gerekir.
Format ve sözdizimi: büyük-küçük harf ve kısa çizgi kuralı
BCP 47 standardına göre dil kodu küçük harf, ülke kodu büyük harf olarak yazılır ve ikisi bir kısa çizgiyle ayrılır. Pratikte ise farklı varyantlarla sıkça karşılaşılır:
- tr-TR: Doğru. BCP 47 standardına tam uyum: dil küçük harf, ülke büyük harf, aralarında kısa çizgi.
- tr-tr: Teknik olarak yanlış, ancak çoğu arama motoru bunu yorumlar. Küçük hata gibi görünse de büyük sitelerde tutarsızlık yaratma riski taşır.
- tr_TR: Yanlış. Alt çizgi, yerel ayar (locale) tanımlamalarında kullanılır; BCP 47'de kabul edilmez. Bu hata özellikle programatik üretim sırasında yapılır.
- TR-TR: Yanlış. Dil kodunun büyük harf yazılması standartta yer almaz.
Google belirli bir tolerans gösterse de format tutarsızlıkları büyük kataloglarda beklenmedik davranışlara yol açabiliyor. Yüzlerce URL içeren bir sette bir kısım etiketin tr-TR, diğerlerinin tr-tr veya tr_TR olduğu bir karmaşa, tarayıcı davranışını zorlaştırır. Bölge kodunun her zaman büyük harf ve ayracın her zaman kısa çizgi olarak tutulması bu riski baştan ortadan kaldırır.
Sitemap yöntemi veya HTTP header yöntemi kullanılırken de aynı kural geçerlidir. Hreflang'ın uygulandığı katman ne olursa olsun format standardı değişmez.
Tek Türkçe sürüm için pratik karar
Sitenizin yalnızca bir Türkçe sürümü varsa, Kıbrıs'a ya da diasporaya özel ayrı bir sayfa oluşturulmamışsa, karar görece basit bir çerçeveye oturur.
Türkiye pazarı öncelikliyse tr-TR kullanın. Bölge sinyali, Türkiye'den gelen kullanıcılarla sayfanın eşleşme gücünü artırır. Bu seçim, ticari Türkçe sitelerin büyük çoğunluğu için doğru karardır. Ayrıca gelecekte tr-CY veya diaspora odaklı bir sürüm eklemeyi planlıyorsanız, baştan tr-TR ile başlamak bu genişlemeyi kolaylaştırır; mevcut etiketi değiştirmek yerine yeni bir katman eklersiniz.
Küresel Türkçe kitleye hitap ediyorsanız tr tercih edilebilir. Coğrafi hedeflemenin arka planda kaldığı, Türkçe dil topluluğunu bir bütün olarak ele alan içerik projelerinde tr daha geniş bir kapsam sağlar. Bu, çoğu site için istisnai bir durumdur.
x-default değerinin konumlandırılması da bu kararla doğrudan bağlantılıdır. Tek bir Türkçe sürümünüz varsa x-default genellikle bu URL'ye işaret eder; tr-TR ve x-default kombinasyonu bu yapının en temiz halini oluşturur.
Türkçe ve İngilizce içeriği aynı sitede yönetirken de dil kodu seçimi bütünüyle ele alınmalıdır. Hreflang eklendiğinde bu tercih, canonical ile birlikte bir sistem olarak düşünülmek zorundadır; bir karar diğerini kısıtlar.
tr ve tr-TR aynı anda kullanılabilir mi?
Teknik olarak evet; ancak aynı URL için değil. Her hreflang değeri ayrı bir URL'yi temsil etmelidir. Aynı URL'ye hem tr hem tr-TR etiketi eklemek geçersizdir; Google bu çelişkiyle karşılaştığında ikisini de görmezden gelebilir.
Geçerli senaryo şudur: farklı iki URL mevcutsa, biri tr etiketiyle, diğeri tr-TR etiketiyle işaretlenebilir. Örneğin genel Türkçe kitleye yönelik bir sayfa ile Türkiye'ye özel uyarlanmış bir sayfa gerçekten farklı içerik taşıyorsa bu yapı anlamlıdır. Ancak çoğu sitede bu ayrım gereksizdir; tek bir URL ve tutarlı bir etiket yeterlidir.
İki etiketi aynı anda kullanmayı gerektiren tablo, gerçek bir içerik veya pazar farklılaşması olmadan kurulamaz. Sadece iki etiket olsun diye iki URL oluşturmak, kopya içerik riski ve canonical kararları arasında gereksiz bir gerilim yaratır. Aynı dilde farklı ülkeleri hedeflemek üzerine incelediğimizde İngilizce özelinde bu çerçeveyi detaylandırdık; en-US, en-GB, en-AU setinde içerik ve coğrafi ayrımın nasıl kurulduğu, tr/tr-TR kararı için doğrudan bir referans noktası sunar.
Hreflang etiket formatı seçimi, sitenin genel dil ve bölge yapısıyla tutarlı olmalıdır. tr-TR kullandığınızda, ilerleyen dönemde eklenecek bölge varyantları için de bir şablon kurmuş olursunuz. Bu şablon ilk etiketten başlar.
İngilizce içerik eklendiğinde de aynı mantık devreye girer: en mi, en-US mi, en-GB mi: bu karar baştan verilmesi gereken bir yapı sorusudur. Türkçe için yerleştirilen BCP 47 mantığı, sonraki dil eklemelerinde aynı prensiple uygulanır. Format küçük görünür; ama yanlış kurulmuş bir etiket seti büyüdükçe daha pahalı bir düzeltme gerektirir. Yüzlerce URL içeren bir katalogda tüm etiketleri aynı anda güncellemek, yeniden yayınlamak ve indekslenmeyi beklemek ciddi bir operasyonel yük demektir. Karar baştan doğru verilirse bu yük hiç ortaya çıkmaz.