← Blog'a Dön
Hreflang Kullanımı: Çok Dilli Siteler İçin Kapsamlı Rehber
Teknik SEO 24 dk okuma Yayın: Güncelleme:

Hreflang Kullanımı: Çok Dilli Siteler İçin Kapsamlı Rehber

Hreflang etiketi nasıl kullanılır? Dil ve bölge kodları, x-default, HTML head, HTTP header ve sitemap yöntemleri, yaygın hreflang hataları ve uluslararası SEO stratejisi.

Çok dilli veya çok bölgeli bir web sitesi yönetiyorsanız, Google’ın hangi sayfanın hangi kullanıcıya gösterileceğini nasıl öğrendiğini hiç merak ettiniz mi? Cevap büyük ölçüde hreflang etiketinde gizlidir. Hreflang, arama motorlarına “bu sayfa Türkçe konuşan kullanıcılar için; şu sayfa ise Almanya’daki Almanca konuşanlar için” bilgisini ileten bir HTML özniteliğidir. Doğru uygulandığında uluslararası SEO’nun bel kemiğini oluşturur; yanlış uygulandığında ise içerik çoğaltma sorunlarına, düşen sıralamaya ve kullanıcıların yanlış dil sürümüyle karşılaşmasına yol açar.

Bu rehberde hreflang’ı sıfırdan ele alacak; dil ve bölge kodları arasındaki farkı, üç farklı uygulama yöntemini, çift yönlü referans zorunluluğunu, subdomain/subdirectory/ccTLD yapı seçimlerini, en sık yapılan hataları ve test araçlarını ayrıntılı kod örnekleriyle açıklayacağız.


Hreflang Nedir ve Ne İşe Yarar?

Hreflang, 2011 yılında Google tarafından duyurulan ve sayfalar arasındaki dil ile bölge ilişkisini arama motorlarına bildiren bir HTML özniteliğidir. Tam adıyla rel="alternate" hreflang="x" biçiminde yazılır ve birden fazla dil ya da bölge versiyonu olan sayfaların birbirini işaret etmesini sağlar.

Hreflang olmadan Google şunu anlamaya çalışır: “Bu iki sayfa neredeyse aynı içeriğe sahip — acaba bunlardan birini spam olarak mı değerlendirmeliyim?” Hreflang etiketleri sayesinde Google şunu anlar: “Bu iki sayfa, farklı dil veya bölge hedefleyen kasıtlı alternatiflerdir.”

Hreflang’ın Temel Faydaları

  • Doğru kullanıcıya doğru sayfa: Türkiye’deki kullanıcı /tr/ sayfasını, Almanya’daki kullanıcı /de/ sayfasını görür.
  • Yinelenen içerik riskini azaltır: Çok dilli içerik, dikkatli yapılandırılmadığında duplicate content sinyali üretir. Hreflang bu riski bertaraf eder.
  • Trafik kalitesini artırır: Kullanıcı kendi dilinde içerikle karşılaşınca hemen çıkma oranı düşer, dönüşüm oranı yükselir.
  • Konsolidasyonu destekler: Sayfa otoritesi çoğaltılmak yerine doğru versiyona yönlendirilir.

Hreflang yalnızca Google ve Yandex tarafından desteklenmektedir. Bing kendi yöntemini (Content-Language HTTP başlığı) tercih etse de hreflang etiketlerini okuyabilir.


Dil Kodu mu, Bölge Kodu mu? Fark Nedir?

Hreflang değerleri iki parçadan oluşabilir: dil kodu ve isteğe bağlı bölge kodu.

Dil Kodları (ISO 639-1)

ISO 639-1 standardına göre iki harfli kısaltmalardır. Örnekler:

DilKod
Türkçetr
Almancade
İngilizceen
Fransızcafr
Arapçaar
İspanyolcaes
Japoncaja

Bölge Kodları (ISO 3166-1 Alpha-2)

ISO 3166-1 Alpha-2 standardına göre iki harfli ülke kısaltmalarıdır. Örnekler:

ÜlkeKod
TürkiyeTR
AlmanyaDE
AvusturyaAT
İsviçreCH
Amerika Birleşik DevletleriUS
Birleşik KrallıkGB

Yalnızca Dil mi, Dil + Bölge mi?

Bu soru çok dilli SEO stratejisinin en kritik kararlarından biridir.

Yalnızca dil kodu kullanımı (hreflang="tr"): Türkiye, Kuzey Kıbrıs ve Almanya’daki Türkçe konuşan tüm kullanıcılara tek bir sayfayı hedefler. Bölgeye göre farklılaştırılmış içerik yoksa tercih edilir.

Dil + bölge kodu kullanımı (hreflang="tr-TR"): Yalnızca Türkiye’deki Türkçe konuşan kullanıcıları hedefler. Almanya’daki Türkçe konuşan kullanıcılar için ayrıca hreflang="tr-DE" kullanmak gerekir.

Pratik kural: Farklı ülkelere göre fiyat, para birimi, telefon numarası veya hukuki içerik farklılaştırıyorsanız dil+bölge kombinasyonu kullanın. Yalnızca dil farklılaştırması yapıyorsanız tek başına dil kodu yeterlidir.


x-default: Varsayılan Sayfa Etiketleme

x-default değeri, hreflang sisteminin önemli ama sıkça atlanmış parçasıdır. Hiçbir dil/bölge versiyonunun kullanıcıyla eşleşmediği durumlarda gösterilecek varsayılan sayfayı belirtir.

Tipik kullanım senaryoları:

  • Kullanıcının dili desteklenmiyorsa dil seçim sayfasına yönlendirmek
  • Coğrafi hedeflenemeyen kullanıcılara genel bir İngilizce sayfa sunmak
  • Uluslararası hedef kitlelere varsayılan landing page göstermek
<link rel="alternate" hreflang="tr" href="https://example.com/tr/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

Yukarıdaki örnekte x-default, Türkçe, Almanca veya İngilizce dışındaki bir dil kullanan ziyaretçileri https://example.com/ adresine yönlendirir. Bu sayfa genellikle bir dil seçim ekranı ya da İngilizce ana sayfa olur.

Uyarı: x-default etiketini eklemeyi unutmak, en yaygın hreflang hatalarından biridir. Google, eşleşmeyen kullanıcı için hangi sürümü sunacağını bilemez ve rastgele bir seçim yapabilir.


Hreflang Uygulamanın 3 Yöntemi

Google hreflang etiketlerini üç farklı yerde okuyabilir: HTML <head> bölümü, HTTP başlıkları ve XML sitemap. Her üç yöntem de eş değer güçtedir; ancak farklı kullanım durumlarına uygundur.

Yöntem 1: HTML Head Etiketi

En yaygın ve önerilen yöntemdir. Sayfanın <head> bölümüne <link> etiketleri eklenir.

<!DOCTYPE html>
<html lang="tr">
<head>
  <meta charset="UTF-8">
  <title>Hreflang Örneği</title>

  <!-- Türkçe (Türkiye) -->
  <link rel="alternate" hreflang="tr-TR" href="https://example.com/tr/urun/" />

  <!-- Almanca (Almanya) -->
  <link rel="alternate" hreflang="de-DE" href="https://example.com/de/produkt/" />

  <!-- Almanca (Avusturya) -->
  <link rel="alternate" hreflang="de-AT" href="https://example.com/at/produkt/" />

  <!-- İngilizce (Genel) -->
  <link rel="alternate" hreflang="en" href="https://example.com/en/product/" />

  <!-- Varsayılan -->
  <link rel="alternate" hreflang="x-default" href="https://example.com/en/product/" />
</head>
<body>
  ...
</body>
</html>

Avantajları:

  • Uygulaması kolay ve görünürlüğü yüksek
  • Her sayfada bağımsız olarak yönetilebilir
  • CMS entegrasyonu genellikle hazır eklentilerle sağlanır

Dezavantajları:

  • Çok büyük sitelerde sayfa başına düzenleme gerektirdiğinden yönetimi güçleşebilir
  • JavaScript ile render edilen sayfalarda Googlebot tarafından okunmayabilir (SSR tercih edilmeli)

Yöntem 2: HTTP Header Yöntemi

Bu yöntem yalnızca HTML olmayan dosyalar için uygundur: PDF belgeler, görsel dosyalar, CSV indirmeleri. Sunucu yanıtına HTTP başlığı eklenir.

HTTP/1.1 200 OK
Content-Type: application/pdf
Link: <https://example.com/tr/rehber.pdf>; rel="alternate"; hreflang="tr-TR",
      <https://example.com/de/leitfaden.pdf>; rel="alternate"; hreflang="de-DE",
      <https://example.com/en/guide.pdf>; rel="alternate"; hreflang="en",
      <https://example.com/en/guide.pdf>; rel="alternate"; hreflang="x-default"

Apache sunucularda .htaccess üzerinden şu şekilde yapılandırılabilir:

<FilesMatch "rehber\.pdf$">
  Header add Link "<https://example.com/tr/rehber.pdf>; rel=\"alternate\"; hreflang=\"tr-TR\""
  Header add Link "<https://example.com/de/leitfaden.pdf>; rel=\"alternate\"; hreflang=\"de-DE\""
</FilesMatch>

Nginx için:

location ~* /rehber\.pdf$ {
    add_header Link '<https://example.com/tr/rehber.pdf>; rel="alternate"; hreflang="tr-TR"';
    add_header Link '<https://example.com/de/leitfaden.pdf>; rel="alternate"; hreflang="de-DE"';
}

Ne zaman kullanılır? HTML sayfanız dışındaki dosyalar için tek seçenektir. HTML sayfalar için ise HTML head yöntemi her zaman daha pratiktir.

Yöntem 3: XML Sitemap Yöntemi

Büyük e-ticaret siteleri veya çok sayıda sayfa içeren sitelerde tercih edilir. Tüm hreflang ilişkileri tek bir sitemap dosyasında merkezi olarak yönetilir.

Sitemap dosyasının başına xhtml namespace’i eklenmelidir:

<?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">

  <!-- Türkçe sayfa -->
  <url>
    <loc>https://example.com/tr/urun/</loc>
    <xhtml:link rel="alternate" hreflang="tr-TR" href="https://example.com/tr/urun/"/>
    <xhtml:link rel="alternate" hreflang="de-DE" href="https://example.com/de/produkt/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/product/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/product/"/>
  </url>

  <!-- Almanca sayfa -->
  <url>
    <loc>https://example.com/de/produkt/</loc>
    <xhtml:link rel="alternate" hreflang="tr-TR" href="https://example.com/tr/urun/"/>
    <xhtml:link rel="alternate" hreflang="de-DE" href="https://example.com/de/produkt/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/product/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/product/"/>
  </url>

  <!-- İngilizce sayfa -->
  <url>
    <loc>https://example.com/en/product/</loc>
    <xhtml:link rel="alternate" hreflang="tr-TR" href="https://example.com/tr/urun/"/>
    <xhtml:link rel="alternate" hreflang="de-DE" href="https://example.com/de/produkt/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/product/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/product/"/>
  </url>

</urlset>

Dikkat: Sitemap yönteminde de her URL grubunun tüm alternatiflerini listelemesi zorunludur. “Biz sadece Türkçe sayfadan işaret edelim, yeter” anlayışı çalışmaz — her sayfanın kendi girişi olmalıdır.

Avantajları:

  • Merkezi yönetim: Binlerce sayfayı tek dosyadan düzenleyebilirsiniz
  • Sayfayı editlemeden güncelleme imkânı
  • Büyük siteler için tercih sebebi

Dezavantajları:

  • Sitemap bot tarafından taranmadan önce hreflang okunmaz; HTML head yöntemiyle kıyaslandığında daha yavaş keşfedilebilir
  • Sitemap boyutu büyüdükçe yönetimi karmaşıklaşır (50.000 URL sınırına dikkat)

Çift Yönlü Referans Zorunluluğu

Hreflang’ın en kritik teknik kuralı çift yönlü (karşılıklı) referans zorunluluğudur. Sayfa A, Sayfa B’yi işaret ediyorsa Sayfa B de mutlaka Sayfa A’yı işaret etmelidir. Bu kural, tüm dil alternatifleri arasında geçerlidir.

Neden Çift Yönlü Referans Gereklidir?

Google, hreflang ilişkilerini güvenilir bulmak için karşılıklı doğrulama yapar. A sayfası B’yi gösteriyor ama B, A’yı göstermiyorsa Google bu ilişkiyi görmezden gelebilir ya da uyarı oluşabilir.

Doğru Çift Yönlü Referans Örneği

Türkçe sayfa (/tr/urun/):

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

Almanca sayfa (/de/produkt/) — aynı etiket setini içermeli:

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

İngilizce sayfa (/en/product/) — aynı etiket seti:

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

Görüldüğü gibi her üç sayfada da aynı etiket seti bulunmaktadır. Yalnızca URL değerleri sabittir; her sayfa kendisini de dahil ederek tüm alternatifleri listeler.

Kendine Referans (Self-Referencing) Zorunlu mu?

Evet. Kendi sayfasının da hreflang listesinde olması gerekir. Yukarıdaki örneklerde /tr/urun/ sayfası hreflang="tr-TR" olarak kendisini de listeler. Bu, Google’ın belgelediği standart uygulamadır.


Site Yapı Seçenekleri: ccTLD, Subdomain, Subdirectory

Uluslararası SEO stratejisini kurarken alınması gereken en önemli kararlardan biri site yapısıdır. Hreflang bu kararı etkilemez — her üç yapıda da hreflang kullanabilirsiniz — ancak yapının SEO ve operasyonel sonuçları farklıdır.

ccTLD (Country Code Top-Level Domain)

Her ülkeye özgü alan adı kullanılır: .tr, .de, .fr, .co.uk gibi.

Örnekler:

  • https://example.com.tr/ → Türkiye
  • https://example.de/ → Almanya
  • https://example.fr/ → Fransa

Avantajları:

  • En güçlü coğrafi hedefleme sinyali
  • Yerel kullanıcılar ve arama motorları tarafından güvenilir bulunur
  • Google Search Console’da ülke bazlı hedefleme ayarına gerek yok

Dezavantajları:

  • Her ccTLD ayrı bir domain otoritesi biriktirir; backlink profilleri birbirini desteklemez
  • Yönetim maliyeti yüksek: her domain için ayrı barındırma, SSL, yönetim
  • Bazı ülkelerin ccTLD’leri yalnızca o ülkedeki kuruluşlara verilebilir

Subdomain

https://tr.example.com/, https://de.example.com/ gibi.

Avantajları:

  • Ana domain’den bağımsız olarak farklı sunucularda barındırılabilir
  • ccTLD’ye göre kurulumu daha kolay
  • Google Search Console’da alt domain bazlı coğrafi hedefleme yapılabilir

Dezavantajları:

  • Google subdomainleri bazen ayrı site olarak değerlendirdiğinden link gücü akışı tam değil
  • Ana domain otoritesinden en düşük yararlanan yapı

Subdirectory (Klasör Yapısı)

https://example.com/tr/, https://example.com/de/ gibi.

Avantajları:

  • Tüm dil sürümleri tek domain altında olduğundan backlink gücü konsolide olur
  • Yönetim ve teknik yapı en basit seçenek
  • CMS entegrasyonu (WordPress, Shopify, Astro vb.) en kolay bu yapıda

Dezavantajları:

  • ccTLD kadar güçlü coğrafi sinyal vermez
  • Büyük sitelerde URL yapısı karmaşıklaşabilir

Tavsiye: Başlangıç aşamasındaki çok dilli siteler için subdirectory en pratik ve SEO dostu seçenektir. Köklü markalar ve cidli kaynaklara sahip işletmeler için ccTLD daha güçlü sinyal üretir.


Yaygın Hreflang Hataları ve Çözümleri

Hreflang etiketleri, doğru uygulanmadığında sıkıca uyarılar üretir ve sıralamayı olumsuz etkiler. İşte en sık karşılaşılan hatalar:

Hata 1: x-default Etiketini Atlama

Problem: x-default etiketi hiçbir dille eşleşmeyen kullanıcılar için zorunludur. Bu etiket eksik olduğunda Google, belirsiz kullanıcılar için hangi sayfayı sunacağına kendisi karar verir.

Çözüm: Her hreflang etiket setine mutlaka bir x-default satırı ekleyin.

<!-- Eksik - HATALI -->
<link rel="alternate" hreflang="tr" href="https://example.com/tr/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />

<!-- Doğru -->
<link rel="alternate" hreflang="tr" href="https://example.com/tr/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

Hata 2: Tek Yönlü Referans

Problem: A sayfası B’yi işaret ediyor, ancak B sayfasında hreflang etiketleri hiç yok ya da A’yı işaret etmiyor.

Etki: Google bu tek taraflı ilişkiyi geçersiz sayar. Search Console’da “Hreflang kümelerindeki sayfalardan bazılarında geri dönüş etiketleri eksik” uyarısı çıkar.

Çözüm: Her sayfanın tüm alternatifleri — kendisi dahil — listeleyen eksiksiz hreflang seti içerdiğinden emin olun.

Hata 3: Yanlış veya Desteklenmeyen Dil Kodu

Problem: hreflang="turkish" veya hreflang="tr_TR" gibi geçersiz değerler kullanmak.

HatalıDoğru
turkishtr
tr_TRtr-TR
germande
de_DEde-DE
ENGen
zh-simplifiedzh-Hans

Dil kodları ISO 639-1 (küçük harf), bölge kodları ISO 3166-1 Alpha-2 (büyük harf) olmalı; ikisi tire - ile ayrılmalıdır.

Hata 4: Yönlendirilen URL’leri Hreflang’a Eklemek

Problem: 301 yönlendirmesi yapılan bir URL’yi hreflang etiketi içinde kullanmak. Google yönlendirmeyi takip eder ama bu gecikme ve sinyal kaybına yol açar.

Çözüm: Hreflang etiketlerinde her zaman kanonik (final) URL’leri kullanın. HTTPS, www veya www-sız fark gözetmeksizin gerçek hedef URL hangisiyse onu yazın.

Hata 5: Hreflang ile Canonical Çakışması

Problem: Bir sayfa canonical olarak başka bir URL’yi işaret ederken, hreflang etiketleri kendi URL’sini kullanıyorsa çelişki yaşanır.

<!-- Canonical başka URL'yi işaret ediyor -->
<link rel="canonical" href="https://example.com/en/product/" />

<!-- Ama hreflang bu sayfanın URL'sini kullanıyor -->
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/produkt/" />

Çözüm: Canonical URL ile hreflang etiketlerindeki URL’lerin uyumlu olduğundan emin olun. Her sayfanın canonical’ı kendini göstermeli ve hreflang etiketleri bu kanonik URL’leri kullanmalıdır.

Hata 6: Dil Kodunu Büyük Harfle Yazmak

Problem: hreflang="TR" veya hreflang="DE-DE" gibi yazımlar.

Doğru format: dil kodu daima küçük harf, ülke kodu daima büyük harf.

<!-- Hatalı -->
<link rel="alternate" hreflang="TR-TR" href="..." />

<!-- Doğru -->
<link rel="alternate" hreflang="tr-TR" href="..." />

Hata 7: robots.txt ile Engellenen Sayfaları Hreflang’a Dahil Etmek

Problem: robots.txt ile Googlebot’a kapatılmış sayfaları hreflang listesine eklemek. Google o sayfayı tarayamadığından hreflang etiketlerini okuyamaz.

Çözüm: Hreflang listesindeki tüm URL’lerin indekslenebilir durumda olduğunu, robots.txt ve noindex etiketlerinin bu sayfaları engellemediğini doğrulayın.


Çince İçin Özel Durum: zh-Hans ve zh-Hant

Çin Halk Cumhuriyeti (Basitleştirilmiş Çince) ve Tayvan/Hong Kong (Geleneksel Çince) için özel dil etiketleri kullanılır:

<!-- Basitleştirilmiş Çince (Çin) -->
<link rel="alternate" hreflang="zh-Hans" href="https://example.com/zh-cn/" />

<!-- Geleneksel Çince (Tayvan) -->
<link rel="alternate" hreflang="zh-Hant" href="https://example.com/zh-tw/" />

<!-- Geleneksel Çince (Hong Kong) -->
<link rel="alternate" hreflang="zh-Hant-HK" href="https://example.com/hk/" />

zh-CN veya zh-TW gibi değerler de Google tarafından desteklense de resmi öneri zh-Hans ve zh-Hant biçimidir.


İngilizce’nin Birden Fazla Bölge Versiyonu

İngilizce konuşan birden fazla ülkeye hitap ediyorsanız bölge kodu eklemek gerekir:

<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/" />
<link rel="alternate" hreflang="en-AU" href="https://example.com/en-au/" />
<link rel="alternate" hreflang="en-CA" href="https://example.com/en-ca/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en-us/" />

Bu yapı özellikle uluslararası e-ticaret siteleri için kritiktir: ABD’deki kullanıcıya USD fiyatlar, İngiltere’dekine GBP fiyatlar gösterilebilir.


Hreflang ve JavaScript Render: Dikkat Edilmesi Gerekenler

Problem: React, Vue veya Next.js gibi istemci tarafı render kullanan uygulamalarda hreflang etiketleri JavaScript ile enjekte ediliyorsa Googlebot bu etiketleri her zaman okuyamayabilir.

Çözüm önerileri:

  1. Server-Side Rendering (SSR) kullanın: Next.js getServerSideProps veya Astro gibi SSR/SSG çerçeveleri hreflang etiketlerini HTML içine render eder.
  2. Dynamic Rendering: Googlebot’a statik HTML, kullanıcıya dinamik içerik sunun (ancak bu yöntem karmaşık ve bakım maliyetlidir).
  3. Prerendering: Cloudflare Workers veya benzer edge çözümleriyle Googlebot için önceden render edilmiş HTML döndürün.

En güvenli seçenek: hreflang etiketleri sunucu tarafından üretilen HTML içinde, <head> bölümünde hazır bulunsun.


Google Search Console’da Hreflang Sorunlarını Takip Etmek

Google Search Console, hreflang sorunlarını “Uluslararası Hedefleme” raporu altında raporlar. Bu bölümde iki sekme bulunur:

Dil Sekmesi

  • Sahip olduğunuz dil sürümlerini listeler
  • Hatalı dil etiketlerini ve eksik geri referansları gösterir
  • Uyarı: “Hreflang kümesinde geri dönüş etiketi eksik”

Ülke Sekmesi

  • Search Console mülkünüz subdomain veya subdirectory ise coğrafi hedeflemeyi burada düzenleyebilirsiniz
  • ccTLD kullanıyorsanız bu ayar zaten otomatiktir

İzlenecek temel metrikler:

SorunOlası NedenÇözüm
Geri dönüş etiketi eksikTek yönlü referansTüm sayfalara çift yönlü etiket ekle
Geçersiz hreflang değeriYanlış dil/bölge koduISO kodlarını kontrol et
Kanoniklere işaret edilmiyorURL eşleşmezliğiCanonical ve hreflang URL’lerini hizala
Robots tarafından engellendirobots.txt veya noindexSayfaların erişilebilir olduğunu doğrula

Hreflang Test Araçları

Hreflang yapılandırmanızı canlıya almadan veya aldıktan sonra test etmek için çeşitli araçlar mevcuttur.

Google Search Console

En birincil kaynaktır. “Uluslararası Hedefleme” raporunu düzenli kontrol edin.

Hreflang Tag Test Tool (Onuroztr)

Kendi Hreflang Etiketi Oluşturucu aracımızı kullanarak hreflang etiketlerinizi oluşturabilir ve doğrulayabilirsiniz. Dil/bölge kodları, x-default ve çift yönlü referans kontrollerini otomatik yapar.

Screaming Frog SEO Spider

Siteyi tarar, her sayfa için hreflang etiketlerini çeker ve şu kontrolleri yapar:

  • Eksik x-default
  • Tek yönlü referanslar
  • Geçersiz dil kodları
  • Yönlendirilen URL’lerin hreflang’a dahil edilmesi

Kullanım: Configuration → Spider → Extraction → Hreflang sekmesini etkinleştirin; tarama sonucunda Hreflang sekmesinden raporu inceleyin.

Ahrefs Site Audit

Ahrefs’in site denetim aracı, hreflang hatalarını öncelik sırasına göre listeler. “Hreflang” filtresini kullanarak yalnızca hreflang ile ilgili sorunları görüntüleyebilirsiniz.

Semrush Site Audit

Semrush’un site denetimi de benzer hreflang raporlaması sunar. Özellikle büyük e-ticaret sitelerinde sayfalı görünüm içindeki hreflang çoğaltma sorunlarını tespit etmek için kullanışlıdır.

Chrome Eklentileri

  • SEO META in 1 CLICK: Sayfadaki tüm meta etiketleri ve hreflang değerlerini tek tıkla görüntüler
  • Hreflang Checker: Yalnızca hreflang etiketlerine odaklanır, çift yönlü referans doğrulaması yapar

Hreflang ile Canonical Etiketi Birlikte Kullanımı

Hreflang ve canonical etiketleri sıkça birbirine karıştırılır. Bunlar farklı amaçlara hizmet eder ve birlikte kullanılmalıdır.

Canonical: “Bu sayfanın tercih edilen (kanonik) versiyonu budur” sinyali verir. Yinelenen içerik konsolidasyonu içindir.

Hreflang: “Bu sayfanın farklı dil/bölge alternatifleri bunlardır” sinyali verir. Uluslararası hedefleme içindir.

Doğru birlikte kullanım:

<!-- Bu sayfanın kanonik versiyonu kendisidir -->
<link rel="canonical" href="https://example.com/tr/urun/" />

<!-- Ve diğer dil alternatifleri şunlardır -->
<link rel="alternate" hreflang="tr-TR" href="https://example.com/tr/urun/" />
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/produkt/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/product/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/product/" />

Her sayfa, canonical etiketiyle kendisine işaret etmeli ve hreflang etiketleriyle tüm alternatifleri listelemelidir.


Büyük Sitelerde Hreflang Yönetimi

On binlerce URL içeren e-ticaret sitelerinde hreflang yönetimi özel bir dikkat gerektirir.

Sayfalandırma (Pagination) ve Hreflang

Sayfalandırılmış içeriklerde (kategori sayfaları, blog listeleri) hreflang her sayfaya eklenmelidir:

<!-- /tr/kategori/?sayfa=2 -->
<link rel="alternate" hreflang="tr-TR" href="https://example.com/tr/kategori/?sayfa=2" />
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/kategorie/?seite=2" />

Filtreleme ve Faceted Navigation

URL parametreleri (filtreler, sıralama) içeren sayfalar için canonical etiketini doğru ayarlamak kritiktir. Hreflang, canonical sayfaya eklenmelidir; parametreli URL’lere değil.

Dinamik Hreflang Üretimi

Büyük sitelerde hreflang etiketlerini manuel yazmak mümkün değildir. CMS veya backend sistemi şablonlar aracılığıyla otomatik üretmelidir:

Her sayfa için:
  hreflang listesi = tüm dil/bölge versiyonlarının URL'leri
  Her URL için link etiketi oluştur
  x-default ekle
  Head'e bas

WordPress’te WPML veya Polylang eklentileri bu üretimi otomatik yapar. Shopify Markets özelliği de hreflang etiketlerini otomatik yönetir.


Uluslararası SEO Stratejisi ve Hreflang

Hreflang teknik bir araç olmakla birlikte, uluslararası SEO stratejisinin bütünüyle uyumlu olmalıdır.

Yerelleştirme ile Çeviri Farkı

Hreflang etiketleri, arama motorlarına dil alternatifleri hakkında bilgi verir; ancak bu etiketlerin değer üretmesi için içeriklerin gerçekten yerelleştirilmiş olması gerekir. Makine çevirisi ile oluşturulmuş, yalnızca dil değiştirilmiş ama kültürel ve ticari açıdan uyarlanmamış sayfalar SEO değeri düşük içerik kategorisine girer.

Yerelleştirme şunları kapsar:

  • Para birimi ve fiyatlandırma
  • Yerel ödeme yöntemleri
  • Coğrafi referanslar ve örnekler
  • Yasal uyarılar ve şartlar
  • Yerel telefon numaraları ve adresler
  • Kültüre özgü görseller ve metaforlar

Ülkeye Özgü Anahtar Kelime Araştırması

Her hedef ülke için anahtar kelime araştırması ayrıca yapılmalıdır. “Ürün satın al” için Türkiye ve Almanya’da farklı anahtar kelimeler ve farklı arama hacmi dağılımları söz konusudur.

Yurtdışı SEO hizmetimiz kapsamında her hedef ülke için ayrı anahtar kelime araştırması, rekabet analizi ve içerik stratejisi sunuyoruz.

Teknik SEO Altyapısı

Hreflang’ın doğru çalışması için genel teknik SEO altyapısının sağlam olması gerekir: sayfa hızı, Core Web Vitals, mobile-first indeksleme uyumu ve güvenli bağlantı (HTTPS). Teknik SEO hizmetimiz bu altyapıyı kapsamlı biçimde değerlendirir ve iyileştirir.


Hreflang ile İlgili Sık Sorulan Sorular

Hreflang olmadan çok dilli site yapabilir miyim?

Yapabilirsiniz, ancak risklidir. Hreflang olmadan Google, dil alternatifleri arasındaki ilişkiyi anlayamaz ve yinelenen içerik olarak değerlendirebilir. Ayrıca yanlış dil sürümünü kullanıcıya gösterebilir; bu da hemen çıkma oranını artırır. Ciddi bir çok dilli site için hreflang zorunludur.

Hreflang sıralamayı doğrudan etkiler mi?

Hreflang doğrudan bir sıralama faktörü değildir; ancak kullanıcıya doğru dil sürümünü sunduğunda kullanıcı sinyalleri (hemen çıkma oranı, sayfada geçirilen süre, dönüşüm) iyileşir ve bu dolaylı olarak sıralamayı olumlu etkiler. Ayrıca yinelenen içerik sorunlarını önleyerek olumsuz sinyalleri bertaraf eder.

Tüm sayfalarıma hreflang eklemek zorunda mıyım?

Yalnızca birden fazla dil veya bölge versiyonu olan sayfalara eklemek gerekir. Yalnızca tek dilde mevcut olan, politika sayfaları veya teknik dokümantasyon gibi içerikler için hreflang zorunlu değildir. Ancak ana içerik sayfalarınızın tamamı çok dilli ise, hepsi etiketlenmelidir.

Hreflang ne kadar sürede etkisini gösterir?

Google’ın hreflang etiketlerini tarayıp işlemesi genellikle birkaç günden birkaç haftaya kadar sürebilir. Büyük sitelerde bu süre daha uzun olabilir. Search Console’da “Uluslararası Hedefleme” raporunda hatalar temizlenmeye başladığında etiketlerin işlendiğini anlayabilirsiniz.

Hreflang ve 301 yönlendirme birlikte kullanılabilir mi?

Kullanılmamalıdır. Hreflang listesindeki URL’leri 301 yönlendirmesi yapıyorsanız, yönlendirmenin hedefi olan URL’yi kullanmalısınız. Yönlendirme kaynağını listelemek hem sinyali zayıflatır hem de tarama bütçesini israf eder.


Hreflang ile Sitemap Bölme Stratejisi

Çok büyük sitelerde tüm hreflang bilgilerini tek bir sitemap dosyasına sıkıştırmak hem dosya boyutunu şişirir hem de bakımı zorlaştırır. Bunun yerine dile veya bölgeye göre bölünmüş sitemap dosyaları oluşturup bir sitemap index üzerinden birleştirebilirsiniz.

Sitemap index dosyası:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemap-tr.xml</loc>
    <lastmod>2026-07-13</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-de.xml</loc>
    <lastmod>2026-07-13</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-en.xml</loc>
    <lastmod>2026-07-13</lastmod>
  </sitemap>
</sitemapindex>

Her dil sitemapı kendi URL’lerini içerir ve her URL’de tüm hreflang alternatifleri listelenir. Bu yapı sayesinde Googlebot her dil bloğunu bağımsız olarak tarayabilir ve büyük sitemap dosyalarının getirdiği tarama bütçesi yükü dağıtılır.

Sitemap Dosyasını Google Search Console’a Göndermek

Hreflang içeren sitemap dosyanızı Google Search Console üzerinden göndermek, Google’ın bu etiketleri hızlıca keşfetmesini sağlar:

  1. Search Console’da ilgili mülkü seçin
  2. Sol menüden “Sitemaps” bölümüne gidin
  3. Sitemap URL’sini (örn. https://example.com/sitemap.xml) girin ve gönderin
  4. İşleme durumunu birkaç gün içinde kontrol edin

Sitemap başarıyla işlendiğinde “Başarılı” durumu görünür ve keşfedilen URL sayısı listelenir. Hata oluşursa hata detaylarına tıklayarak nedenini öğrenebilirsiniz.


Hreflang Uygulama Kontrol Listesi

Yayına geçmeden önce aşağıdaki kontrolleri yapın:

Temel Kontroller:

  • Tüm dil/bölge versiyonlarına doğru hreflang değerleri eklendi mi?
  • x-default etiketi her sayfada mevcut mu?
  • Tüm sayfalar çift yönlü referans içeriyor mu?
  • Her sayfa kendisine işaret ediyor mu (self-referencing)?

Teknik Kontroller:

  • Kullanılan tüm dil kodları ISO 639-1 standardına uygun mu?
  • Bölge kodları ISO 3166-1 Alpha-2 standardına uygun mu?
  • Dil kodu küçük, bölge kodu büyük harf mi?
  • Hreflang listesindeki URL’ler canonical URL’lerle eşleşiyor mu?
  • Hreflang listesindeki URL’ler robots.txt veya noindex tarafından engellenmemiş mi?
  • JavaScript render kullanılıyorsa etiketler SSR ile üretiliyor mu?

Doğrulama:

  • Google Search Console’da Uluslararası Hedefleme raporu kontrol edildi mi?
  • Screaming Frog veya benzeri araçla site taraması yapıldı mı?
  • Her sayfa için hreflang etiketi tarayıcıda görüntülenerek doğrulandı mı?

Sonuç

Hreflang, çok dilli ve çok bölgeli web sitelerinin uluslararası arama sonuçlarında doğru kullanıcıya ulaşmasını sağlayan kritik bir teknik SEO bileşenidir. Doğru uygulandığında kullanıcı deneyimini iyileştirir, yinelenen içerik riskini azaltır ve organik trafiğin kalitesini artırır.

Başarılı bir hreflang uygulaması için şu üç temel ilkeyi aklınızda tutun: çift yönlü referans (her sayfa tüm alternatifleri listeler), x-default (eşleşmeyen kullanıcılar için varsayılan sayfa) ve doğru ISO kodları (dil küçük harf, ülke büyük harf).

Karmaşık çok dilli site yapınız için destek almak veya hreflang uygulamanızı profesyonel olarak denetletmek istiyorsanız Teknik SEO hizmetimize göz atabilir ya da Yurtdışı SEO sayfamızdan uluslararası SEO stratejinizi planlamak için bizimle iletişime geçebilirsiniz.

Onur Öztürk
// yazar

Onur ÖZTÜRK

SEO Uzmanı & Dijital Pazarlama Danışmanı

15 yılı aşkın deneyimle sağlık turizmi, e-ticaret ve kurumsal markalar için SEO stratejisi geliştiriyorum. Google Partner ve Meta Business Partner olarak 150'den fazla işletmenin organik büyümesine katkı sağladım.

Toplantı Planlayın