Çok Dilli Web Sitelerinde SEO: Sık Yapılan Hatalar ve Çözümleri
Çok dilli web uygulamaları geliştirmek, tek dilli bir siteye kıyasla çok daha fazla karar gerektiriyor. Özellikle SEO tarafında — hreflang yönetimi, canonical URL'ler, yapısal veri ve URL yapısı gibi konularda yanlış bir adım, tüm organik trafiğinizi sıfırlayabilir.
Bu yazıda, çok dilli bir web projesi olan ForexTradeLab.com üzerinden gerçek dünyada karşılaşılan SEO sorunlarını ve çözüm yaklaşımlarını inceleyeceğim.
Çok Dilli Sitelerde URL Stratejisi
Çok dilli bir site kurarken ilk karar URL yapısıdır. Üç yaygın yaklaşım var:
| Yöntem | Örnek | Avantaj | Dezavantaj |
|---|---|---|---|
| Subdomain | ar.site.com/about/ | Dil bazlı ayrı hosting | Her subdomain ayrı domain authority |
| Subdirectory | site.com/ar/about/ | Tek domain authority | Routing karmaşıklığı |
| Parametre | site.com/about?lang=ar | Kolay implementasyon | Google tarafından önerilmiyor |
SEO açısından en sağlıklı yöntem subdirectory yaklaşımıdır. Google'ın kendi dokümantasyonu da bunu öneriyor çünkü tüm diller aynı domain authority'den faydalanıyor.
İncelediğim projede de bu yaklaşım kullanılmış: varsayılan dil için prefix yok, diğer diller prefix alıyor. Örneğin:
/tools/lot-calculator/ → İngilizce (varsayılan)
/ar/tools/lot-calculator/ → Arapça
Hreflang: En Çok Hata Yapılan Konu
hreflang tagları, arama motorlarına "bu sayfanın başka dillerde de versiyonları var" demek için kullanılıyor. Kulağa basit geliyor ama pratikte en çok hata yapılan SEO konularından biri.
1. Self-referencing hreflang eksikliği
Her sayfa, kendi diline ait hreflang'i de içermeli. Çoğu geliştirici sadece diğer dillere link verir, kendisini unutur:
<!-- Yanlış: Sadece diğer dil -->
<link rel="alternate" hreflang="ar" href="https://site.com/ar/about/" />
<!-- Doğru: Kendisi dahil tüm diller + x-default -->
<link rel="alternate" hreflang="en" href="https://site.com/about/" />
<link rel="alternate" hreflang="ar" href="https://site.com/ar/about/" />
<link rel="alternate" hreflang="x-default" href="https://site.com/about/" />
2. Canonical URL ile hreflang çakışması
Bu hata tek başına yüzlerce uyarı üretebilir. Canonical URL sonunda slash (/) varsa, hreflang URL'lerinde de olmalı. Tutarsızlık olduğunda Semrush gibi araçlar bunu "hreflang conflict" olarak raporlar.
Çözüm basit: slash'sız gelen URL'leri 301 ile slash'lı versiyona yönlendirmek. Böylece site genelinde tek bir URL formatı olur.
3. Gereksiz bölgesel dil tagları
Arapça içerik tek bir versiyonda sunuluyorsa, ar-SA, ar-AE, ar-EG gibi bölgesel taglar kullanmak anlamsız. Hepsi aynı URL'e işaret ediyorsa Google bunu "duplicate alternate" olarak işaretler. Tek bir hreflang="ar" yeterlidir.
Sitemap'te Hreflang Yapısı
Sitemap içinde hreflang tanımlamak, HTML'deki tanımlamayı destekler. Ancak kritik bir kural var: her dil versiyonu için ayrı URL bloğu oluşturulmalı ve her blok tüm alternatifleri içermeli.
<url>
<loc>https://site.com/about/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://site.com/about/" />
<xhtml:link rel="alternate" hreflang="ar" href="https://site.com/ar/about/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://site.com/about/" />
</url>
<url>
<loc>https://site.com/ar/about/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://site.com/about/" />
<xhtml:link rel="alternate" hreflang="ar" href="https://site.com/ar/about/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://site.com/about/" />
</url>
Sadece bir dili yazıp diğerini atlarsanız, Google eksik olan dili indexlerken hreflang sinyalini göremez.
Structured Data ve E-E-A-T
Google'ın E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) kriterleri, özellikle finans, sağlık, hukuk gibi YMYL kategorisindeki sitelerde çok önemli. Structured data bu sinyalleri güçlendirmenin en etkili yolu.
Önerilen şemalar:
- BlogPosting — yazar bilgisi, yayın ve güncellenme tarihi
- ProfilePage — yazar profil sayfaları için
- SoftwareApplication — online araçlar için (ücretsiz ise
"price": "0") - FAQPage — sıkça sorulan sorular bölümleri için
Önemli bir detay: Google, SoftwareApplication şemasında aggregateRating veya review alanını zorunlu tutuyor. Bu alan eksikse Search Console'da "missing field" hatası alırsınız.
Meta Tag Tutarsızlıkları
Çok dilli projelerde sık karşılaşılan küçük ama kritik bir hata:
<meta name="language" content="english" />
<html lang="en">
Birinde "english" yazarken diğerinde "en" — bu tutarsızlık SEO araçlarında hata olarak çıkar. Her yerde ISO 639-1 kodları (en, ar, tr) kullanılmalı.
Meta Description Uzunluğu
Google meta description'ları piksel cinsinden değerlendirir, karakter sayısıyla değil:
- Başlık: ~580px (yaklaşık 55-60 karakter)
- Açıklama: ~920px (yaklaşık 150-160 karakter)
Bunu aşan metinler arama sonuçlarında kesilir. Çok dilli bir sitede her dilin karakter genişliği farklı olduğu için (Arapça karakterler genellikle daha geniş) her dil için ayrı kontrol şart.
Sonuç
Çok dilli SEO, tek seferlik bir iş değil — sürekli izleme ve iyileştirme gerektiren bir süreç. Semrush ve Google Search Console ile düzenli audit yapmak, hataları erken yakalamak açısından kritik.
Bu yazıda bahsettiğim hataların çoğu, ForexTradeLab.com'un SEO audit sürecinde tespit edilmiş gerçek sorunlar. Eğer siz de çok dilli bir proje üzerinde çalışıyorsanız, bu listeyi bir kontrol listesi olarak kullanabilirsiniz.