Uluslararası pazarlara açılan her e-ticaret işletmesi, er ya da geç şu soruyla yüzleşir: Sitemi çok dilli hale getirirken teknik altyapıyı nasıl kurmalıyım? Yanlış bir mimari seçimi, hem SEO sıralamalarınızı olumsuz etkiler hem de kullanıcı deneyimini bozar. Bu kapsamlı rehberde URL yapısı seçeneklerini, hreflang etiketlerinin doğru uygulanmasını, dil algılama mekanizmalarını ve sık yapılan teknik hataları ele alıyoruz.
URL Yapısı: Üç Ana Seçenek
Çok dilli bir site için URL yapısı seçerken üç temel seçenek bulunur: alt dizin (subdirectory), alt alan adı (subdomain) ve ülke kodlu üst düzey alan adı (ccTLD). Her birinin avantajları ve dezavantajları farklıdır.
Seçenek 1: Alt Dizin (Subdirectory)
example.com/tr/ → Türkçe
example.com/en/ → İngilizce
example.com/de/ → Almanca
example.com/ar/ → Arapça
- Tüm dil sürümleri tek bir alan adı altında toplandığından domain otoritesi bölünmez.
- Kurulum ve yönetim görece daha kolaydır.
- Google, tek bir alan adı üzerinde birleşen backlink profilinden tüm dil sürümlerini yararlandırır.
- İçerik ekibi tek bir CMS üzerinde çalışabilir.
- URL'ler ülke odaklı değil dil odaklıdır; ülke bazlı hedefleme için ek sinyal gerekir.
- Büyük sitelerde dizin yapısı karmaşıklaşabilir.
Alt dizin yapısı, başlangıç ve orta ölçekli e-ticaret işletmeleri için en önerilen modeldir. Google'ın resmi kılavuzu da bu yapıyı öne çıkarmaktadır.
Seçenek 2: Alt Alan Adı (Subdomain)
tr.example.com → Türkçe
en.example.com → İngilizce
de.example.com → Almanca
ar.example.com → Arapça
- Her dil sürümü teknik olarak bağımsız bir site gibi davranabilir; farklı hosting veya CMS altyapısı kullanılabilir.
- Büyük kurumsal yapılarda ekip ayrışması kolaylaşır.
- Google her alt alan adını ayrı bir site olarak algılar; bu da domain otoritesinin parçalanmasına yol açar.
- Her alt alan adı için ayrı ayrı backlink inşa etmek gerekir.
- DNS ve SSL sertifika yönetimi karmaşıklaşır.
Alt alan adı yapısı genellikle önerilmez; özellikle domain otoritesi henüz güçlü olmayan işletmeler için dezavantajları ağır basar.
Seçenek 3: Ülke Kodlu Alan Adı (ccTLD)
example.com.tr → Türkiye
example.de → Almanya
example.co.uk → Birleşik Krallık
example.ae → BAE
- En güçlü yerel arama sinyalini sağlar; Google ilgili ülkedeki aramalarda ccTLD'ye daha fazla önem verir.
- Kullanıcılar yerel bir alan adına daha fazla güven duyar.
- Her ülke pazarı tam bağımsız bir site olarak yönetilebilir.
- Birden fazla alan adı satın almak ve yönetmek maliyet ve karmaşıklık doğurur.
- Her ccTLD için ayrı SEO çalışması (backlink inşası, içerik) gerekir; otorite sıfırdan başlar.
- Teknik ekip gereksinimi artar.
ccTLD yaklaşımı ancak belirli ülke pazarlarına ciddi, uzun vadeli yatırım yapmayı planlayan büyük işletmeler için mantıklıdır.
Hangi Yapıyı Seçmeli?
Genel tavsiye şöyledir:
- Yeni başlayan veya büyümekte olan e-ticaret işletmeleri: Alt dizin
- Belirli ülkelerde güçlü yerel varlık kurmayı hedefleyen büyük işletmeler: ccTLD
- Alt alan adı: Nadiren tercih edilmeli, özel teknik gereksinimler yoksa kaçının.
Hreflang Etiketleri: Doğru Uygulama Kılavuzu
Hreflang, Google'a bir sayfanın hangi dil ve bölge için optimize edildiğini bildiren HTML meta etiketidir. Doğru uygulanmadığında Google karışıklığa düşer ve yanlış sayfayı yanlış ülkedeki kullanıcılara gösterebilir.
Hreflang Sözdizimi
<link rel="alternate" hreflang="tr" href="https://example.com/tr/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="ar" href="https://example.com/ar/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
Bu etiketler her sayfanın <head> bölümüne eklenmelidir. x-default değeri, belirli bir dil veya bölgeyle eşleşmeyen kullanıcılar için varsayılan sayfayı belirtir.
Dil Kodu ile Bölge Kodunu Birleştirme
Yalnızca dil kodu (hreflang="en") kullanmak İngilizce konuşan tüm ülkeleri hedefler. Bölge bazlı hedefleme için dil-bölge kombinasyonu kullanın:
<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="ar-SA" href="https://example.com/ar-sa/" />
<link rel="alternate" hreflang="ar-AE" href="https://example.com/ar-ae/" />
Bu yaklaşım özellikle para birimi ve fiyatlandırmanın ülkeye göre farklılaştığı e-ticaret siteleri için kritiktir.
Karşılıklı Bağlantı Zorunluluğu
Hreflang etiketlerinin doğru çalışması için karşılıklı bağlantı (reciprocal tagging) şarttır. Eğer İngilizce sayfa Türkçe sayfaya işaret ediyorsa, Türkçe sayfanın da İngilizce sayfaya işaret etmesi gerekir. Bu zincirleme ilişki tüm dil alternatifleri arasında kurulmalıdır.
Yaygın hata: Yalnızca ana sayfaya hreflang ekleyip ürün sayfalarını unutmak. Hreflang etiketleri siteinizdeki HER sayfa için ayrı ayrı uygulanmalıdır.
XML Sitemap ile Hreflang
Büyük sitelerde hreflang etiketlerini HTML'e eklemek yerine XML sitemap üzerinden tanımlamak tercih edilebilir:
<url>
<loc>https://example.com/tr/urun/mavi-havlu</loc>
<xhtml:link rel="alternate" hreflang="tr" href="https://example.com/tr/urun/mavi-havlu"/>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/product/blue-towel"/>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/produkt/blaues-handtuch"/>
</url>
Bu yöntem, sayfa sayısı binleri aşan büyük kataloglarda HTML head bölümünü şişirmeden hreflang yönetimini merkezi olarak sağlar.
Dil Algılama Mekanizmaları
Kullanıcı sitenize geldiğinde hangi dili görmesi gerektiğini nasıl belirleyeceksiniz? Bu karar, kullanıcı deneyimini doğrudan etkiler.
Tarayıcı Dil Tercihi (Accept-Language Header)
En doğru yöntem, HTTP isteğindeki Accept-Language başlığını okumaktır. Tarayıcı dil tercihini sunucuya bildirir ve siz bu bilgiyi kullanarak uygun dil sürümüne yönlendirme yapabilirsiniz.
// Örnek Next.js middleware ile dil algılama
import { NextRequest, NextResponse } from 'next/server'
export function middleware(request: NextRequest) {
const locale = request.headers.get('accept-language')?.split(',')[0].split('-')[0]
const supportedLocales = ['tr', 'en', 'de', 'ar']
if (locale && supportedLocales.includes(locale)) {
return NextResponse.redirect(new URL(`/${locale}${request.nextUrl.pathname}`, request.url))
}
}
IP Tabanlı Coğrafi Konum
IP adresi üzerinden ülke tespiti yaparak ilgili dil versiyonuna yönlendirme yapılabilir. MaxMind GeoIP2 veya ipapi gibi servisler bu işlevi sağlar. Ancak IP tespiti yüz yüze güvenilir değildir; VPN kullanıcıları, kurumsal ağlar ve mobil operatörler hatalı sonuçlar doğurabilir.
Otomatik Yönlendirmenin Riskleri
Otomatik dil yönlendirme uygulanırken dikkat edilmesi gereken kritik bir kural vardır: Kullanıcı tercihini zorunlu kılmayın, önerin.
Google Search Console kılavuzları, ziyaretçileri otomatik olarak ve geri dönemez biçimde yönlendirmenin Google'ın sayfanın diğer dil versiyonlarını taramasını engelleyebileceğini belirtir. Googlebot genellikle Amerika kökenli IP ile tarama yapar; Türkçe sayfanız ABD IP'li Googlebot'u otomatik olarak İngilizce sürüme yönlendiriyorsa Türkçe sayfanız hiç taranmayabilir.
Bunun yerine şu yaklaşım önerilir:
- Ziyaretçinin tarayıcı diline göre bir öneri banner'ı gösterin ("Bu sayfanın Almanca versiyonu mevcut — Almancaya geç")
- Yönlendirmeyi kullanıcı onayına bırakın
- Dil tercihini cookie'de saklayın; bir sonraki ziyarette otomatik olarak seçilen dile gidin
Dil Seçici Widget
Her sayfada görünür, ulaşılabilir bir dil seçici bulundurun. Dil kodları veya bayrak görselleri kullanılabilir; ancak bayrak görseli yalnızca ülkeye değil dile işaret ettiğinde kafa karışıklığı yaratabilir (örneğin İngilizce için hangi bayrağı kullanacaksınız?). Dil adını yerel dilinde yazmak (Türkçe, Deutsch, العربية) en net çözümdür.
Teknik SEO: Sık Yapılan Hatalar
İçeriği Yalnızca Çevirmek, Lokalize Etmemek
Çok dilli SEO'da sık yapılan hata, İngilizce içeriği kelimesi kelimesine çevirip yayınlamaktır. Farklı dillerde kullanıcıların arama davranışları değişir; Almanlar aynı ürünü İngilizlerden farklı terimlerle arar. Her dil için ayrı anahtar kelime araştırması yapın.
Canonical Etiket Çakışması
Canonical etiketi hreflang ile çelişmemelidir. Her dil versiyonu kendi canonical URL'ini göstermelidir; yanlışlıkla tüm dil versiyonlarının Türkçe ana sayfayı canonical olarak işaret etmesi hepsinin indekslenmesini engeller.
Çeviri Yapılmamış Meta Etiketler
Ürün sayfası çevrildiyse title, meta description, Open Graph etiketleri ve image alt metinleri de aynı dilde hazırlanmalıdır. Sadece body içeriğini çevirip meta etiketleri Türkçe bırakmak yaygın bir hatadır.
Yapısal Veri (Schema Markup) Çok Dilli Uyum
JSON-LD ile eklenen ürün şemaları da dil bazında ayarlanmalıdır. Fiyat, para birimi ve dil özellikleriniz her sayfada doğru şekilde tanımlanmalıdır.
Platform Bazlı Hreflang Uygulamaları
Shopify: Shopify Markets özelliği ile çok dilli ve çok bölgeli satış doğrudan desteklenir. Hreflang etiketleri otomatik olarak eklenir. WooCommerce: WPML veya Polylang eklentileri çok dilli yönetimi sağlar ve hreflang çıktısını otomatikleştirir. Magento / Adobe Commerce: Yerleşik çok mağaza yapısı alt dizin veya alt alan adı modeliyle çalışır; hreflang yapılandırması için ek modül gerekmez. Next.js / Headless: Next.js'in i18n yapılandırması locale yönlendirmeyi ve hreflang çıktısını kolaylaştırır.Sonuç
Çok dilli e-ticaret sitesi mimarisi, teknik bir konudur; ancak iş sonuçları üzerindeki etkisi doğrudan ve büyüktür. Doğru URL yapısını seçmek, hreflang etiketlerini eksiksiz uygulamak, otomatik yönlendirmenin risklerini yönetmek ve dil algılama mekanizmalarını kullanıcı dostu biçimde kurmak, uluslararası SEO'nun temel yapı taşlarıdır. Teknik altyapıyı sağlam kurmak, içerik ve pazarlama yatırımlarınızın karşılığını almanızı güvence altına alır.