Site Haritası: HTML Sayfası ve XML Sitemap Aynı Şey Değil
Site haritası dendiğinde iki ayrı şey kastediliyor ve bu karışıklık çoğu sitede yanlış işe emek harcanmasına yol açıyor. Biri ziyaretçinin göreceği bir sayfa, diğeri tarayıcı botuna verilen bir URL listesi. Aynı adı taşıyorlar, aynı işi yapmıyorlar ve birinin varlığı diğerinin eksikliğini kapatmıyor.
Aynı isim, iki ayrı iş
HTML site haritası genelde /site-haritasi gibi bir adreste durur, insan okur, bağlantılardan oluşur ve ana navigasyonun yedeğidir. XML sitemap /sitemap.xml adresinde durur, insan için değildir, arama motoruna "bu adresleri tara" der. Biri kullanılabilirlik meselesi, diğeri teknik SEO meselesi.
Hüküm net: XML sitemap her sitede olmalı, HTML site haritası her sitede gerekmez. Yirmi sayfalık bir kurumsal siteye site haritası sayfası koymak, kimsenin girmediği bir sayfayı bakıma mahkûm etmekten ibarettir.
HTML site haritası: az kullanılır, kullanıldığında kurtarır
Bu sayfaya giren ziyaretçi oranı düşüktür. Bu, sayfanın işe yaramadığı anlamına gelmez; oraya giden kullanıcı zaten menüde aradığını bulamamış, yani kaybolmuş kullanıcıdır. Kurtarma aracının kullanım oranıyla değeri ölçülmez.
Asıl mesele şu: bir bölüme yalnızca site haritasından ulaşılabiliyorsa sorun site haritasında değil, navigasyondadır. Sayfayı teşhis aracı gibi kullan. Site haritasından çıkan tıklamaların hangi bölümlere gittiğine bak; oradaki yoğunluk, ana menünde eksik olan bölümün adresidir. Bu veriyi görüp menüyü düzeltmek yerine haritayı büyütmek, bozuk bilgi mimarisinin üstüne yama atmaktır.
Tasarım tarafında abartılacak bir şey yok. Sayfanın adı "Site Haritası" olsun, footer'da sabit dursun. Hiyerarşiyi iç içe listeyle kur; bu yapı ekran okuyucuda da doğru okunur, görsel girintiyi CSS ile taklit etmekten farkı budur. Açılır kapanır JavaScript ağacı yapma, sayfanın tamamı tek seferde taranabilmeli. Uzun listelerde çok sütunlu yerleşim göz taramasını hızlandırır, gerekçesi de basit: kullanıcı kaydırmak yerine bakıyor.
XML sitemap keşif ipucudur, indeksleme sözü değil
Search Console'da gönderilen URL sayısıyla indekslenen URL sayısının tutmaması bir hata değil, normal durumdur. Sitemap bir sayfayı indekslettirmez, yalnızca varlığını bildirir. İçerik zayıf olduğu, kopya sayılan başka bir sayfayla çakıştığı ya da kanonik başka adrese gittiği için elenen sayfa, sitemap'te yer aldığı için kurtulmaz.
Sınırlar somut: tek bir sitemap dosyası en fazla 50.000 URL ve sıkıştırılmamış halde 50 MB taşır. Bunu aşan sitelerde dosyayı bölüp bir sitemap index dosyasıyla bildirmek gerekir. Ayrıntısı Google'ın sitemap dokümantasyonunda duruyor.
lastmod alanını yalnızca içerik gerçekten değiştiğinde güncelle. Her gece bütün URL'lerin tarihini bugüne çekersen alan tamamen anlamsızlaşır ve zamanla dikkate alınmayı bırakır; kendi sinyalini kendin bozmuş olursun.
Üretim tarafında sitemap'i her kayıt işleminde baştan yazmak yerine, değişen URL'leri bir tabloda biriktirip gecelik tek bir işle dosyaya dökmeyi tercih ederim. On binlerce satırlık bir dosyayı her içerik güncellemesinde yeniden üretmenin ne arama motoruna ne sunucuya faydası var.
Sitemap'e girmeyecek adresler
noindexetiketi taşıyan sayfalar. Aynı anda hem "tara" hem "dizine ekleme" demek çelişkili sinyaldir.- Kanonik etiketi başka bir URL'yi işaret eden sayfalar. Sitemap yalnızca kanonik adresleri taşır.
- 3xx yönlendirme, 4xx ve 5xx dönen adresler. Bunlar tarama bütçesini boşa harcar.
robots.txtile engellenmiş yollar. Bot dosyayı okur ama adrese giremez.- Filtre ve sıralama parametreleriyle çoğalan varyasyonlar. Bir ürün listesinin renk, beden ve sıralama kombinasyonları binlerce URL üretir, hiçbiri ayrı sayfa değildir.
Kısacası sitemap "sitedeki tüm adresler" listesi değil, "dizine alınmasını istediğim kanonik adresler" listesidir. Çoğu sitede dosyanın şişkin olmasının sebebi, bu ikisinin karıştırılmasıdır.
Öncelik sırası
Önce XML sitemap'i doğru kur: kanonik adresler, dürüst lastmod, gerekiyorsa index dosyası. HTML site haritasını ancak site derin ve çok katmanlıysa ekle, eklediysen menüyle birlikte güncelle. Bakımsız kalmış bir site haritası, hiç olmayandan daha kötüdür; kullanıcıya var olmayan sayfaların adını gösterir.