Arapça ve Farsça RTL sitelerde teknik SEO listesi
RTL sitelerde sık kaçan teknik SEO kalemleri: dir ve lang, mantıksal CSS, yüzde kodlu slug uzunluğu, ZWNJ ve rakam biçimleri.
Yazan Roozbeh Nazari · CEO
Arapça ve Farsça sürümler çoğu projede en son eklenen ve en az denetlenen katman oluyor. Görsel olarak çalışıyor gibi görünüyorlar, çünkü tarayıcı metni sağdan sola dizmeyi kendiliğinden beceriyor. Sorunlar görsel katmanda değil, işaretlemede ve URL tarafında birikiyor ve genellikle yayına aldıktan haftalar sonra fark ediliyor. Bu yazı, RTL sürümlerde en sık kaçan teknik kalemleri sıralıyor.
Genel denetim akışını teknik SEO denetimi listemizde anlatmıştık; bu yazı onun RTL'e özel eklentisi. Kurumsal tarafta konunun bütünü teknik SEO hizmet sayfamızda.
dir ve lang: CSS ile çözülmez
En yaygın hata, yön bilgisini yalnızca stil tarafında vermek. W3C'nin konuya ayrılmış rehberi bu noktada kesin: HTML sayfalarında temel yönü uygulamak için CSS kullanmayın. Gerekçe teknik değil anlamsal; yön bilgisi içeriğin anlamını etkileyebildiği için işaretlemenin parçası olmalı.
Pratik karşılığı iki satır. Belgenin genel yönü sağdan solaysa html etiketine dir="rtl" eklenir. Aynı rehber, alt seviyedeki yapısal elemanlara dir yazmayı yalnızca o bloğun temel yönünü değiştirmek gerektiğinde öneriyor; yön html'den aşağı doğru miras alındığı için çoğu sayfada ek işaretlemeye gerek kalmıyor.
lang tarafında ise ayrım gözden kaçıyor: Arapça için ar, Farsça için fa. İki dil aynı alfabeyi kullandığı için tek bir değerle geçiştirilen kurulumlara sık rastlanıyor. Bu, hem erişilebilirlik katmanını hem dil hedeflemesini bozar.
Karışık yönlü metin
Sağdan sola bir cümlenin içine soldan sağa bir marka adı, bir ölçü birimi veya bir URL girdiğinde sıralama beklenmedik biçimde bozulabiliyor. Başlıklarda ve meta açıklamalarda bu, kelimelerin gözle görülür şekilde yer değiştirmesine yol açıyor. Latin harfli bir parça satır sonuna denk geldiğinde noktalama işaretinin yanlış tarafa kayması klasik belirtidir.
Kontrol yöntemi basit: içinde İngilizce marka adı, sayı ve noktalama birlikte geçen üç başlığı gerçek cihazda açıp okumak. Sorunu tarayıcı geliştirici araçlarında değil, gerçek gösterimde görürsünüz.
Slug: bir harf altı karakter
RTL projelerde en sert sınır burada. Arapça ve Farsça harfler URL'de yüzde kodlaması ile temsil edilir ve her harf altı karaktere kadar yer kaplar. Latin harfli bir slug'da rahat görünen uzunluk, aynı içeriğin Arapça karşılığında sınırı zorlar. Kodlanmış hâlde iki yüz kırk karakteri aşan slug'lar bizim tarafımızda derleme zamanında sorun çıkarıyor.
Kural olarak slug'ı çevirinin doğal uzunluğuna bırakmayın; başlıktan üretip elle kısaltın. Kontrolü yayın öncesi otomatikleştirmek gerekir, çünkü gözle bakıldığında kısa görünen bir slug kodlandığında sınırın üstünde olabilir.
Farsça tarafta ek bir madde var: slug'a ZWNJ karakteri sızabiliyor. Görünmez olduğu için fark edilmez, kodlandığında yer kaplar ve iki farklı URL üretir. Slug üretiminde ZWNJ'yi tire ya da boşlukla değiştirmek, sonradan yönlendirme yazmaktan ucuzdur.
Kod noktası tutarlılığı
Farsça ye ve kef harfleri, Arapça karşılıklarından farklı kod noktalarıdır ve gözle ayırt edilmez. İçerik farklı kaynaklardan geliyorsa, aynı sayfada iki farklı kod noktası birlikte bulunabilir. Sonuç: aynı kelime iç aramada eşleşmez, slug'lar sessizce farklılaşır, karşılaştırmalar tutmaz.
İçe aktarma sırasında tek yönlü bir normalleştirme uygulamak ve bunu kaydetme anında yapmak doğru yer. Yayın anında düzeltmek geç kalmış olur.
Mantıksal CSS özellikleri
W3C rehberi, kenar boşluğu ve hizalama için sol ve sağ yerine mantıksal karşılıkların kullanılmasını öneriyor; böylece yerelleştirme sırasında stiller kendiliğinden uyum sağlıyor. Uygulamada bu, sabit sol dolgu ve sola hizalı ikonların RTL sürümde yanlış tarafta kalmamasını sağlar. Bu bir SEO kalemi gibi görünmüyor ama düzen bozulduğunda kullanıcı sayfayı terk ediyor ve bunun ölçülebilir bir karşılığı var.
Rakamlar ve tarihler
Arapça ve Farsça içerikte rakamlar Doğu Arap veya Fars rakamlarıyla yazılabiliyor. Bu bir tercih meselesi, ancak aynı sayfada iki biçimin karışması ve yapılandırılmış veride yerel rakamların kullanılması ayrı bir sorun. Yapılandırılmış veride sayısal alanlar makine tarafından okunacağı için standart biçimde kalmalı; görünen metinde yerel biçimi kullanmak serbesttir.
Farsça tarafta takvim de ayrı bir başlık: metinde Hicri şemsi tarih kullanılıyorsa, tarih alanlarının makine tarafında ayrı ve tutarlı kalması gerekiyor.
Yazı tipi, şekillendirme ve kırpma
RTL sürümlerde görsel katman da sessiz hatalar üretiyor. Arap alfabesi bitişik yazıldığı için harfler bulundukları yere göre biçim değiştiriyor; şekillendirmeyi tam desteklemeyen bir yazı tipi metni okunur ama yanlış gösteriyor. Farsça'da ayrıca ye ve kef harflerinin doğru biçimlerini içeren bir yazı tipi gerekiyor; Arapça için seçilen bir yazı tipi Farsça'da her zaman doğru sonuç vermiyor.
İkinci konu kırpma. Başlık ve açıklama alanlarında karakter sınırına göre yapılan kesme işlemleri, bitişik yazıda kelimeyi ortasından bölebiliyor ve ortaya okunamayan bir dizi çıkıyor. Kesmeyi karakter değil kelime sınırında yapmak, RTL tarafında Latin tarafından daha kritik.
Üçüncüsü satır yüksekliği. Arapça ve Farsça'da harflerin üst ve alt uzantıları Latin harflerinden fazla yer kaplıyor; Latin için ayarlanmış dar satır yüksekliği bu dillerde harfleri üst üste bindiriyor. Bu bir estetik sorunu gibi görünüyor ama okunmayan metin okunmuyor.
Bu üç kalemi denetlemenin yolu tek: sayfayı gerçek bir cihazda, gerçek içerikle açmak. Yer tutucu metinle yapılan kontroller bu hataların hiçbirini göstermiyor.
hreflang ve karşılıklılık
Dil sürümlerini birbirine bağlarken Google'ın yerelleştirilmiş sürümler dokümantasyonundaki temel kural değişmiyor: her sürüm kendisi dâhil tüm sürümleri işaret etmeli ve bağlantılar karşılıklı olmalı. RTL tarafında ek risk, yüzde kodlu URL'lerin etiketlerde yarı kodlanmış hâlde yazılması; bir yerde kodlanmış, başka yerde kodlanmamış aynı adres, karşılıklılığı sessizce bozuyor.
Bu başlığın ayrıntılı hâli için hreflang hataları ve tespiti yazısına bakabilirsiniz.
Yayın öncesi kısa liste
- html etiketinde dir doğru mu, lang değeri ar ve fa olarak ayrışmış mı?
- Latin harfli parça içeren başlıklar gerçek cihazda doğru okunuyor mu?
- Slug'ın yüzde kodlanmış uzunluğu sınırın altında mı?
- Slug'da ZWNJ kalmış mı?
- İçerikte Arapça ve Farsça kod noktaları karışmış mı?
- Yapılandırılmış veride rakamlar standart biçimde mi?
- hreflang bağlantıları karşılıklı ve aynı kodlamada mı?
Bu yedi maddeyi yayın kontrol listesine eklemek, RTL sürümlerde sonradan çıkan işlerin büyük kısmını baştan alıyor. Maddelerin çoğu otomatikleştirilebilir; gerçek cihazda okuma adımı ise otomatikleşmiyor ve her yayın öncesi elle yapılması gerekiyor.