Sitemap oluşturucu mu, framework sitemap'i mi?
Sitemap oluşturucu aracı mı, CMS ya da framework'ün ürettiği sitemap mi? lastmod doğruluğu, kapsam, ölçek ve hreflang ile karar verin; kontrol listesi dâhil.
Yazan Roozbeh Nazari · CEO
Search Console bir sitemap istediğinde çoğu kişinin ilk başvurduğu araç bir sitemap oluşturucu olur: alan adını yapıştırın, taramasına izin verin, XML dosyasını indirin, yükleyin. Bazı siteler için bu tam olarak doğru yol. Ancak bir CMS ya da modern bir framework üzerinde çalışan sitelerin çoğu için kalıcı sitemap açısından yanlış, başka bir iş içinse son derece kullanışlı bir araçtır. Bu yazı, arama motorlarının dosyayı nasıl kullandığını gerçekten etkileyen kriterlerle nasıl karar vereceğinizi anlatıyor: tarihlerin doğruluğu, kapsam, ölçek, diller ve bakım.
Önce iki seçenek. Tarayıcı tabanlı bir sitemap oluşturucu, ana sayfanızdan başlayarak linkleri takip edip URL'leri keşfeder, ardından bulduklarını sitemaps.org XML formatında yazar. Framework ya da CMS sitemap'i ise uygulamanın kendi sayfa veritabanından üretilir: WordPress, Wix ve pek çok platform bunu yapar; Next.js gibi framework'lerde de URL listesini döndüren küçük bir fonksiyon yazarsınız, framework bunu sitemap.xml olarak sunar.
Kriter 1: dosya lastmod konusunda doğruyu söyleyebiliyor mu?
Google'ın dokümantasyonu, lastmod değerini tutarlı ve doğrulanabilir biçimde doğru olduğunda kullandığını, priority ve changefreq değerlerini ise yok saydığını belirtiyor. sitemaps.org protokolü de lastmod'un sitemap'in üretildiği tarih değil, sayfanın son değiştiği tarih olması gerektiğini ekliyor.
Tarayıcı tabanlı oluşturucuların yapısal olarak zayıf olduğu nokta burası. Tarayıcı sayfayı bugünkü hâliyle görür; sunucu güvenilir bir Last-Modified başlığı göndermedikçe içeriğin ne zaman değiştiğini bilemez. Bu yüzden pek çok araç lastmod'u ya hiç yazmaz ya da her URL'ye tarama tarihini basar. Framework sitemap'i ise CMS'teki gerçek güncellenme alanını okuyabilir. Siteniz düzenli olarak değişiyorsa, çoğu zaman bu kriter tek başına framework lehine kararı verir.
Kriter 2: kapsam ve taramanın neden farklı URL'ler bulduğu
Bir tarayıcı yalnızca link verilmiş sayfaları bulabilir. Var olan ama hiçbir yerden link almayan yetim sayfalar taranmış bir sitemap'te yer almaz. Veritabanı tabanlı bir sitemap ise, filtrelemediğiniz sürece, dizine eklenmesini istemeyebileceğiniz zayıf etiket arşivleri ya da test sayfaları dâhil hepsini listeler.
Bu fark işe yarar. Sitenize bir sitemap oluşturucu ya da site tarayıcısı çalıştırıp URL listesini framework sitemap'inizle karşılaştırmak, yetim sayfaları ve sitemap'te hiç olmaması gereken sayfaları bulmanın en hızlı yollarından biridir. Teknik SEO denetimlerinde tam olarak bu karşılaştırmayı kullanıyoruz: kalıcı dosya uygulamadan gelir, tarayıcı kontrol aracıdır.
Kriter 3: ölçek ve sitemap index dosyaları
Tek bir sitemap 50.000 URL ya da sıkıştırılmamış 50 MB ile sınırlıdır. Daha büyük siteler listeyi birkaç dosyaya böler ve bunlara bir sitemap index dosyasından referans verir; index dosyası, Search Console'da siteler arası gönderim ayarlanmadıkça listelediği dosyalarla aynı sitede, bu dosyalarla aynı dizinde ya da daha üst bir dizinde bulunmalıdır. Framework'ler bunu kodla çözer: örneğin Next.js, bir veritabanı sorgusundan numaralandırılmış sitemap dosyaları üreten generateSitemaps fonksiyonunu belgeliyor. Bir tarayıcıyla ise her seferinde tüm siteyi yeniden taramanız ve birkaç dosyayı elle yüklemeniz gerekir; bu birkaç yüz URL için yönetilebilir, ötesinde kırılgandır.
Kriter 4: diller ve hreflang alternatifleri
Çok dilli siteler, xhtml:link öğeleriyle dil alternatiflerini sitemap içinde bildirebilir; Google bunu, bir sayfanın yerelleştirilmiş sürümlerini kendisine bildirmek için desteklediği yöntemlerden biri olarak belgeliyor. Framework sitemap'i bunları sayfaları oluşturan aynı veriden üretebilir; böylece sayfa, çevirileri ve sitemap birbiriyle tutarlı olur. Bazı çevrimiçi araçlar da hreflang sitemap'leri üretebiliyor, ancak her sayfanın etiketlerini doğru okumalarına bağımlıdırlar ve henüz link verilmemiş bir çeviriden haberdar olmalarının yolu yoktur. Birden fazla dilde yayın yapıyorsanız, karar vermeden önce çok dilli sitede sitemap mimarisi yazımızı okuyun.
Google, bir sayfanın yerelleştirilmiş sürümlerini bildirmek için üç yol tanımlıyor: sayfadaki HTML etiketleri, HTTP başlıkları ve sitemap. Google'a göre bu üç yöntem eşdeğerdir; yönetmesi size en kolay geleni seçebilirsiniz. Hangisini seçerseniz seçin iki kural değişmez: her dil sürümü kendisini ve diğer tüm dil sürümlerini listelemelidir ve iki sayfa birbirini karşılıklı olarak göstermiyorsa bu işaretler yok sayılır. Hiçbir dil kullanıcının tarayıcı ayarıyla eşleşmediğinde gösterilecek varsayılan sayfayı da x-default değeriyle belirtebilirsiniz. Framework sitemap'i bu karşılıklı listeleri sayfaları oluşturan aynı veriden ürettiği için eksik bir dönüş linkini elle takip etmeniz gerekmez.
Kriter 5: ücretsiz sitemap oluşturucu mu, bakımı yapılan bir dosya mı?
Ücretsiz bir sitemap oluşturucu tek seferlik bir dosya için yeterlidir; ancak aracın kendi sayfasında kaç URL tarayacağını, robots.txt ve canonical etiketlerine uyup uymadığını kontrol edin. Asıl maliyet bakımdır: üretilmiş bir dosya bir anlık görüntüdür ve her yeni sayfa, dosyayı yeniden üretip yeniden yüklemek demektir. Framework sitemap'i bir kez geliştirici zamanına mal olur, sonra kendi kendine güncel kalır. Google'ın rehberine göre birkaç düzineden fazla URL içeren bir sitemap'in elle yazılması yerine üretilmesi gerekir; WordPress, Wix veya Blogger gibi bir CMS de büyük olasılıkla zaten bir sitemap sunuyordur. Bu nedenle dosyanın bakımını uygulamaya bırakmanızı öneriyoruz.
Karar kontrol listesi
- Sitenizin bir sayfa veritabanı varsa, düzenli yayın yapıyorsanız, birkaç düzineden fazla URL'niz varsa ya da birden fazla dilde yayındaysanız CMS veya framework sitemap'inizi kullanın.
- Site CMS'siz küçük bir statik siteyse, geçici bir mikrositeyse ya da framework sürümü hazırlanırken bugün bir dosyaya ihtiyacınız varsa tarayıcı tabanlı bir sitemap oluşturucu kullanın.
- Her iki durumda da tarayıcıyı bir denetim aracı olarak kullanın: URL listesini sitemap ile karşılaştırarak yetim sayfaları, yönlendirmeleri, noindex sayfaları ve listelenmemesi gereken canonical olmayan URL'leri bulun.
- Dosyayı ne üretirse üretsin, Search Console'a gönderin; Sitemaps raporunda "Couldn't fetch" ya da "Has errors" durumlarını izleyin ve keşfedilen sayfa sayısını beklentinizle karşılaştırın.
Sık gördüğümüz hatalar
Pratiğimizde tekrar eden sorunlar şunlar: yönlendirilen ya da noindex olan URL'leri listeleyen sitemap'ler, içerik değişmediği hâlde her deploy'da değişen lastmod değerleri, www host'undaki bir sitemap'in www'suz mülke gönderilmesi ve yıllar önce bir kez yüklenip hiç güncellenmeyen taranmış bir dosya. Bunların her biri arama motorlarına dosyanın güvenilmeye değmediğini öğretir.
Kendi kurulumunuzu kontrol etmek isterseniz araçlar sayfamız iyi bir başlangıç; teknik SEO ekibimiz de framework'ünüzün dosyayı nasıl ürettiğini inceleyebilir. Sitemap URL'nizle bize ulaşırsanız ilk olarak neyi değiştireceğimizi söyleriz.
Kaynaklar
- Build and submit a sitemap — Google Search Central
- Manage large sitemaps with sitemap index files — Google Search Central
- Sitemaps XML protocol — sitemaps.org
- sitemap.xml file convention — Next.js documentation
- Sitemaps report — Search Console Help
- Tell Google about localized versions of your page — Google Search Central