WordPress sitesini çok dilli yapmak için her dile ayrı bir adres verirsiniz (çoğu site için /en/ gibi bir dil klasörü), içeriği çevirip insan gözüyle kontrol edersiniz ve aynı sayfanın dil karşılıklarını hreflang etiketleriyle Google’a bildirirsiniz. WordPress çekirdekte çok dilli siteyi desteklemediği için bu işi bir çeviri eklentisi ya da çeviri platformu üstlenir. Bu yazıda URL yapısından hreflang hatalarına, dil değiştiriciden e-ticaretteki para birimi ve dosya ayrıntılarına kadar vermeniz gereken kararları sırayla anlatıyoruz.
URL yapısı: ayrı alan adı, alt alan adı ya da dil klasörü
İlk karar, dil sürümlerinin hangi adreste duracağıdır. Google’ın çok bölgeli ve çok dilli siteler rehberi seçenekleri şöyle karşılaştırır (Ekim 2026 itibarıyla):
| Yapı | Örnek | Artısı | Eksisi |
|---|---|---|---|
| Ülke alan adı | ornek.de | Hedef ülke net; siteleri ayırmak kolay | Daha maliyetli, daha fazla altyapı ister; yalnızca bir ülkeyi hedefler |
| Alt alan adı | de.ornek.com | Kurulumu kolay; farklı sunucularda barınabilir | Ziyaretçi de’nin dil mi ülke mi olduğunu adresten anlayamayabilir |
| Dil klasörü | ornek.com/de/ | Kurulumu kolay; tek sunucu olduğu için bakımı az | Tek sunucu konumu; siteleri sonradan ayırmak zor |
| URL parametresi | ornek.com?loc=de | — | Google önermiyor |
Bize göre kurumsal sitelerin ve KOBİ ölçeğindeki e-ticaret sitelerinin çoğu için dil klasörü en pratik seçenektir: tek WordPress kurulumu, tek tema ve eklenti güncellemesi, tek alan adı. Bu sitede de Türkçe sayfalar kök adreste, İngilizce sayfalar /en/ klasöründe duruyor. Ülke alan adı ise her ülkede ayrı ürün yelpazesi, ayrı fiyat politikası ve ayrı ekip varsa anlam kazanır.
WordPress tarafında iki ana yol vardır: her dili ayrı bir WordPress kurulumunda (örneğin Multisite ile) tutmak ya da tüm dilleri tek kurulumda bir eklentiyle yönetmek. Yapıyı sonradan değiştirmek bir site taşıması demektir; eski adreslerin 301 ile yönlendirilmesi gerekir. Bunu site taşırken SEO kaybını önlemek yazımızda ayrıntılı anlattık.
hreflang nasıl çalışır?
hreflang, bir sayfanın başka dillerdeki karşılıklarını arama motoruna bildiren bir işarettir. Google’ın yerelleştirilmiş sürümler dokümanına göre bunu üç yolla yapabilirsiniz: sayfanın <head> bölümüne link etiketi, HTTP başlığı ya da XML site haritası. Google üçünü eşdeğer sayar ve birden fazlasını birlikte kullanmanın aramada ek bir faydası olmadığını, yalnızca bakımı zorlaştırdığını belirtir. Bu sitede her sayfanın Türkçe ve İngilizce karşılığı site haritasında hreflang ile işaretli.
<link rel="alternate" hreflang="tr" href="https://ornek.com/hizmetler/" />
<link rel="alternate" hreflang="en" href="https://ornek.com/en/services/" />
<link rel="alternate" hreflang="x-default" href="https://ornek.com/hizmetler/" />
Dil kodları ISO 639-1 biçimindedir (tr, en, de). İsterseniz arkasına ISO 3166-1 Alpha 2 bölge kodu eklenir: en-GB gibi. Adresler https:// ile başlayan tam adres olmalıdır; /en/services/ gibi göreli adresler kabul edilmez.
Karşılıklılık ve x-default
hreflang’in en sık gözden kaçan kuralı karşılıklılıktır. Her dil sürümü hem kendisini hem diğer tüm sürümleri listeler. A sayfası B’yi gösteriyorsa B de A’yı göstermelidir; aksi hâlde Google bu etiketleri yok sayar. Kural, başka bir sitenin sizin sayfanızı kendi alternatifiymiş gibi göstermesini engellemek için vardır.
x-default, ziyaretçinin dili sürümlerinizden hiçbiriyle eşleşmediğinde gösterilecek sayfadır. Google bu değerin dil seçim sayfaları için tasarlandığını, ama herhangi bir sayfada da kullanılabileceğini söyler. Ayrıca her dil sürümünün canonical etiketi kendi dilindeki sayfayı göstermelidir; Google yinelenen URL’ler dokümanında canonical’ın aynı dilde belirtilmesini önerir. Tüm dilleri Türkçe sayfaya canonical ile bağlamak, Google’a diğer sürümlerin asıl sayfa olmadığını söylemek demektir.
Sık yapılan hatalar
Google’ın dokümanından derlediğimiz yaygın hatalar:
- Dönüş bağlantısı eksik. Yeni eklenen dil, eski sayfalara bağlanıyor ama eski sayfalar yeni dili göstermiyor.
- Yalnızca ülke kodu.
beBelçika değil, Belarusça anlamına gelir. Bölge kodu tek başına kullanılamaz. - Hatalı bölge kodu.
UKya daEUgibi kodlar geçersizdir; Birleşik Krallık içinen-GByazılır. - Göreli adres.
hrefdeğeri tam adres olmalıdır.
Bir ayrıntı daha: Google sayfanın dilini hreflang’den ya da HTML’deki lang özelliğinden değil, görünür içerikten anlar. Etiketler doğru olsa bile sayfanın gövdesi gerçekten çevrilmiş olmalıdır.
Başlık, açıklama, adres ve dil değiştirici
Yalnızca menü ve alt bilgi gibi tema metinlerini çevirip ana içeriği tek dilde bırakmak, Google’ın açıkça kaçınılmasını önerdiği bir durumdur. Çeviri sayfanın tamamını kapsamalıdır:
- Başlık (title): Google’ın başlık bağlantısı dokümanı, başlığın ana içerikle aynı dilde ve yazı sisteminde olmasını ister; uyuşmazlık varsa Google başka bir metni başlık olarak seçebilir.
- Meta açıklama: Arama sonucunda görünen özet de hedef dilde olmalıdır.
- Adres (slug): Google’ın URL yapısı rehberi, adreste hedef kitlenin dilindeki kelimelerin kullanılmasını önerir. İngilizce sayfanın adresi
/en/hizmetlerdeğil/en/servicesolmalıdır. Aynı rehber, ASCII dışı karakterlerin bağlantılarda yüzde kodlamasıyla yazılmasını önerir; biz Türkçe adreslerde ğ, ş, ı gibi harfleri sadeleştirerek bu işi basitleştiriyoruz. - Görsel alt metinleri, form uyarıları, e-postalar: Ziyaretçinin dil değiştirdikten sonra karşılaştığı her metin aynı dilde olmalıdır.
Ziyaretçiyi otomatik yönlendirmeyin
Tarayıcı diline ya da IP adresine bakıp ziyaretçiyi kendiliğinden başka bir dile göndermek cazip görünür. Google ise bunu önermez: dil tahminine göre otomatik yönlendirmekten kaçınmanızı, IP analizine dayanarak içeriği değiştirmemenizi söyler ve IP konum analizinin genellikle güvenilir olmadığını belirtir. Teknik bir neden de var: yerel uyarlamalı sayfalar dokümanına göre Googlebot varsayılan olarak ABD merkezli IP adreslerinden ve Accept-Language başlığı göndermeden tarar. Yönlendirme yaparsanız Google bazı dil sürümlerinizi hiç görmeyebilir.
Bunun yerine her sayfaya bir dil değiştirici koyun. Değiştirici, ana sayfaya değil aynı sayfanın diğer dildeki karşılığına gitmelidir. Dil adlarını kendi dilinde yazmak (“English”, “Deutsch”) ve bayrak yerine dil adı kullanmak daha anlaşılırdır; bayrak ülkeyi, metin dili temsil eder. Dili yalnızca çerezle değiştiren, adresi aynı bırakan çözümlerden de kaçının; Google her dil sürümü için ayrı URL kullanılmasını önerir.
Makine çevirisi ve insan kontrolü
Makine çevirisi bugün çok dilli sitelerin başlangıç noktası. Hız ve maliyet avantajı büyük, ama yayına doğrudan çıkan çeviri iki risk taşır. Birincisi kalite: marka adları, teknik terimler ve ürün özellikleri yanlış çevrilebilir. İkincisi arama: Google’ın spam politikaları, kullanıcıya az değer katan çok sayıda sayfayı otomatik dönüşümlerle (çeviri dahil) üretmeyi “ölçekli içerik kötüye kullanımı” örnekleri arasında sayar.
Pratikte işe yarayan düzen şöyle:
- Tüm siteyi makine çevirisiyle hazırlayın.
- Marka adları ve sabit terimler için bir sözlük tanımlayın.
- En çok trafik alan ve dönüşüm getiren sayfaları (ana sayfa, hizmet ve ürün sayfaları, ödeme adımları) bir insanın okumasından geçirin.
- Sözleşme, KVKK ve iade metinleri gibi hukuki içeriği profesyonel çevirmene bırakın.
WordPress’in çok dilli site dokümanı, eklentilerin farklı yaklaşımlarını sıralar: her dil için ayrı yazı, tüm dillerin tek yazıda tutulması, oluşan sayfanın makine çevirisiyle çevrilip sonra düzenlenmesi ya da ziyaretçiyi harici bir çeviri hizmetine gönderen araçlar. Son yöntemde çeviri sizin alan adınızda ayrı bir adreste durmaz; bu yüzden Google’ın önerdiği “her dile ayrı URL” yapısını karşılamaz. Bir araç seçerken dil klasörü yapısını, hreflang’i kendisinin üretip üretmediğini, başlık, açıklama ve slug çevirisini, insan düzenleme ekranını ve WooCommerce desteğini karşılaştırın.
Bu ihtiyaç için kendi ürünümüz Dynamic Translator’ı geliştirdik. WordPress ve WooCommerce sitelerini ayrı site kurmadan 110’dan fazla dile açıyor: Google Cloud Translation ve DeepL ile yapay zeka çevirisi yapıyor, çeviriyi insan düzenlemesine açıyor; dil klasörlerini (/tr/, /en/), hreflang etiketlerini, çevrilmiş meta bilgilerini ve slug’ları kendisi kuruyor. Free, Pro ve Agency paketleri var. Ürünü Dynamic Translator vaka çalışmasında ayrıntılı anlattık.
E-ticarette para birimi, fiyat ve dosyalar
E-ticaret sitesinde çeviri işin yarısıdır; dil ile pazar aynı şey değildir. İngilizce sayfaya gelen ziyaretçi Birleşik Krallık’tan, Almanya’dan ya da Körfez ülkelerinden olabilir. Yayına çıkmadan önce şu kararları verin:
- Para birimi: Para birimini dile mi, ülkeye mi bağlayacaksınız? Ziyaretçinin seçebilmesi gerekiyor mu?
- Fiyat: Kur çevrimiyle mi gösterilecek, yoksa her pazar için elle belirlenmiş fiyatlar mı olacak? Kurla çevrilen fiyat 20,37 € gibi tuhaf rakamlar üretir; yuvarlama kuralı belirleyin.
- Kargo ve vergi: Ürün sayfasında görünen fiyat ile ödeme adımındaki tutar aynı mantıkla hesaplanmalıdır.
- İndirilebilir dosyalar: Kullanım kılavuzu, katalog ya da dijital ürün satıyorsanız İngilizce sayfadan alan müşteriye İngilizce dosya gitmelidir. Bunun için siparişin hangi dilde verildiği kaydedilmelidir.
- E-postalar: Sipariş onayı ve kargo bildirimi, müşterinin alışveriş yaptığı dilde gönderilmelidir.
PDF gibi HTML olmayan dosyaların dil sürümleri de hreflang ile işaretlenebilir; Google HTTP başlığı yönteminin bu tür dosyalar için uygun olduğunu belirtir. Dynamic Translator’da bu ihtiyaçlar için WooCommerce’e özel iki eklenti var: yerel fiyatlandırma için Local Pricing, dile göre dosya teslimi için Localized Downloads.
Sık sorulan sorular
hreflang sıralamayı yükseltir mi?
Google’ın dokümanı hreflang’i, kullanıcıya en uygun dil sürümünü göstermenin yolu olarak anlatır; sıralama artışı vaat etmez. Doğru kurulduğunda, örneğin İngilizce arama yapan bir kullanıcıya Türkçe sayfanız yerine İngilizce sayfanızın gösterilmesine yardım eder.
Her sayfayı her dile çevirmek zorunda mıyım?
Hayır. Google, tüm dil kümesini sürdürmek zorsa bazı dilleri atlayabileceğinizi, karşılıklı bağlanan sayfa çiftlerini yine de işleyeceğini belirtir. Henüz çevrilmemiş bir sayfayı hreflang kümesine eklemeyin; ziyaretçiyi yanlış dildeki içeriğe götürür.
Alt alan adından dil klasörüne geçebilir miyim?
Geçebilirsiniz, ama bu bir adres değişikliğidir. Her eski adres, yeni karşılığına 301 ile yönlendirilmeli; hreflang etiketleri ve site haritası yeni adreslerle güncellenmelidir.
Sonuç
Çok dilli bir WordPress sitesi dört temel üzerine kurulur: her dile ayrı ve tutarlı bir URL, karşılıklı ve tam adresli hreflang etiketleri, başlıktan slug’a kadar gerçekten çevrilmiş içerik ve ziyaretçiyi yönlendirmek yerine seçim yapmasına izin veren bir dil değiştirici. E-ticaret sitelerinde bunlara para birimi, fiyat ve dosya kararları eklenir.
Sitenizi yeni dillere açmayı düşünüyorsanız mevcut yapınıza birlikte bakabiliriz. SEO ve dijital görünürlük hizmetimizde çok dilli SEO kurulumunu, web ve mobil uygulama geliştirme hizmetimizde ise WordPress ve WooCommerce tarafındaki uygulamayı ele alıyoruz.