İçeriğe atla
SEO Evaluate
İlgili yazılar
SEO5 dk okuma

Çok dilli sitede sitemap mimarisi: locale ve indeks bütçesi

Çok dilli sitede sitemap mimarisi: locale başına dosya mı tek indeks mi, hreflang'ı sitemap'e taşıma, lastmod disiplini ve dışarıda kalacak URL'ler.

Yazan Roozbeh Nazari · CEO

Çok dilli sitede sitemap mimarisi: locale ve indeks bütçesi

Sitemap, teknik SEO'nun en az konuşulan ve en çok yanlış kurulan parçasıdır. Tek dilli bir sitede yanlış kurulmuş bir sitemap genellikle zararsızdır: Google URL'leri başka yollardan da bulur. Çok dilli bir sitede ise sitemap, dört dilin dört ayrı URL kümesi olduğunu, hangi URL'nin hangi dilin kanonik sürümü olduğunu ve neyin indekslenmesini istemediğinizi anlattığınız tek yapısal belgedir. Bu yazı, Türkçe, İngilizce, Arapça ve Farsça yayın yapan bir sitede sitemap mimarisini nasıl kurduğumuzu ve hangi kararların neden alındığını anlatıyor.

Önce kurallar: protokolün sınırları

Sitemap protokolü iki sert sınır koyar: bir sitemap dosyası en fazla 50.000 URL içerebilir ve sıkıştırılmamış boyutu 50 MB'ı geçemez. Bu sınırların üstündeki siteler dosyayı bölmek ve bir sitemap indeks dosyasıyla birleştirmek zorundadır. Çok dilli bir kurumsal sitenin bu sınırlara yaklaşması nadirdir; birkaç yüz veya birkaç bin URL'lik bir site tek dosyaya sığar. Yine de bölme kararını boyut değil, yönetilebilirlik verir; buna aşağıda geliyoruz.

İkinci kural Google'ın kendi belgesinden: Google, sitemap'teki priority ve changefreq alanlarını yok sayar; lastmod alanını ise yalnızca tutarlı biçimde doğru olduğunda kullanır. Bu, sitemap'e "her sayfa her gün değişiyor" yazmanın hiçbir işe yaramadığı, sayfanın gerçekten değiştiği tarihi yazmanın ise işe yaradığı anlamına gelir.

Tek dosya mı, locale başına dosya mı

Küçük ve orta ölçekli çok dilli sitelerde üç mimari görüyoruz. Birincisi tek dosya: tüm locale'lerin URL'leri bir sitemap.xml içinde. Basit, kurulumu kolay, birkaç bin URL'ye kadar sorunsuz. Zayıf yanı, Search Console'da locale bazında indeksleme oranını okuyamamanız; tüm site tek satırda görünür. İkincisi locale başına dosya ve bir indeks: sitemap-tr.xml, sitemap-en.xml, sitemap-ar.xml, sitemap-fa.xml ve bunları listeleyen sitemap.xml. Search Console her dosyayı ayrı raporlar; Arapça sayfaların yüzde kaçının indekslendiğini, Türkçe sayfalarla karşılaştırarak görürsünüz. Üçüncüsü içerik türü başına dosya: sayfalar, blog yazıları, hizmetler ayrı dosyalarda. Bu model, blog yazılarının indekslenme hızını sabit sayfalardan ayrı izlemek istediğinizde işe yarar.

Bizim tercihimiz, site birkaç yüz URL'nin altındayken tek dosya, üstüne çıktığında locale başına dosya. Karar noktası boyut değil, teşhis ihtiyacı: bir locale'de indeksleme sorunu yaşamaya başladığınız gün, o locale'i ayrı bir dosyada görmek istersiniz. Bu teşhis akışını indeksleme sorunları yazısında adım adım anlattık; sitemap bölünmesi o akışın ilk aracıdır.

hreflang'ı sitemap'e taşımak

Google, dil ve bölge sürümlerini üç yoldan bildirmenizi kabul eder: HTML head içinde link etiketleri, HTTP başlıkları veya sitemap içinde xhtml:link girdileri. Çok dilli sitelerde head etiketleri yaygın ama iki zayıflığı var: her sayfada tekrar eden ve sayfa boyutunu büyüten bir blok oluşturur, ve şablon hataları tüm siteye aynı anda yayılır. Sitemap yöntemi bu bloğu tek bir dosyaya toplar ve doğrulamayı kolaylaştırır: dört dilin karşılıklı gösterimini bir XML dosyasında okuyup script ile kontrol edebilirsiniz.

Kural basit ama sık ihlal edilir: her URL girdisi, kendisi dahil tüm alternatiflerini listelemeli ve alternatifler karşılıklı olmalı. Türkçe sayfa Arapça sürümünü gösteriyorsa, Arapça sayfa da Türkçe sürümünü göstermeli. Bir sürümün eksik olduğu, yani yalnızca üç dilde var olan bir sayfa için girdi yalnızca var olan üç sürümü listeler; olmayan bir sayfaya işaret eden hreflang, en sık gördüğümüz hatalardan biridir. Bu ve benzeri hataların tam listesi hreflang hataları yazısında var. Sitemap ve head etiketlerini aynı anda kullanıyorsanız, ikisi birbiriyle çelişmemeli; pratikte tek yöntem seçmek daha güvenli.

Arapça ve Farsça URL'ler: kodlama

Sitemap, URL'lerin yüzde kodlamalı biçimini ister. Arapça veya Farsça slug içeren bir URL, tarayıcıda okunabilir görünse de sitemap'te her harfi yüzde kodlamalı altı karakter olarak yer alır. Bu iki sonuç doğurur. Birincisi, dosya boyutu Latin alfabeli URL'lere göre hızla büyür; 50 MB sınırına yaklaşmazsınız ama dosya insan gözüyle okunmaz hale gelir, doğrulamayı script ile yapmalısınız. İkincisi, çok uzun Arapça veya Farsça slug'lar, sitemap dışında da sorun çıkarır: bazı sunucu ve önbellek katmanları URL uzunluğunu sınırlar. Kendi pratiğimizde locale başına slug'ın yüzde kodlamalı uzunluğunu 240 karakterin altında tutuyoruz ve bu kontrolü yayın öncesi otomatik yapıyoruz.

Sitemap'e girmeyecekler

Sitemap bir "sitedeki tüm URL'ler" listesi değil, "indekslenmesini istediğim kanonik URL'ler" listesidir. Şunlar dışarıda kalır: yönlendirme yapan URL'ler, 404 veya 410 dönen URL'ler, noindex etiketli sayfalar, kanonik etiketi başka bir URL'yi gösteren sayfalar, parametreli veya sıralama filtreli kopyalar, giriş gerektiren sayfalar ve locale seçim ya da otomatik yönlendirme yapan ara sayfalar. Bunlardan herhangi birinin sitemap'te olması, Search Console'da "Gönderilen URL indekslenmedi" satırlarını şişirir ve gerçek sorunları görünmez kılar. Sitemap'in temizliği, indeksleme raporunun okunabilirliğidir.

İndeks bütçesi: kimin sorunu

Google'ın tarama bütçesi belgesi açık: bu konu esas olarak çok büyük veya çok sık değişen siteler için önemlidir. Birkaç bin URL'lik bir klinik veya ajans sitesinde tarama bütçesi darboğaz değildir. Buna rağmen çok dilli sitelerde bütçe kelimesini sık duyarız, çünkü belirtiler benzer görünür: yeni sayfalar geç indekslenir, bazı locale'ler geride kalır. Gerçek neden genellikle bütçe değil, sinyal karışıklığıdır: hreflang çelişkileri, kanonik hataları, locale otomatik yönlendirmesi veya sitemap'teki çöp URL'ler. Bütçe tartışmasına girmeden önce bu dördünü temizleyin; çoğu durumda tartışma orada biter.

Doğrulama ve bakım

Sitemap'i kurmak bir günlük iş, doğru tutmak süreklidir. Üç kontrolü otomatikleştiriyoruz. Birincisi, sitemap'teki her URL'nin 200 döndüğünü ve kendisini kanonik olarak gösterdiğini haftalık kontrol eden bir script. İkincisi, dört locale'in URL sayısını karşılaştıran bir sayım: Türkçe'de 60 yazı varken Farsça'da 40 görünüyorsa, 20 yazının çevirisi eksik ya da yayınlanmamış demektir; bu sayım içerik operasyonunun da denetimidir. Üçüncüsü, Search Console'daki sitemap raporunun her locale dosyası için "başarılı" durumda olduğunun ve keşfedilen URL sayısının dosyadaki sayıyla eşleştiğinin aylık kontrolü. Bu üç kontrolün tamamı teknik SEO denetim listemizde yer alıyor.

Son bir not: sitemap'i Google'a "ping" ile bildirmek artık gerekmez; bu uç nokta kullanımdan kaldırıldı. Sitemap'i Search Console'a bir kez gönderin ve robots.txt içinde Sitemap satırıyla gösterin; sonrası lastmod disiplinine bağlı. Çok dilli sitelerde sitemap'in nasıl kurulacağı, teknik SEO hizmetimizin ilk haftasında ele aldığımız konulardan biri; çünkü sonraki her indeksleme tartışması bu dosyanın doğruluğuna dayanır.

Kaynaklar

// İLETİŞİM

Brief'inizi iletin. Brief'iniz bize ulaşsın.

Tanışma görüşmemiz ücretsiz. Brief'iniz bize ulaştığı an pazar fırsatınızı ve en öncelikli büyüme fırsatlarınızı haritalandırırız.