Blog · SEO

Hreflang: Dil ve Ülke Versiyonları Doğru Şekilde Nasıl Kurulur?

hreflang, Google'a her kullanıcıya bir sayfanın hangi dil veya ülke versiyonunu göstereceğini söyler. Bu rehber, tanımlamanın üç yolunu, Google'ın gerçekten uyguladığı kod kurallarını, karşılıklı bağlantıları, x-default'u, canonical ile etkileşimi ve hreflang denetleyicisinin bulduğu hatalar için adım adım çözümleri anlatır.

Searvia · 24.10.2026 · 13 dk okuma

Uzun bir masada, farklı renklerde sade kapaklı özdeş kitapçık setlerini eşleştiren iki çevirmen

Kısaca: hreflang, Google'a her arama yapan kullanıcıya bir sayfanın hangi dil veya ülke versiyonunu göstereceğini söyler. Her versiyon, kendisi de dahil tüm versiyonları ISO 639-1 dil kodu ve isteğe bağlı ISO 3166-1 alpha-2 bölge koduyla (en, de, en-GB, pt-BR) ve isteğe bağlı bir x-default yedeğiyle listeler. Bağlantılar mutlak olmalı ve çift yönlü verilmelidir; aksi halde Google bunları yok sayar. Her versiyonun kendine işaret eden bir canonical'ı olmalıdır; başka bir dile işaret eden canonical tüm kurguyu iptal eder. Google sayfa dilini içerikten algılar, bu yüzden çevirinin gerçekten yapılmış olması gerekir.

Uluslararası siteler trafiği sessiz bir şekilde kaybeder. İngilizce sayfa Almanya'da sıralanır, Meksika için bir versiyon hazırladığınız halde İspanyolca sayfa Meksika'da görünür ya da İngiltere mağazası Amerikalı kullanıcılara sterlin fiyatlarıyla çıkar. Sitede bozuk bir şey yoktur; Google sadece hangi versiyonu göstereceğini tahmin etmiştir. hreflang, bu tahmini ortadan kaldırmanın yoludur.

Bu rehber, Google'ın dokümantasyonuna göre hreflang'in nasıl çalıştığını, çoğu siteyi yanıltan kod kurallarını, canonical ile etkileşimini, ücretsiz hreflang checker aracımızın neleri test ettiğini ve her sorunun nasıl çözüleceğini anlatır.

hreflang ne yapar, ne yapmaz

hreflang notasyonları, birbirinin versiyonu olan bir sayfa kümesini tanımlar: aynı içeriğin başka bir dildeki hali veya aynı dilin başka bir ülkeye uyarlanmış hali. Google bunları sonuçlarda eşleşen versiyonu göstermek için kullanır.

Yapmadıkları:

hreflang eklemenin üç yolu

Google, üç yöntemin "Google açısından eşdeğer" olduğunu söyler. Sayfa başına birini kullanın; karıştırmak yalnızca hata yapılacak yer sayısını artırır.

1. <head> içinde HTML link öğeleri, en yaygın tercih. https://example.com/en/pricing sayfasında:

<link rel="alternate" hreflang="en" href="https://example.com/en/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/en/pricing" />

Almanca ve Fransızca sayfalar da birebir aynı dört satırı taşır. Google, etiketlerin "düzgün biçimlendirilmiş bir <head> bölümü içinde" olmasını ister; tarayıcının gövdeye taşıdığı bir görsel ya da bağlantıların üstündeki kapatılmamış bir etiket gibi başıboş bir öğe head'i erken bitirebilir.

2. HTTP Link başlıkları, PDF gibi HTML olmayan dosyalar için tek seçenek:

Link: <https://example.com/en/guide.pdf>; rel="alternate"; hreflang="en",
      <https://example.com/de/guide.pdf>; rel="alternate"; hreflang="de"

Google, başlığın tüm versiyonlar için aynı olması gerektiğini söyler.

3. XML sitemap, şablon değişikliği gerektirmediği için büyük sitelerde kullanışlıdır:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/en/pricing</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/pricing"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/preise"/>
  </url>
  <url>
    <loc>https://example.com/de/preise</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/pricing"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/preise"/>
  </url>
</urlset>

Her <url>, kendisi de dahil tüm versiyonları listeler.

Google'ın uyguladığı kurallar

Karşılıklı bağlantılar ve kendine referans

"İki sayfa birbirine işaret etmiyorsa etiketler yok sayılır." Bozuk kurulumların çoğunun ardındaki kural budur. İngilizce sayfa Almanca sayfayı listeliyor ama Almanca sayfa İngilizceyi listelemiyorsa, Google çifti çöpe atar. Google ayrıca "her dil versiyonunun kendisini de listelemesi gerektiğini" söyler.

Dil ve bölge kodları

"Yalnızca ISO 639-1'de listelenen dil kodları ve ISO 3166-1 Alpha 2'de listelenen bölge kodları desteklenir." Önce dil gelir; bölge isteğe bağlıdır. Google ayrıca birden fazla alfabeyle yazılan diller için zh-Hant ve zh-Hans gibi alfabe alt etiketlerini ve zh-Hans-US gibi kombinasyonları destekler.

KodGeçerli mi?Neden
enEvetİngilizce, her bölge
en-GBEvetBirleşik Krallık için İngilizce
pt-BREvetBrezilya için Portekizce
zh-HantEvetÇince, Geleneksel alfabe
es-419Google için hayırBölge ISO 3166-1 alpha-2 kodu olmalı; 419 (Latin Amerika) bu değil
en-UKEtkisizISO kodu GB; Google, UK, EU ve UN'nin etkisi olmadığını söylüyor
beBelarusça anlamına gelirTek başına ülke kodu geçersizdir; be Belarusça dilidir, Belçika değil
en_USHayırAlt çizgi değil, kısa çizgi kullanın
engGoogle için hayırÜç harfli ISO 639-2 kodları desteklenmez; en kullanın

Latin Amerika genelinde İspanyolca için ya tek bir ortak İspanyolca versiyon için es kullanın ya da hedeflediğiniz ülkeleri (es-MX, es-AR, es-CO) aynı URL'ye işaret edecek şekilde listeleyin.

x-default

"Ayrılmış x-default değeri, hiçbir dil/bölge kullanıcının tarayıcı ayarıyla eşleşmediğinde kullanılır." Bunu bir dil seçici sayfaya veya ana uluslararası versiyonunuza yönlendirin. İsteğe bağlıdır ama faydalıdır: olmazsa, sunmadığınız bir dilde arama yapan kullanıcı Google'ın seçtiği versiyonu görür.

Mutlak URL'ler

"Alternatif URL'ler, protokol dahil tam nitelikli olmalıdır." https://example.com/de/ çalışır; /de/ ve //example.com/de/ çalışmaz.

hreflang ve canonical etiketleri

İkisi uyumlu olmalıdır. Her versiyonun canonical'ı İngilizce ya da ana versiyona değil, kendisine işaret etmelidir. Google'ın canonicalization rehberi, "aynı dilde bir canonical sayfa belirtmenizi" ya da "aynı dilde canonical sayfa yoksa mümkün olan en iyi alternatif dili" belirtmenizi söyler ve hreflang kümelerinin canonical seçimini etkilediğini, karşılıklı bağlantı veren URL'leri tercih ettiğini not eder.

Klasik hata: her dil versiyonunun <link rel="canonical" href="https://example.com/en/..."> taşıması. Bu, Google'a diğer versiyonların İngilizce sayfanın kopyası olduğunu söyler ve bunlar hreflang notasyonlarıyla birlikte dizinden düşer.

Kaçınılması gereken iki çakışma daha: yönlendirme yapan hreflang URL'leri (son URL'yi listeleyin) ve noindex taşıyan hreflang URL'leri (Google'ın dizinleyemediği bir versiyon gösterilemez).

Site yapısı ve otomatik yönlendirmeler

Google'ın çok bölgeli rehberi URL yapılarını karşılaştırır:

YapıÖrnekGoogle'dan notlar
Ülke alan adıexample.deNet coğrafi hedefleme; pahalı, alan adı başına bir ülke
Alt alan adıde.example.comKurulumu kolay; kullanıcılar hedeflemeyi URL'den anlamayabilir
Alt dizinexample.com/de/Düşük bakım, aynı host
URL parametresiexample.com?loc=deÖnerilmez

Hangisini seçerseniz seçin, ziyaretçileri IP'ye veya tarayıcı diline göre otomatik yönlendirmeyin. Google, bunun "kullanıcıların (ve arama motorlarının) sitenizin tüm versiyonlarını görmesini engelleyebileceğini" ve Googlebot'un "genellikle ABD'den geldiğini" söyler. Bunun yerine bir öneri banner'ı gösterin ve arama sonuçlarını hreflang'e bırakın.

Searvia hreflang checker nasıl çalışır

hreflang checker, website SEO checker aracımızla aynı motoru kullanır: bir alan adı veya sayfa adresi girersiniz, araç o sayfayı (yalnızca alan adı girerseniz ana sayfanızı) ve çevresindeki site dosyalarını yaklaşık 20 saniyede 38 kontrolle denetler ve bu aracın konusu olan üç kontrolü en başa koyar. Test ettikleri tam olarak şunlardır.

Dil versiyonları, hreflang (düşük öncelik). Checker, yönlendirmeleri takip edip son adrese ulaştıktan sonra o sayfanın HTML'indeki her <link rel="alternate" hreflang="..." href="..."> öğesini okur.

Sayfa dili (düşük öncelik). <html> öğesinde lang özniteliği varsa geçer ve dilini gösterir; yoksa uyarır.

Canonical URL (orta öncelik). Canonical etiketi sayfanın kendisine işaret ediyorsa geçer; eksikse veya başka bir adrese işaret ediyorsa uyarır ve o adresi gösterir.

Neleri test etmez

Sonucu okumak

MesajAnlamıÇözüm
No language versions are declared (fine for a single-language site).Sayfada hreflang bağlantısı yokTek dilli sitelerde yapılacak bir şey yok; aksi halde 1. adıma bakın
N language versions are declared correctly.Kodlar geçerli ve kendine referans var; x-default yoksa mesaj bunu belirtir (isteğe bağlı)Yine de karşılıklı bağlantıları elle kontrol edin
The language versions do not include this page itself.Sayfa diğerlerini listeliyor ama kendisini listelemiyor2. adım
Some language codes are not valid.En az bir satırda kırmızı çarpı var3. adım
The page does not declare its language.<html> üzerinde lang yok4. adım
The canonical URL points to another address.Canonical farklı bir sayfayı gösteriyor5. adım

A+ ile F arasındaki genel not, öncelikle ağırlıklandırılmış (yüksek 10, orta 5, düşük 2; uyarılar yarım puan alır) 38 kontrolün tamamını kapsar ve "Fix these first" listesi ile paylaşılabilir bir rapor içerir.

Her hreflang sorunu nasıl çözülür

1. Dil versiyonları tanımlanmamış, ama var

2. Dil versiyonları bu sayfanın kendisini içermiyor

Mevcut sayfa için kendi koduyla bir satır ekleyin. Bir şablonda bu genellikle diller üzerindeki döngünün geçerli dili atlaması anlamına gelir; bu koşulu kaldırın. Kendi URL'sinin canonical URL ile, yani aynı protokol, host ve sondaki eğik çizgi kuralıyla aynı olduğundan emin olun.

3. Bazı dil kodları geçerli değil

4. Sayfa dilini bildirmiyor

Dili kök öğeye ekleyin, örneğin <html lang="en"> veya <html lang="pt-BR">. Google bunu dil algılamak için kullanmaz, ancak MDN'in anlattığı gibi tarayıcılar, çeviri araçları ve ekran okuyucular kullanır.

5. Canonical başka bir adrese işaret ediyor

Çok dilli bir sitede bu çoğunlukla diller arası canonical sorunudur. Her versiyonun canonical'ını kendi URL'sine çevirin. Canonical aynı sayfaya başka bir biçimde işaret ediyorsa (https yerine http ya da www olmadan), nihai adresinizle birebir eşleşmesini sağlayın.

6. Karşılıklı bağlantılar eksik (checker tarafından test edilmez)

İki versiyonu yan yana açıp hreflang listelerini karşılaştırın: kümeler aynı olmalıdır. Farklıysa neden neredeyse her zaman onları üreten şablon veya eklentidir; üreticiyi bir kez düzeltmek her sayfayı düzeltir.

Uygulamalı örnek (varsayımsal)

Aşağıdaki varsayımsal bir örnektir, gerçek veri değildir. Kestrel Gear, uydurma bir outdoor markası, example.com adresinde İngilizce yayın yapıyor ve /de/, /fr/ ve /es/ versiyonları var. Alman kullanıcılar sürekli İngilizce sayfalara düşüyor. hreflang checker şunu raporluyor:

SatırURLUygun mu
en-UKhttps://example.com/Hayır (→ en-GB)
de-DEhttps://example.com/de/Evet
frhttps://example.com/fr/Evet
es_EShttps://example.com/es/Hayır

Canonical: "The canonical URL points to the page itself." Sayfa dili: en.

es_ES üzerindeki çarpı bir biçim hatasıdır. en-UK üzerindeki çarpı "→ en-GB" notuyla gelir: Google bölge olarak UK'yi kabul etmez, bu yüzden İngilizce sayfanın kullanılabilir bir notasyonu yoktu. Almanca sayfanın kaynağına bakınca üçüncü bir sorun çıkıyor: canonical'ı İngilizce ana sayfaya işaret ediyor, bu yüzden Google /de/ sayfasını kopya saymış. Çözümler:

20 dakikalık hreflang kontrol listesi

Searvia nasıl yardımcı olur

Ücretsiz hreflang checker, girdiğiniz sayfanın hreflang bağlantılarını, sayfa dilini ve canonical'ını, website SEO checker aracının diğer kontrolleriyle birlikte tek bir paylaşılabilir raporda doğrular. Searvia hesabında Search Console bağlayarak her dil versiyonu için ülkeye göre tıklamaları ve konumları görebilir, site audit aracını her hafta çalıştırarak başka yere işaret eden canonical'ları, dil versiyonları arasındaki yinelenen başlıkları ve bozuk sayfaları yakalayabilirsiniz. Web sitelerinin yanı sıra uygulama da yayınlıyorsanız, App Store yerelleştirme rehberimiz aynı sorunu mağaza tarafında ele alır. Teknik kontrol listesinin tamamı için teknik SEO denetimi rehberine bakın.

Sık Sorulan Sorular

hreflang nedir?
hreflang, Google'a bir sayfanın dil ve ülke versiyonlarını bildiren bir notasyondur; böylece her kullanıcıya doğru versiyonu gösterebilir. HTML head içinde, HTTP Link başlığında veya XML sitemap'te hreflang özniteliğine sahip rel="alternate" bağlantıları olarak yazılır. Her versiyon, kendisi de dahil tüm versiyonları en, de veya en-GB gibi bir kodla ve isteğe bağlı olarak x-default yedeğiyle listeler.
hreflang sıralamayı iyileştirir mi?
hreflang bir sayfanın daha üst sıralarda yer almasını sağlamaz. Google'ın belirli bir dil veya bölgede hangi versiyonu göstereceğini seçmesine yardımcı olur; böylece Alman bir kullanıcı İngilizce sayfa yerine Almanca sayfayı görür. Olmadan da Google doğru versiyonu bulabilir, ancak versiyonlar birbirine benzediğinde sonuçlarda yanlış dilin çıkması gibi hatalar daha olasıdır.
hreflang'de x-default nedir?
x-default, kümedeki hiçbir dil veya bölge kullanıcının tarayıcı ayarlarıyla eşleşmediğinde gösterilecek sayfa için ayrılmış bir hreflang değeridir. Çoğunlukla bir dil seçici sayfa ya da ana uluslararası versiyondur. Google yedek sayfa için bunu önerir ama zorunlu tutmaz.
en-UK geçerli bir hreflang kodu mu?
Hayır. hreflang bölge kodları ISO 3166-1 alpha-2 ülke kodları olmalıdır ve Birleşik Krallık'ın kodu GB'dir, bu yüzden en-GB kullanın. Google, hreflang notasyonlarında UK, EU veya UN kullanmanın Google Arama'da etkisi olmadığını söyler. Tek başına bir ülke kodu da geçersizdir: hreflang bir ISO 639-1 dil koduyla başlamalıdır.
lang özniteliğini kullanıyorsam hreflang'e ihtiyacım var mı?
Evet, birden fazla dil veya ülke versiyonunuz varsa. Google, bir sayfanın dilini algılamak için HTML lang özniteliğini veya hreflang'i kullanmadığını, görünen içeriği okuduğunu söyler. lang özniteliği tarayıcılara ve ekran okuyuculara yardımcı olur; hreflang ise Google'a versiyonlarınızın birbiriyle ilişkisini anlatır. İkisini de ayarlayın.

Kaynaklar

  1. Tell Google about localized versions of your page – Google Search Central
  2. Managing multi-regional and multilingual sites – Google Search Central
  3. How to specify a canonical URL – Google Search Central
  4. Redirects and Google Search – Google Search Central
  5. HTML lang global attribute – MDN Web Docs
  6. ISO 639 language codes – Library of Congress

Okumaya Devam Edin