Locale auto-redirect neden SEO katilidir: Googlebot ve Accept-Language vakası (kendi sitemizden kanıtlarla)
IP ve tarayıcı diline göre otomatik yönlendirme, Googlebot'a sitenizin tek sürümünü gösterir. Mekanizma, 15 dakikalık test prosedürü ve doğru kurulum deseni.
Yazan Roozbeh Nazari · CEO
Fikir kağıt üstünde misafirperver görünür: İstanbul'dan gelen ziyaretçiye siteyi Türkçe, Dubai'den gelene Arapça aç. Tarayıcı dilinden ya da IP'den locale tahmin edip otomatik yönlendirme yapan bu kurulum, çok dilli sitelerde en pahalı hatalardan biridir; çünkü kullanıcı deneyimi adına yapılan şey, arama motorunun sitenin büyük bölümünü görmesini engeller. Bu yazıda mekanizmayı adım adım açıyoruz ve her iddiayı kendi sitenizde on beş dakikada test edebileceğiniz komutlarla bırakıyoruz; kimsenin sözüne güvenmenize gerek yok, kanıtı kendi sunucunuzdan alın.
Önce iki dokümante gerçek. Birincisi: Googlebot istekleriyle birlikte Accept-Language başlığı göndermez; yani "tarayıcı diline göre yönlendir" mantığınız bot için her zaman varsayılan dala düşer. İkincisi: Googlebot ağırlıklı olarak ABD merkezli IP adreslerinden tarar. İkisini birleştirin: IP'ye ve dile göre yönlendirme yapan bir site, Googlebot'a neredeyse her ziyarette aynı tek sürümü gösterir; genellikle İngilizce, bazen de varsayılan ne ise o. Google'ın çok bölgeli siteler kılavuzu da bu yüzden açıkça, algılanan dile göre otomatik yönlendirmeden kaçınılmasını, kullanıcı ve tarayıcıların tüm sürümlere erişebilmesinin sağlanmasını önerir. Yani bu bir yorum farkı değil, doğrudan üreticinin kullanım kılavuzuna aykırı bir kurulumdur.
Hasar tek kalemle sınırlı kalmaz, zincirlenir. Taranamayan dil sürümleri indekslenmez ya da indeksten düşer. hreflang etiketleriniz erişilemeyen alternatiflere işaret etmeye başlar; Google doğrulayamadığı eşleşmeyi kullanmaz, böylece ayakta kalan sürümler de yanlış pazarlarda gösterilir. Arama sonucunda Arapça başlık görüp tıklayan kullanıcı, siteye indiği anda başka dile fırlatılır; aradığıyla bulduğu arasındaki bu kopukluk hem dönüşümü hem davranış sinyallerini bozar. Bir de altyapı katmanı var: CDN, 301 cevabını cache'lerse yanlış yönlendirme tüm kullanıcılara donmuş halde servis edilir; VPN kullanıcıları ve seyahat edenler yanlış pazara kilitlenir. Kalıcı yönlendirme tarayıcılarda da cache'lendiği için, hatayı düzeltseniz bile eski kurbanlar bir süre yanlış adrese gitmeye devam eder.
Şimdi test prosedürü. Birinci test, komut satırından: Googlebot'un user-agent'ıyla derin bir dil URL'sine istek atın ve durum koduna bakın; örneğin curl -sI -A "Googlebot" ile /ar/ altındaki bir hizmet sayfasını çekin. Beklenen cevap 200'dür; 301 veya 302 görüyorsanız botun o sayfaya erişimi yönlendirmeyle kesiliyor demektir. İkinci komut, dil başlığının etkisini ölçer: aynı URL'yi bir kez Accept-Language: ar ile, bir kez başlıksız isteyin; kök URL'nin başlıksız istekte nereye gittiğine özellikle bakın, çünkü Googlebot'un gördüğü dal odur. Bir uyarı: bazı kurulumlar yalnızca doğrulanmış bot IP'lerine farklı davranacak şekilde yazılmıştır, bu yüzden komut satırı testleri temiz çıksa bile sonraki iki testi atlamayın. Komutların çıktısını saklamayı da alışkanlık edinin; aynı testleri düzeltme sonrasında tekrarladığınızda elinizde karşılaştırılabilir bir önce-sonra kaydı olur.
İkinci test Search Console'dan: URL Inspection'a Arapça veya İngilizce derin bir URL verin ve canlı test çalıştırın. Sayfanın getirilemediğini ya da yönlendirme nedeniyle indekslenemediğini görüyorsanız, tahmin bitti, teşhis kondu. Üçüncü test sunucu loglarından: doğrulanmış Googlebot isteklerini ayırın (Google, resmi bot IP aralıklarını yayınlıyor; reverse DNS ile de doğrulanır) ve bu isteklere dönen 30x cevapların oranına bakın. Dil sürümlerine giden bot isteklerinin kayda değer bölümü yönlendirmeyle sonuçlanıyorsa, indeksleme sorununuzun kaynağını buldunuz demektir. Bu üçlü prosedürü kendi kurulumlarımızda da standart olarak çalıştırıyoruz; middleware ve CDN katmanı değişen her sitede sonuç yeniden doğrulanmalı, çünkü masum görünen bir framework güncellemesi sessizce yönlendirme davranışı getirebiliyor.
Sık önerilen bir ara çözüm var: "Googlebot'u yönlendirmeden muaf tutalım." İki nedenle önermiyoruz. Birincisi kırılganlık: user-agent ve IP listelerine dayalı muafiyet, bot altyapısı değiştikçe bozulur ve bozulduğunu genellikle trafik düştükten sonra fark edersiniz. İkincisi ilkesel: kullanıcıya başka, bota başka davranmak cloaking sınırında dolaşmaktır; Google'ın genel tavsiyesi Googlebot'a özel muamele yapılmaması yönündedir. Sorunu botun etrafından dolaşarak değil, davranışı kökten değiştirerek çözmek gerekir.
Doğru desen, yönlendirme yerine öneridir. Tüm dil URL'leri herkes için serbestçe erişilebilir kalır. Siteyi ilk kez açan kullanıcıya, tahmin edilen diline göre küçük ve kapatılabilir bir banner gösterilir: "Bu sayfa Arapça da mevcut." Kullanıcı seçim yaparsa tercih cookie'ye yazılır ve sonraki ziyaretlerde yalnızca kök URL'de uygulanır; derin URL'lere hiçbir koşulda otomatik dokunulmaz. hreflang tarafında x-default, dil seçim sayfasına ya da en geniş kitleye hitap eden sürüme işaret eder. Yasal zorunluluk nedeniyle ülke bazlı içerik farkı olan istisnai durumlarda ise kalıcı olmayan yönlendirme, doğru Vary başlıkları ve dar kapsamla ele alınmalı; bu, genel dil yönlendirmesinden ayrı bir problemdir. Banner'ı tasarlarken Google'ın araya giren rahatsız edici öğelerle ilgili uyarılarını da hatırlayın: içeriği kapatan tam ekran bir dil interstitial'ı, çözdüğünüz sorunun yerine yenisini koyar; küçük, kapatılabilir ve sayfanın okunmasını engellemeyen bir şerit yeterlidir.
Halihazırda otomatik yönlendirme canlıdaysa, geri dönüş planı da testler kadar disiplinli olmalı. Sıra şöyle: önce yönlendirme kuralını kaldırın ve banner desenini devreye alın; ardından CDN ve edge katmanındaki cache'lenmiş yönlendirme cevaplarını temizleyin, aksi halde davranış kod değişse bile bir süre yaşamaya devam eder. Sonra tüm dillerin sitemap'lerini Search Console'a yeniden gönderin ve kritik hizmet sayfaları için URL Inspection üzerinden yeniden tarama isteyin. Toparlanmayı sayfa indeksleme raporlarından haftalık izleyin; beklentiyi de doğru kurun, uzun süre taranmamış bir dil sürümünün indekste sağlıklı biçimde yer bulması günler değil haftalar mertebesinde bir süreçtir.
Karar vericiler için özet şu: otomatik locale yönlendirmesi, kullanıcıya yarım saniye kazandırma vaadiyle arama motorundan koca dil pazarlarını saklayan bir takastır ve takasın kaybeden tarafı her zaman sizsinizdir. Geri alması da ucuz değildir: cache'lenmiş yönlendirmelerin temizlenmesi ve indeksin toparlanması zaman alır. Çok dilli kurulum ve migration projelerinde bu karar, SEO Evaluate'in Teknik SEO hizmetindeki denetim listesinin ilk maddelerinden biri; yukarıdaki üç testi çeyrekte bir kendi sitenizde tekrarlamanızı, her büyük deploy sonrasında da kök URL davranışını kontrol etmenizi öneriyoruz. On beş dakikalık bir test rutini, aylarca sürecek bir indeks kaybının sigortasıdır. Ekibinize de tek cümlelik bir kural bırakın: hiçbir kullanıcı, bir arama sonucuna tıkladıktan sonra aradığı dilden başka bir sayfada uyanmamalı. Yeni bir özellik, A/B testi ya da kişiselleştirme katmanı bu kuralı bozuyorsa, ortada tartışılacak bir tercih değil geri alınacak bir hata var demektir; tartışma ancak kural korunarak nasıl yapılacağı üzerine olabilir.