Blog · 28 Ekim 2026

Hreflang Nedir? Çok Dilli Sitelerde Doğru Dil ve Bölge Etiketleme

Hreflang, bir sayfanın hangi dil ve isteğe bağlı olarak hangi bölge için hazırlandığını ve aynı içeriğin diğer dil veya bölge sürümlerinin hangi adreslerde bulunduğunu arama motorlarına bildiren bir işarettir. Google bu bilgiyi, arama yapan kişinin diline ve konumuna en uygun sürümü sonuçlarda göstermek için kullanır. Hreflang bir sıralama sinyali değildir; doğru sayfanın doğru kitleye gösterilmesini sağlayan bir eşleştirme mekanizmasıdır.

Türkçe, İngilizce ve Almanca sürümü olan bir sitede hreflang olmadan Google, Almanya'daki bir kullanıcıya Türkçe sayfayı gösterebilir ya da aynı dilin farklı bölge sürümlerini (örneğin İngiltere ve ABD için hazırlanmış iki İngilizce sayfa) kopya içerik gibi değerlendirip yanlış olanı seçebilir. Bu rehberde dil ve bölge kodlarını, üç uygulama yolunu kod örnekleriyle, karşılıklılık kuralını, canonical ile ilişkisini, en sık yapılan hataları ve sonucu Search Console'da nasıl izleyeceğinizi adım adım anlatıyoruz.

Hreflang ne işe yarar, ne işe yaramaz?

Hreflang'in çözdüğü sorun şudur: aynı içeriğin birden fazla dil veya bölge sürümü varsa, arama motoru hangisini kime göstereceğini kendi tahminine bırakmak zorunda kalmamalıdır. Hreflang bu tahmini sizin beyanınızla değiştirir.

Hreflang'in yaptıkları:

Hreflang'in yapmadıkları:

Hreflang, teknik SEO denetiminin uluslararası sitelere özgü bir parçasıdır. Tek dilli ve tek ülkeye hitap eden bir sitede hreflang'e ihtiyacınız yoktur.

Dil ve bölge kodları: tr, tr-TR, en-GB ve x-default

Hreflang değeri iki parçadan oluşur: zorunlu dil kodu ve isteğe bağlı bölge kodu. Dil kodu ISO 639-1 standardındaki iki harfli koddur. Bölge kodu ise ISO 3166-1 Alpha-2 standardındaki iki harfli ülke kodudur. İkisi tire ile birleştirilir ve dil her zaman önce gelir.

DeğerAnlamıNe zaman kullanılır
trTürkçe, bölge belirtilmemişTürkçe konuşan herkese tek sayfa sunuyorsanız
tr-TRTürkçe, TürkiyeTürkiye'ye özgü fiyat, teslimat veya mevzuat içeriği varsa
de-DEAlmanca, AlmanyaAlmanya'ya özel sürüm
de-ATAlmanca, AvusturyaAvusturya'ya özel sürüm (aynı dil, farklı bölge)
en-GBİngilizce, Birleşik KrallıkSterlin fiyatlı veya İngiltere'ye özel içerik
en-USİngilizce, ABDDolar fiyatlı veya ABD'ye özel içerik
x-defaultVarsayılan sürümHiçbir dil veya bölge eşleşmediğinde gösterilecek sayfa

Koddaki büyük-küçük harf Google için önemli değildir, ancak okunabilirlik açısından dil kodunu küçük, bölge kodunu büyük yazmak yerleşik bir alışkanlıktır.

Kodlarla ilgili kurallar

x-default ne işe yarar?

x-default, kullanıcının diliyle veya bölgesiyle eşleşen bir sürüm bulunmadığında gösterilecek sayfayı belirtir. Genellikle dil seçim sayfası ya da sitenin en geniş kitleye hitap eden sürümü (çoğu zaman İngilizce) x-default olarak işaretlenir. Zorunlu değildir ama önerilir; özellikle ziyaretçinin dilini tespit edip yönlendiren bir ana sayfanız varsa o sayfa x-default için doğal adaydır.

Hreflang uygulamanın üç yolu

Google hreflang bilgisini üç yerden okur: HTML sayfasının head bölümündeki link etiketleri, HTTP yanıt başlığı ve XML site haritası. Üçü de eşdeğerdir; aynı sayfa grubu için birini seçip tutarlı biçimde uygulamanız yeterlidir. Aynı bilgiyi birden fazla yöntemle vermek hata değildir ama çelişki riskini artırır ve bakımı zorlaştırır.

1. HTML link etiketi

En yaygın yöntemdir. Her dil sürümünün head bölümüne, kendisi dahil tüm sürümleri listeleyen link etiketleri eklenir. Örneğin Türkçe, İngiltere İngilizcesi ve Almanca sürümü olan bir ürün sayfası için:

<head>
  <link rel="alternate" hreflang="tr-TR" href="https://www.ornek.com/tr/urun/" />
  <link rel="alternate" hreflang="en-GB" href="https://www.ornek.com/en-gb/product/" />
  <link rel="alternate" hreflang="de-DE" href="https://www.ornek.com/de/produkt/" />
  <link rel="alternate" hreflang="x-default" href="https://www.ornek.com/en-gb/product/" />
</head>

Bu dört satırlık blok, grubun her üç sayfasında da aynen yer almalıdır. Dikkat edilecek noktalar:

Dil sayısı arttıkça her sayfanın head'i uzar. 20 dilli bir sitede her sayfada 21 satır demektir; bu sorun değildir ama sayfa ağırlığını ve hata riskini artırır. Çok dilli büyük sitelerde sitemap yöntemi bu yüzden tercih edilir.

2. HTTP başlığı

PDF, Word belgesi gibi HTML olmayan dosyalarda head bölümü yoktur. Bu dosyaların dil sürümlerini işaretlemek için sunucu yanıtına Link başlığı eklenir:

Link: <https://www.ornek.com/tr/katalog.pdf>; rel="alternate"; hreflang="tr-TR",
      <https://www.ornek.com/en-gb/catalogue.pdf>; rel="alternate"; hreflang="en-GB",
      <https://www.ornek.com/de/katalog.pdf>; rel="alternate"; hreflang="de-DE"

Başlık, her dosyanın yanıtında aynı listeyle döndürülmelidir. Apache, Nginx veya uygulama katmanında dosya türüne göre başlık ekleme kuralı yazarak uygulanır. HTML sayfalarda da kullanılabilir ama bakımı ve denetimi diğer iki yöntemden zordur; tarayıcıda sayfa kaynağına bakarak görünmez, ancak yanıt başlıklarını inceleyerek doğrulanır.

3. XML site haritası

Çok sayıda sayfa ve dil olan sitelerde en pratik yöntemdir, çünkü sayfa kodunu değiştirmeden tek bir yerden yönetilir. Her URL için bir url öğesi açılır ve içine grubun tüm sürümleri xhtml:link olarak yazılır:

<?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.ornek.com/tr/urun/</loc>
    <xhtml:link rel="alternate" hreflang="tr-TR" href="https://www.ornek.com/tr/urun/" />
    <xhtml:link rel="alternate" hreflang="en-GB" href="https://www.ornek.com/en-gb/product/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.ornek.com/en-gb/product/" />
  </url>
  <url>
    <loc>https://www.ornek.com/en-gb/product/</loc>
    <xhtml:link rel="alternate" hreflang="tr-TR" href="https://www.ornek.com/tr/urun/" />
    <xhtml:link rel="alternate" hreflang="en-GB" href="https://www.ornek.com/en-gb/product/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.ornek.com/en-gb/product/" />
  </url>
</urlset>

Burada da her sürüm kendi url öğesine sahiptir ve her öğe tüm grubu listeler. xhtml ad alanının (namespace) urlset etiketinde tanımlanması unutulmamalıdır; tanımlanmazsa dosya geçersiz olur. Site haritasının genel yapısı, boyut sınırları ve Search Console'a gönderimi için sitemap rehberimize bakabilirsiniz.

Hangi yöntemi seçmeli?

DurumÖnerilen yöntemGerekçe
2-4 dil, şablon tabanlı siteHTML link etiketiŞablonda bir kez kurulur, sayfa kaynağında kolayca denetlenir
Çok dil, binlerce URLXML site haritasıSayfa ağırlığı artmaz, merkezi yönetim
PDF ve diğer dosyalarHTTP başlığıHead bölümü olmayan dosyalar için tek seçenek
Şablona erişim kısıtlı (hazır platform)XML site haritasıKod değiştirmeden uygulanabilir

Karşılıklılık kuralı (return tag)

Hreflang'in en kritik ve en çok ihlal edilen kuralı karşılıklılıktır: A sayfası B'yi kendi alternatifi olarak gösteriyorsa, B sayfası da A'yı göstermelidir. Bu geri dönüş bağlantısına "return tag" denir. Karşılıklı olmayan bir hreflang ilişkisi Google tarafından yok sayılabilir.

Bu kuralın mantığı güvenliktir: başka biri kendi sitesinden sizin sayfanıza hreflang vererek sayfanızı kendi grubuna dahil edemez. İlişki ancak iki taraf da onaylarsa geçerli olur.

Pratikte karşılıklılık genellikle şu durumlarda bozulur:

En güvenli yaklaşım, hreflang bloğunu her sayfada elle yazmak yerine tek bir veri kaynağından (çeviri eşleştirme tablosu) otomatik üretmektir. Böylece bir sürüm eklendiğinde veya silindiğinde tüm grup aynı anda güncellenir.

Hreflang ve canonical birlikte nasıl kullanılır?

Canonical etiketi "bu içeriğin asıl adresi budur" der; hreflang ise "bu içeriğin diğer dillerdeki karşılıkları şunlardır" der. İkisi birbirini tamamlar ama yanlış kurulduğunda çelişir. Canonical'ın genel mantığını canonical URL rehberimizde ayrıntılı anlattık; burada yalnızca hreflang ile kesişimine odaklanıyoruz.

Temel kural: her dil sürümü canonical olarak kendisini göstermelidir ve hreflang bloğunda yalnızca canonical URL'ler yer almalıdır.

<!-- https://www.ornek.com/de/produkt/ sayfasında -->
<link rel="canonical" href="https://www.ornek.com/de/produkt/" />
<link rel="alternate" hreflang="tr-TR" href="https://www.ornek.com/tr/urun/" />
<link rel="alternate" hreflang="de-DE" href="https://www.ornek.com/de/produkt/" />

Yaygın ve ciddi bir hata, tüm dil sürümlerinin canonical'ını tek bir dile (örneğin İngilizce sürüme) vermektir. Bu durumda diğer sürümlere "ben asıl sayfa değilim, asıl sayfa İngilizce olan" demiş olursunuz. Google canonical olmayan sayfaları dizinden çıkarma eğiliminde olduğu için Almanca ve Türkçe sayfalar arama sonuçlarında görünmeyebilir; hreflang da canonical olmayan URL'ye işaret ettiği için geçersiz kalır.

Filtre veya parametre içeren varyasyonlarda (örneğin ?renk=kirmizi) canonical parametresiz sayfaya verilir ve hreflang bloğu da yalnızca parametresiz, canonical sürümler arasında kurulur. Parametreli URL'lere hreflang eklemeyin.

Sık yapılan hreflang hataları

Yanlış dil veya bölge kodu

en-UK, tr-TU, jp, EU gibi geçersiz değerler etiketin göz ardı edilmesine yol açar. Avrupa Birliği veya "Latin Amerika" gibi bölge grupları için standart bir ülke kodu yoktur; es-419 gibi bölge numaraları Google tarafından desteklenmeyebilir. Bölge grubuna hitap ediyorsanız ilgili her ülke için ayrı satır ekleyin ya da yalnızca dil kodunu kullanın.

Tek yönlü etiket

Türkçe sayfa İngilizce sürümü gösteriyor ama İngilizce sayfada Türkçe sürüme dönüş bağlantısı yok. Karşılıklılık kuralı ihlal edildiği için ilişki geçersiz sayılabilir. Denetimde her çifti iki yönden kontrol edin.

Yönlendirilen URL'ye hreflang

Hreflang'deki adres 301 veya 302 ile başka bir yere yönleniyorsa, Google bu adresi geçerli bir alternatif olarak kabul etmeyebilir. Bu genellikle site taşıma veya URL yapısı değişikliğinden sonra hreflang bloğu güncellenmediğinde olur. Hreflang'deki her URL doğrudan 200 durum kodu döndürmelidir. Taşıma sürecindeki yönlendirme kuralları için 301 yönlendirme rehberimize bakabilirsiniz.

Noindex veya engellenmiş sayfaya hreflang

Bir dil sürümü noindex ile dizin dışı bırakılmışsa veya robots.txt ile taramaya kapatılmışsa, o sayfaya verilen hreflang anlamsızdır. Google noindex sayfayı sonuçlarda göstermeyeceği için onu bir alternatif olarak sunamaz; robots.txt ile engellenmiş sayfanın ise etiketlerini okuyamaz. Henüz hazır olmayan bir çeviriyi noindex ile bekletiyorsanız, hreflang grubuna da yayına alınana kadar eklemeyin.

404 veren veya silinmiş sayfaya hreflang

Kaldırılan çevirilerin hreflang bloklarında kalması, grubun geri kalanında karşılıklılığı ve tutarlılığı bozar. Bir sürümü sildiğinizde tüm gruptan çıkarın.

Göreli URL kullanımı

href="/en-gb/product/" gibi göreli adresler hreflang için uygun değildir. Protokol ve alan adı dahil mutlak adres kullanın; www ve www'siz, http ve https farkına da dikkat edin.

Dil ile içeriğin uyuşmaması

Etiket de-DE diyor ama sayfanın gövdesi çoğunlukla Türkçe veya menüler çevrilmiş, içerik çevrilmemiş. Google sayfanın gerçek dilini kendisi de tespit eder; etiket ile içerik çeliştiğinde etiket zayıflar.

Her sürüme aynı sayfayı göstermek

Tüm hreflang değerlerinin aynı URL'ye (genellikle ana sayfaya) işaret etmesi, özellikle eklenti veya tema ayarlarındaki yanlış yapılandırmalarda görülür. Hreflang sayfa düzeyinde çalışır: ürün sayfasının alternatifi, diğer dildeki aynı ürün sayfasıdır, ana sayfa değil.

Dil klasör yapısı seçimi: alt klasör, alt alan adı veya ülke uzantısı

Hreflang hangi URL yapısında olursa olsun çalışır, ancak yapı seçimi bakım maliyetini, otorite paylaşımını ve hedefleme sinyalini doğrudan etkiler. Bu karar genellikle site kurulurken verilir ve sonradan değiştirmek bir site taşıması demektir.

YapıÖrnekAvantajDezavantaj
Alt klasörornek.com/de/Tek alan adı, otorite tüm dillerde paylaşılır, kurulum ve bakım en kolayıÜlke sinyali yalnızca hreflang ve içerikle verilir
Alt alan adıde.ornek.comFarklı sunucu veya ekip tarafından yönetilebilirArama motorları alt alanları kısmen ayrı varlık gibi değerlendirebilir, bakım ayrı yapılır
Ülke uzantısı (ccTLD)ornek.deEn güçlü ülke sinyali, yerel kullanıcıda güvenHer alan adı ayrı otorite kazanmak zorunda, maliyet ve yönetim yükü yüksek
URL parametresiornek.com?lang=deTeknik olarak kolayÖnerilmez; tarama ve dizinleme açısından belirsizdir

Kaynakları sınırlı, birkaç dilde içerik yayınlayan çoğu işletme için alt klasör yapısı en dengeli seçimdir. ccTLD yapısı ise yerel varlığı güçlü, her ülkede ayrı pazarlama yürüten büyük markalar için anlamlıdır. Hangi yapıyı seçerseniz seçin, dil sürümleri arasında birbirine bağlantı veren görünür bir dil seçici bulundurun; bu hem kullanıcıya hem tarayıcıya diğer sürümleri keşfettirir.

Otomatik yönlendirmeye dikkat

Ziyaretçinin IP adresine veya tarayıcı diline göre zorunlu yönlendirme yapmak, Googlebot'un sürümlerin bir kısmını hiç görememesine yol açabilir; Googlebot çoğunlukla ABD kaynaklı IP adreslerinden tarar. Yönlendirme yerine bir öneri bandı göstermek ("Bu sayfanın Türkçe sürümü var, geçmek ister misiniz?") ve kullanıcının seçimini hatırlamak daha güvenlidir. Otomatik yönlendirme yapan bir dil seçim sayfanız varsa, onu x-default olarak işaretleyin.

Adım adım hreflang kurulumu

  1. Envanter çıkarın. Hangi diller ve bölgeler için ayrı sürüm sunduğunuzu ve her sürümün gerçekten farklı bir kitleye hitap edip etmediğini listeleyin. İçerik aynı ve yalnızca bölge farklıysa (örneğin aynı İngilizce sayfa), bölgesel sürüme gerçekten ihtiyacınız olup olmadığını sorgulayın.
  2. Eşleştirme tablosu kurun. Her içerik için tüm dil sürümlerinin URL'lerini tek satırda tutan bir tablo veya veritabanı alanı oluşturun. Çevirisi olmayan sayfalar için hücre boş kalır.
  3. Kodları belirleyin. Her sürüm için geçerli ISO dil ve gerekirse ülke kodunu yazın. x-default için hangi sayfanın kullanılacağına karar verin.
  4. Yöntemi seçin. Sayfa sayısına ve platforma göre HTML etiketi, sitemap veya HTTP başlığı. Tek yöntemde kalın.
  5. Otomatik üretin. Hreflang bloğunu eşleştirme tablosundan şablon veya site haritası üreticisi aracılığıyla oluşturun; böylece karşılıklılık kendiliğinden korunur.
  6. Canonical'ları kontrol edin. Her sürümün kendine canonical verdiğinden emin olun.
  7. Durum kodlarını doğrulayın. Hreflang'deki tüm URL'lerin 200 döndürdüğünü, noindex taşımadığını ve robots.txt ile engellenmediğini kontrol edin.
  8. Yayın sonrası izleyin. Birkaç hafta boyunca dil ve ülke bazlı arama performansını takip edin (aşağıdaki bölüm).

Hreflang denetim kontrol listesi

Search Console'da ülke ve dil bazlı performans takibi

Hreflang'in çalışıp çalışmadığını anlamanın en somut yolu, doğru sürümün doğru ülkede gösterim ve tıklama alıp almadığına bakmaktır. Google Search Console'un arama performansı raporunda ülke boyutu bulunur; sonuçları ülkeye göre filtreleyip sayfa boyutuyla birlikte inceleyebilirsiniz. Raporların genel kullanımını Google Search Console rehberimizde anlattık.

Pratik bir kontrol şöyle yapılır:

  1. Performans raporunda ülke filtresini örneğin Almanya olarak ayarlayın.
  2. Sayfalar sekmesine geçin ve en çok gösterim alan URL'lere bakın.
  3. Listede /de/ sürümleri yerine /tr/ veya /en-gb/ sayfaları baskınsa, Almanya'daki kullanıcıya yanlış sürüm gösteriliyor demektir.
  4. Aynı kontrolü her hedef ülke için tekrarlayın.

Ayrıca her dil sürümünü ayrı bir URL öneki mülkü olarak (örneğin https://www.ornek.com/de/) eklemek, o sürümün verisini ayrıştırmayı kolaylaştırır. Google'ın eski Search Console arayüzünde yer alan uluslararası hedefleme raporu kullanımdan kaldırıldığı için hreflang hatalarını doğrudan listeleyen ayrı bir rapor beklememek gerekir; doğrulama büyük ölçüde URL denetleme aracı, kendi taramanız ve ülke bazlı performans verisi üzerinden yapılır. URL denetleme aracında bir sayfanın Google tarafından seçilen canonical adresini görmek, canonical ile hreflang çelişkilerini yakalamanın en hızlı yoludur.

Birden fazla dil sürümünü ve ülkeyi aynı anda izlemek manuel filtrelerle zahmetli hale geldiğinde, SEO Analytics Search Console verisini ülke ve sayfa kırılımında bir arada göstererek hangi sürümün hangi pazarda görünürlük kaybettiğini fark etmeyi kolaylaştırır. Aynı dilin iki bölge sürümünün aynı sorgularda birbirinin yerine geçmesi ise kanibalizasyona benzer bir tablo üretir; bu deseni kanibalizasyon rehberimizdeki yöntemle tespit edebilirsiniz.

Sonuçları yorumlarken dikkat

Sık sorulan sorular

Tek dilli bir siteye hreflang eklemeli miyim?

Hayır. Hreflang yalnızca aynı içeriğin birden fazla dil veya bölge sürümü olduğunda anlamlıdır. Tek dilli ve tek ülkeye hitap eden bir sitede hreflang eklemek bir fayda sağlamaz.

Hreflang sıralamayı yükseltir mi?

Doğrudan yükseltmez. Hreflang, Google'ın kullanıcıya hangi dil veya bölge sürümünü göstereceğini belirlemesine yardım eder. Dolaylı etkisi, doğru sürümün gösterilmesiyle tıklama oranının ve kullanıcı memnuniyetinin iyileşmesidir.

x-default kullanmak zorunlu mu?

Zorunlu değildir ama önerilir. Kullanıcının diliyle eşleşen bir sürüm olmadığında hangi sayfanın gösterileceğini sizin belirlemenizi sağlar. Dil seçim sayfası veya en geniş kitleye hitap eden sürüm genellikle x-default için uygundur.

Hreflang ve html lang özniteliği aynı şey mi?

Hayır. html etiketindeki lang özniteliği sayfanın dilini tarayıcılara ve ekran okuyuculara bildirir; diğer sürümlerle ilgili bilgi taşımaz. Hreflang ise sürümler arasındaki ilişkiyi tanımlar. Google dil tespiti için lang özniteliğine güvenmez ama erişilebilirlik için doğru ayarlanması yine de önemlidir; ikisini birlikte ve tutarlı kullanın.

Diğer yazılar

Hreflang Nedir? Çok Dilli Sitelerde Doğru Dil ve Bölge Etiketleme | SEO Analytics