Teknoloji

Hreflang Kurulumu: Canonical, x-default ve Sitemap

Hreflang: Dil ve Bölge Sürümlerini Doğru Eşleştirin

Hreflang, aynı sayfanın farklı dil veya bölgelere yönelik sürümlerini Google’a bildirir. Örneğin Almanya’daki bir kullanıcıya hangi Almanca ya da Türkçe sürümün uygun olduğunu anlamaya yardımcı olabilir; kullanıcının bulunduğu ülke tek başına dilini belirlemez. Hreflang bir yönlendirme komutu veya sıralama garantisi değildir.

Bu rehber ccTLD, alt dizin ve alt alan yapılarında sayfa eşleştirmeyi; canonical ve x-default kararlarını; HTML, HTTP başlığı ve XML sitemap uygulamasını ele alır. Önce her sayfanın dilini, hedef bölgesini ve eşdeğerlerini belirleyin, ardından tek bir tutarlı URL haritasından bildirim üretin.

Hreflang Nedir, Nasıl Bir İlişki Kurar?

Hreflang aynı amaca hizmet eden yerelleştirilmiş sayfaları ilişkilendirir. Türkçe ürün sayfası Almanca eşdeğeriyle eşleştirilir; sitenin bütün Türkçe sayfaları Almanca ana sayfaya bağlanmaz. Google sayfanın dilini görünen içerikten belirler; hreflang veya HTML lang değeri tek başına içerik dilini belirlemez.

Her sürüm kendisini ve diğer alternatifleri listelemeli; bağlantılar karşılıklı olmalıdır. A, B’yi bildiriyorsa B de A’yı bildirmelidir. Eksik dönüş bağlantısı ilgili ilişkinin yok sayılmasına yol açabilir; tek eksik bağlantı bütün diğer karşılıklı ilişkilerin mutlaka geçersiz olduğu anlamına gelmez. Tam ve aynı kümenin tek kaynaktan üretilmesi bakım hatalarını azaltır.

Canonical kopyalar arasındaki tercih edilen URL’yi, hreflang ise dil/bölge ilişkisini bildirir. Ana içeriği çevrilmiş sayfaları sırf çeviri oldukları için tek bir dile canonical ile birleştirmeyin. Ayrı dizine alınması amaçlanan farklı yerelleştirilmiş sayfalarda kendine canonical uygundur. Ancak aynı dilde benzer veya kopya bölgesel sayfalar için Google, tercih edilen sürümü seçip canonical ve hreflang’ı birlikte kullanmayı önerir. Hreflang kullanırken mümkünse aynı dilde canonical seçin; her bölgesel kopyanın zorunlu olarak kendine canonical vermesi genel bir kural değildir.

ccTLD ve Farklı Alan Adları Arasında Hreflang

Ülke uzantıları, örneğin .de veya .com.tr, bölgesel hedefleme ve marka tercihiyle ilişkilidir. Kayıt koşulları ve yönetim maliyetlerini ayrıca inceleyin. Google bazı ccTLD’leri genel uzantı gibi ele alır; her ülke kodlu uzantıyı aynı hedefleme kuralına sokmayın. Hreflang alternatifleri farklı alan adlarında olabilir; her tarafta karşılıklı sayfa eşleşmesi gerekir.

Almanca ürün sayfası bir domainde, Türkçe eşdeğeri başka domainde olabilir. HTML head, HTTP Link başlığı veya XML sitemap yöntemlerinden biriyle karşılıklı bildirin. Sitemap içindeki başka hosta ait xhtml:link href alternatifi, o URL’yi sitemap’in loc kaydı olarak sunmakla aynı şey değildir. Yalnız alternatif bağlantı başka domainde diye her sitemapi her Search Console mülküne eklemek zorunlu olmaz. Çok hostlu loc listesi veya başka hostta barındırılan sitemap için aşağıdaki çapraz gönderim kuralları geçerlidir.

Ne zaman ccTLD? Markanız ülke bazlı ayrı yasal oluşumlara sahipse, fiyatlama ve içerik tamamen yerelse ve pazarlama ekipleri bağımsız çalışıyorsa, ccTLD doğal bir yol olur. Bu noktada ccTLD mi gTLD mi, uluslararası SEO’da hangi yol ne zaman doğru sorusunu daha geniş bir çerçevede ele alan yazıya da bakabilirsiniz.

Uzantı yatırımı ayrıca bir yönetişim kararıdır. ICANN yeni gTLD turu rehberi konuya ek bağlam sağlar; farklı TLD seçmek hreflang kurallarını değiştirmez.

Alt Dizin: Ortak Host Üzerinde Dil Sürümleri

site.com/tr/ ve site.com/de/ gibi alt dizinler ortak host ve URL düzeni sağlayabilir. Altyapının mutlaka tek sunucu olması gerekmez. Her dilin taranabilir URL’si, içerik eşleşmesi ve canonical politikası yine ayrı doğrulanmalıdır.

Ana sayfa İngilizce, /tr/ Türkçe, /de/ Almanca ise bu sayfaları aynı ana sayfa kümesinde eşleştirebilirsiniz. x-default için dil seçici veya desteklenmeyen dillerin yönlendirileceği uygun bir varsayılan sayfa seçin. Ziyaretçinin IP’sine göre zorunlu dil değişikliği uygulamak yerine bütün sürümlere erişilebilir bağlantılar sağlayın.

Hreflang içerik seçimiyle ilgilidir; trafik yönlendirmesi, veri konumu ve gecikme ayrıca planlanır. DNS geo-routing ve çok bölgeli mimariler rehberi altyapı tasarımı için bağlam sunar.

Alt Alan: Host Ayrımı ile Dil Ayrımını Karıştırmayın

tr.site.com ve de.site.com farklı hostlarda yayınlanabilir; aynı markaya ait olmaları karşılıklılık gereğini kaldırmaz. Ancak alt alan adındaki tr veya de metni tek başına Google’a içerik dilini ya da hedef ülkeyi bildirmez. Görünen içerik ve açık hreflang eşleştirmesini birlikte değerlendirin.

tr.site.com/ ile www.site.com/tr/ aynı Türkçe içeriği ve aynı hedef kitleyi sunuyorsa bunlar iki farklı dil alternatifi değildir. Önce tercih edilen URL’yi belirleyin; kalıcı taşınmada uygun yönlendirme, tutulacak kopyalarda canonical stratejisi kullanın. Gerçek bölgesel fark varsa aynı dildeki bölgesel kopyalara ilişkin canonical kuralını ayrıca uygulayın. IP’ye göre zorunlu yönlendirme ise kullanıcıların ve Google’ın bütün sürümlere ulaşmasını engelleyebilir: Googlebot genellikle ABD’den gelir ve Accept-Language başlığı göndermez. Google’ın farklı bölgelerden tüm varyasyonları keşfedeceğine güvenmeyin; ayrı URL ve görünür dil bağlantıları sağlayın.

x-default: Eşleşmeyen Diller İçin Varsayılan Sayfa

x-default, tanımlı dil/bölge alternatifleri kullanıcının dil ayarıyla eşleşmediğinde önerilen sayfayı belirtir. İlk ziyaretçiyi tespit etmez, tercih kaydetmez ve yönlendirme çalıştırmaz. Bu davranışlar varsa uygulamanın ayrı işlevleridir.

x-default zorunlu değildir. Dil seçici için tasarlanmıştır; Google herhangi bir sayfanın da varsayılan hedef olabileceğini belirtir. Uygulama ve örnekler için Google’ın hreflang dokümantasyonunu inceleyin.

Varsayılan hedef mutlaka ülkesiz veya nötr olmak zorunda değildir. Örneğin mevcut İngilizce sayfa uygun bir varsayılan hedef olabilir; fiyat, hukuk ve teslimat bilgilerinin eşleşmeyen kullanıcılar için anlamını değerlendirin. Ürün kümelerinde tek bir genel dil seçici kullanıyorsanız seçicinin kullanıcıyı doğru ürün bağlamına götürdüğünü kontrol edin.

Üç Eşdeğer Yöntem: HTML, HTTP Başlığı ve XML Sitemap

HTML head içinde

Aşağıdaki etiketler HTML belgesinin düzgün oluşturulmuş head bölümüne yerleştirilir. Aynı ürünün her sürümü kendisi dahil aynı alternatif kümesini bildirir. Örnek adresler açıklama içindir; çalışan uç nokta olarak test edilmemiştir. x-default seçicisi de bu ürün için karşılıklı ilişkiyi sağlamalıdır.

<link rel="alternate" hreflang="tr-TR" href="https://www.site.com/tr/urun/a/" />
<link rel="alternate" hreflang="de-DE" href="https://www.site.com/de/produkt/a/" />
<link rel="alternate" hreflang="en" href="https://www.site.com/en/product/a/" />
<link rel="alternate" hreflang="x-default" href="https://www.site.com/language-select/" />

Dil için ISO 639-1, isteğe bağlı bölge için ISO 3166-1 alpha-2 kullanın: tr-TR, de-DE, en gibi. tr-DE hayali değildir; Almanya’daki Türkçe konuşanları hedefler. Yalnız ülke kodu yeterli değildir; İngiltere için en-GB kullanılır, en-UK bölge hedefi geçerli değildir. Hreflang değerleri büyük/küçük harfe duyarsızdır; bölgeyi büyük harfle yazmak yaygın biçimdir. Google’ın desteklediği yazı sistemi kodları ve diğer ayrıntılar kendi belgesinde açıklanır; bütün BCP 47 etiketlerinin desteklendiğini varsaymayın.

HTTP başlıklarında (PDF gibi dosyalar)

PDF gibi HTML olmayan içerikler için GET yanıtındaki Link başlığı kullanılabilir. Her PDF yanıtında kendisi dahil aynı alternatifler bulunmalıdır. Aşağıdaki örnek tek başlık satırıdır; satırın ekranda kayması ayrıca HTTP satır katlama talimatı değildir.

Link: <https://www.site.com/de/broschuere.pdf>; rel="alternate"; hreflang="de-DE", <https://www.site.com/tr/brosur.pdf>; rel="alternate"; hreflang="tr-TR", <https://www.site.com/language-select/>; rel="alternate"; hreflang="x-default"

Başlığın reverse proxy veya CDN katmanında kaybolmadığını kontrol edin. Genel dil seçici kullanılacaksa ilgili belgenin dil seçeneklerine erişimi koruyun; başka amaçlı sayfaları sırf aynı dilde oldukları için alternatif saymayın.

XML sitemap ile

Aşağıda aynı hosttaki üç ürün sürümü ve bu ürün için kullanılan x-default seçicisini kapsayan tam sitemap belgesi vardır. XML bildirimi, urlset kökü, sitemap ve XHTML ad alanları, her URL için ayrı loc ve her kayıtta aynı dört alternatif bulunur. Örneği site kökünde barındırılan bir sitemap olarak düşünün. HTML örneğiyle aynı Almanca URL kullanılır; ccTLD örneğiyle karıştırılmaz.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://www.site.com/tr/urun/a/</loc>
    <xhtml:link rel="alternate" hreflang="tr-TR" href="https://www.site.com/tr/urun/a/" />
    <xhtml:link rel="alternate" hreflang="de-DE" href="https://www.site.com/de/produkt/a/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://www.site.com/en/product/a/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.site.com/language-select/" />
  </url>
  <url>
    <loc>https://www.site.com/de/produkt/a/</loc>
    <xhtml:link rel="alternate" hreflang="tr-TR" href="https://www.site.com/tr/urun/a/" />
    <xhtml:link rel="alternate" hreflang="de-DE" href="https://www.site.com/de/produkt/a/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://www.site.com/en/product/a/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.site.com/language-select/" />
  </url>
  <url>
    <loc>https://www.site.com/en/product/a/</loc>
    <xhtml:link rel="alternate" hreflang="tr-TR" href="https://www.site.com/tr/urun/a/" />
    <xhtml:link rel="alternate" hreflang="de-DE" href="https://www.site.com/de/produkt/a/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://www.site.com/en/product/a/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.site.com/language-select/" />
  </url>
  <url>
    <loc>https://www.site.com/language-select/</loc>
    <xhtml:link rel="alternate" hreflang="tr-TR" href="https://www.site.com/tr/urun/a/" />
    <xhtml:link rel="alternate" hreflang="de-DE" href="https://www.site.com/de/produkt/a/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://www.site.com/en/product/a/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.site.com/language-select/" />
  </url>
</urlset>

Sitemap’in loc kayıtları ile xhtml:link alternatiflerini ayrı değerlendirin. Standart kapsam aynı host ve uygun dizindir; Google farklı sitelerin loc kayıtlarını tek merkezden göndermeyi de destekler. Search Console yolunda kapsanan bütün sitelerin sahipliğini doğrulayıp sitemap veya indeksini gönderin. robots.txt yolunda ise her site için yalnız o sitenin loc URL’lerini içeren ayrı sitemap hazırlayın; her sitenin kendi robots.txt dosyası onun sitemap’ine işaret etsin. Yalnız başka domaindeki hreflang href bağlantısı bu çapraz loc gönderimi değildir. Sitemap sunmak tarama veya dizine alma garantisi vermez.

Kodlama ve canonical uyumu

Canonical ve hreflang kararlarını aynı URL haritasında tutun; aynı dilde bölgesel kopyaları her sayfa kendine canonical vermeli şeklinde zorlamayın. Aramada yer alması amaçlanan alternatifler erişilebilir ve taranabilir olmalı, noindex ile engellenmemelidir. Kopyaları birleştirmek için noindex veya robots.txt yerine uygun canonical/yönlendirme stratejisi kullanın. Sitemap loc listesi de tercih edilen URL politikanızla tutarlı olmalıdır.

Test ve Yayın Kontrolü

Önce küçük bir eşdeğer sayfa kümesi seçin. Kaynak HTML, gerçek HTTP yanıtı veya XML çıktısında kendine referansı, dönüş bağlantılarını, tam URL’leri ve kodları kontrol edin. Yönlenen, bulunamayan veya noindex verilen hedefleri inceleyin. Search Console URL Denetleme ile örnek sayfaların tarama, dizine alma ve Google tarafından seçilen canonical durumunu değerlendirin; araç bütün hreflang kümesinin eksiksiz onaylandığını göstermez.

  • Kod: en-UK yerine en-GB; tr-DE ise Almanya için Türkçe anlamıyla geçerli bir örnektir.
  • Karşılıklılık: A’nın B’ye ve B’nin A’ya bildirimini ayrı doğrulayın.
  • Erişim: IP veya tarayıcı dili yönlendirmesi alternatif URL’yi saklıyor mu?
  • Canonical: gerçek çeviri, aynı dilde bölgesel benzerlik ve yalnız URL kopyasını ayırın.
  • Sitemap: kök/ad alanları, ayrı loc kayıtları, tutarlı alternatifler ve çapraz gönderim yetkisi doğru mu?

Varsayımsal bir örnekte /de/ ve /tr/ mevcutken ana sayfa ziyaretçiyi IP’ye göre zorla başka sürüme gönderiyor olsun. Çözüm araştırması yalnız x-default eklemekle bitmez: doğrudan erişimi, görünür dil seçimini, eşdeğer sayfa haritasını ve canonical ilişkisini birlikte kontrol edin.

Google’ın yerelleştirilmiş sürümler rehberi kodlar ve yöntemler için birincil kaynaktır. İçerik, URL veya dil sayısı değiştiğinde aynı kontrolleri yeniden uygulayın.

Hreflang Haritasını Güncel Tutun

Yeni dil ekleme, ürün kaldırma veya URL değişikliği hreflang kümesini etkiler. Hangi içeriklerin eşdeğer olduğunu ve hangi URL’nin tercih edildiğini tek bir kayıtta tutun. Hreflang, yönlendirme, canonical ve kullanıcıya sunulan dil bağlantıları aynı planla güncellenmelidir.

Üç uygulama yöntemi Google açısından eşdeğerdir; üçünü birden kullanmanın ek arama faydası yoktur. Bakımını güvenilir biçimde yapabildiğiniz yöntemi seçin. Birden fazla yöntem zaten kullanılıyorsa çelişmediklerini doğrulayın. XML’in ayrıştırılması yalnız sözdizimi kontrolüdür; sayfa içeriği, HTTP erişimi ve Google’ın seçimi ayrıca incelenir.

İlgili mimari kararları için alan adı stratejisi ve uluslararası SEO, yeni gTLD turu ve DNS geo-routing ve çok bölgeli mimari rehberlerine bakabilirsiniz. Alan adı ve altyapı seçimini, sayfa bazındaki dil eşleştirmesinden ayrı ama tutarlı biçimde yönetin.

Resmî Teknik Kaynaklar

Sıkça Sorulan Sorular

HTML head, GET yanıtındaki HTTP Link başlığı veya XML sitemap ile bildirilebilir. Üç yöntem Google açısından eşdeğerdir; hepsini birden kullanmak ek arama faydası sağlamaz. Seçilen yöntemde her sürümü ve kendine referansı karşılıklı olarak tutarlı üretin.

Hayır. Gerçek çevirileri sırf çeviri oldukları için tek bir dile birleştirmeyin. Ayrı dizine alınması amaçlanan farklı sayfalarda kendine canonical uygundur; aynı dilde benzer veya kopya bölgesel sayfalarda tercih edilen sürüm, canonical ve hreflang birlikte değerlendirilir. Mümkünse canonical aynı dilde olmalıdır.

Zorunlu değildir. Eşleşmeyen dil ayarları için varsayılan hedefi bildirir; dil seçici için tasarlanmıştır ama herhangi bir uygun sayfa kullanılabilir. Nötrlük teknik zorunluluk değildir. x-default tercih kaydetmez veya kullanıcı yönlendirmesi çalıştırmaz.

Yalnız xhtml:link href içinde başka domainin alternatifini belirtmek, onu loc olarak sunmakla aynı değildir. Çok siteli loc gönderiminde Google’ın sahiplik doğrulamalı Search Console yolu veya site başına sitemap ve robots.txt yolu uygulanır. Her sitemapi her mülke eklemek genel zorunluluk değildir.

Alan adı sahipliği, kayıt koşulları, içerik yönetimi ve teknik ekibin sürdürebileceği yapıyı değerlendirin. ccTLD ülke hedeflemesinde rol oynayabilir; alt dizin ortak host, alt alan ayrı platform kullanımına uygun olabilir. Hiçbiri sıralama garantisi vermez ve hepsinde doğru sayfa eşleştirmesi gerekir.
↑