Bir XML sitemap, sayfalarınızın listesini arama motorlarına düzenli bir biçimde sunan basit bir dosyadır. İçinde tek gerçekten zorunlu etiket <loc> yani sayfanın URL'sidir; <lastmod> isteğe bağlıdır ve Google, <changefreq> ile <priority> değerlerini tamamen görmezden gelir. Bu yazıda etiketleri tek tek, gerçek bir örnek üzerinden açıklıyoruz.
Türkçe kaynakların çoğu sitemap'in ne olduğunu ve nasıl oluşturulduğunu anlatır ama ham XML yapısına, etiketlerin tek tek ne işe yaradığına nadiren girer. Oysa bir sorunu çözmek için dosyanın içinde ne olduğunu görmeniz gerekir. Aşağıda en sade haliyle başlayıp sitemap index dosyalarına ve doğrulamaya kadar ilerliyoruz.
Temel XML sitemap yapısı
Bir sitemap, UTF-8 ile kodlanmış düz bir XML dosyasıdır. En tepede XML bildirimi, hemen altında ise tüm URL'leri saran <urlset> kök öğesi bulunur. Her sayfa kendi <url> bloğunda yer alır. sitemaps.org protokolüne göre kullanmanız gereken ad alanı (namespace) http://www.sitemaps.org/schemas/sitemap/0.9 şeklindedir. En küçük geçerli sitemap şu şekilde görünür:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.ornek.com/</loc>
<lastmod>2026-06-29</lastmod>
</url>
</urlset>Dikkat ederseniz burada yalnızca iki etiket var. Sayfa sayısı arttıkça aynı yapı içinde yeni <url> blokları eklersiniz. Karmaşık görünmesinin bir nedeni yok; sitemap aslında bir URL listesinden ibarettir. Sorun çıktığında bu sadeliği hatırlamak işinizi kolaylaştırır.
Bu yapıyı kafanızda netleştirmek için üç katmanı ayırın. En dışta dosyanın XML olduğunu söyleyen bildirim satırı var. Onun içinde tüm listeyi ve kullanılacak kuralları tanımlayan <urlset> kabı var. En içte ise her biri tek bir sayfayı temsil eden <url> blokları yer alıyor. Bu üç katmanı tanıdığınızda, başka bir sitenin sitemap'ine baktığınızda neyin nerede olduğunu anında görürsünüz. Tarayıcınızda herhangi bir sitenin /sitemap.xml adresini açıp bu yapıyı kendi gözünüzle incelemeniz, etiketleri ezberlemekten daha öğreticidir.
loc ve lastmod etiketleri
Sitemap'in kalbi <loc> etiketidir. Google Arama Merkezi'ne göre bir sitemap girdisinde zorunlu olan tek öğe budur. İçinde sayfanın tam, mutlak URL'si yer alır. Protokol gereği bu URL 2.048 karakterin altında olmalı ve sitenizde gerçekten erişilebilir, kanonik adresi göstermelidir. Yönlendirme zinciri, 404 veren ya da noindex işaretli sayfalar buraya konmamalıdır.
İkinci etiket <lastmod>, yani sayfanın en son ne zaman anlamlı şekilde değiştiğidir. Bu alan isteğe bağlıdır ama doğru kullanıldığında değerlidir. Tarihi W3C Datetime biçiminde yazarsınız; en yalın hali 2026-06-29 şeklinde sadece tarih, gerekirse saat ve zaman dilimiyle birlikte 2026-06-29T14:30:00+03:00 olur.
Önemli bir nokta: lastmod yalnızca sayfada gerçek bir içerik değişikliği olduğunda güncellenmelidir. Her gün otomatik olarak bugünün tarihini basan sistemler bu sinyali değersizleştirir. Google, lastmod değerini ancak tutarlı ve doğrulanabilir bulduğunda dikkate alır.
Pratikte şöyle düşünün: bir ürün açıklamasını gerçekten düzenlediyseniz lastmod güncellenmelidir, ama sayfanın altındaki yıl bilgisi otomatik değiştiği için tarihi yenilemek yanıltıcıdır. Tutarsız lastmod sinyalleri zamanla Google'ın bu alana olan güvenini azaltır ve değer kaybetmesine yol açar. Bu yüzden lastmod'u "doğru olduğunda kullan, emin değilsen hiç koyma" mantığıyla ele almak en sağlıklısıdır. Zorunlu olmadığını unutmayın; eksik bir lastmod, yanlış bir lastmod'dan iyidir.
changefreq ve priority neden gereksiz
Eski sitemap rehberlerinde sıkça geçen iki etiket vardır: <changefreq> (sayfanın ne sıklıkta değiştiği) ve <priority> (sayfanın site içindeki göreli önemi). Bunları hâlâ sunan araçlar var ama pratikte bir karşılığı kalmadı.
Google Arama Merkezi dokümanı bu konuda açıktır: Google, sitemap'teki priority ve changefreq değerlerini görmezden gelir. Bu değerler taranma sıklığını ya da sıralamayı etkilemez. Yani priority alanına 1.0 yazmanız sayfanızı daha önemli yapmaz, changefreq'e "daily" yazmanız da Google'ı daha sık gelmeye zorlamaz.
Protokol tarafında da bu etiketler zaten bir emir değil, bir ipucu olarak tanımlanmıştır. sitemaps.org'a göre changefreq sadece bir öneridir ve arama motorları bunu yok sayabilir; priority alanının varsayılan değeri ise 0.5'tir. Dolayısıyla bu iki etiketi sitemap'inize eklemek dosyanızı büyütmekten başka bir işe yaramaz. Yeni sitemap'lerde ikisini de güvenle dışarıda bırakabilirsiniz. Çoğu durumda <loc> ve gerektiğinde <lastmod> fazlasıyla yeterlidir.
Sitemap index dosyaları
Tek bir sitemap dosyasının sınırları vardır. Google Arama Merkezi'ne göre bir sitemap dosyası en fazla 50.000 URL içerebilir ve sıkıştırılmamış halde 50 MB'ı geçemez. Sitenizde bundan fazla sayfa varsa URL'leri birden çok sitemap dosyasına bölmeniz gerekir. İşte bu noktada sitemap index dosyası devreye girer.
Sitemap index, içinde sayfa URL'leri değil, başka sitemap dosyalarının adresleri bulunan bir üst dosyadır. Kök öğesi <urlset> değil <sitemapindex>'tir; her alt sitemap ise <sitemap> bloğunda, kendi <loc> ve isteğe bağlı <lastmod> değeriyle listelenir:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.ornek.com/sitemap-urunler.xml</loc>
<lastmod>2026-06-29</lastmod>
</sitemap>
<sitemap>
<loc>https://www.ornek.com/sitemap-blog.xml</loc>
</sitemap>
</sitemapindex>İçeriği konulara göre ayrı dosyalara bölmek (ürünler, kategoriler, blog, statik sayfalar) hem 50.000 sınırını aşmayı önler hem de Search Console'da sorunları izlemeyi kolaylaştırır. sitemaps.org'a göre sitemap index dosyasının kendisi de aynı sınırlara tabidir: en fazla 50.000 sitemap girdisi ve 50 MB. Google Search Console'a tek bir dosya olarak bu index'i göndermeniz yeterlidir; Google geri kalanını oradan keşfeder. Türkçe kaynaklarda neredeyse hiç anlatılmayan bu yapı, büyük siteler için kritik öneme sahiptir.
Bölme stratejisini sadece sınır dolduğu için değil, yönetim kolaylığı için de tercih edebilirsiniz. Diyelim ki blog bölümünüzde bir sorun var; içerikleri ayrı bir sitemap-blog.xml dosyasında tuttuğunuzda, Search Console raporunda sorunun tam olarak hangi grupta olduğunu görürsünüz. Tek bir dev dosyada ise bir hatanın kaynağını bulmak çok daha zordur. Dosyalarınızı 50.000 sınırına dayanmadan, örneğin birkaç bin URL'lik mantıklı gruplara bölmek hem performans hem de teşhis açısından rahatlık sağlar.
Sınırlar, kodlama ve özel karakterler
Birkaç teknik kuralı bir arada tutmakta fayda var. Dosya UTF-8 ile kodlanmalıdır. URL sınırı 2.048 karakterdir. Tek dosya başına 50.000 URL ve 50 MB üst sınırı geçerlidir; dosyalarınızı isterseniz gzip ile sıkıştırarak sunabilirsiniz.
Sık yapılan ve çoğu zaman sessizce hataya yol açan bir konu özel karakterlerin kaçışıdır (entity escaping). URL'lerinizde veya değerlerinizde geçen bazı karakterler XML'de özel anlam taşıdığı için olduğu gibi yazılamaz. sitemaps.org protokolüne göre bunları şöyle kodlamanız gerekir:
- & karakteri & olarak yazılır
- < karakteri < olarak yazılır
- > karakteri > olarak yazılır
Örneğin içinde ?id=1&kategori=2 gibi parametreler geçen bir URL, sitemap'te & yerine & kullanılarak yazılmalıdır. Aksi halde dosya geçersiz sayılır ve Google sitemap'i tamamen okuyamayabilir. Bu hata ekranda fark edilmediği için genellikle gözden kaçar.
Bu sorun en çok elle düzenlenen sitemap'lerde ve düzgün kütüphane kullanmayan özel kodlamalarda görülür. Türkçe karakterli URL'leriniz varsa, bunların da doğru biçimde kodlanmış (encode edilmiş) olması gerekir. Genel kural şudur: URL'leri kendiniz birleştirmek yerine, kullandığınız platformun ya da dilin XML üretme fonksiyonlarına bırakın. Bu fonksiyonlar kaçış işlemini otomatik yapar ve sessiz hataların büyük kısmını baştan engeller.
Geçerlilik doğrulama
Sitemap'i yayına almadan ve sonrasında düzenli olarak doğrulamak işin son ama en çok ihmal edilen adımıdır. İki katmanda kontrol edebilirsiniz.
Birincisi, dosyanın XML olarak biçimsel doğruluğu: doğru ad alanı, kapanmayan etiket olmaması ve özel karakterlerin doğru kaçışlanmış olması. İkincisi ve daha önemlisi, Google Search Console'daki Site Haritaları raporudur. Sitemap'inizin URL'sini buraya gönderir, Google'ın dosyayı okuyup okumadığını, kaç URL bulduğunu ve varsa hataları görürsünüz. Bir sitemap'in HTTP 200 dönmesi tek başına başarı anlamına gelmez; Search Console'un onu sorunsuz işlediğini görmeniz gerekir.
Gönderdikten sonra raporu birkaç gün içinde tekrar kontrol edin. "Başarılı" durumu ve gönderilen URL sayısının beklediğiniz değere yakın olması iyi işarettir. Eğer Google çok daha az URL keşfettiyse, sitemap'inizde okunamayan bir bölüm ya da yanlış formatlı satırlar olabilir. Sitemap index kullanıyorsanız her alt dosyanın durumunu ayrı ayrı görebilirsiniz; bu da sorunu hangi grupta arayacağınızı netleştirir. Doğrulamayı tek seferlik bir iş değil, içerik yapısı değiştikçe tekrarlanan bir alışkanlık olarak görmek en doğrusudur.
Burada gerçekçi bir beklenti şart. Google Arama Merkezi'ne göre sitemap, arama motorlarının URL'leri keşfetmesine yardımcı olur ama listelediğiniz her sayfanın taranacağını veya dizine ekleneceğini garanti etmez. Sitemap bir keşif aracıdır, bir indeksleme garantisi değil.
Her sitenin sitemap'e ihtiyacı var mı
Kısa cevap: hayır. Google Arama Merkezi, sitemap'in en çok büyük sitelerde, dış bağlantısı henüz az olan yeni sitelerde ve zengin medya (video, görsel) barındıran sitelerde değerli olduğunu belirtir. Buna karşılık, sayfaları birbirine iyi bağlanmış, 500 sayfanın altındaki küçük bir sitenin sitemap'e ihtiyacı olmayabilir; Google bu sayfaları zaten iç bağlantılar üzerinden keşfedebilir.
Yine de pratikte bir sitemap bulundurmanın bir zararı yoktur ve çoğu modern platform bunu otomatik üretir. Karar verirken "ihtiyacım var mı" sorusundan çok "doğru yapılandırılmış mı" sorusuna odaklanmak daha verimlidir. Çünkü asıl risk sitemap'in yokluğu değil, yanlış URL'lerle dolu bir sitemap'in arama motoruna karışık sinyaller göndermesidir. İyi bağlanmış küçük bir sitede bile, yanlış yapılandırılmış bir sitemap, var olmayan bir sitemap'ten daha çok zarar verebilir.
Wix, Ikas ve özel sitelerde sık görülen hatalar
Çoğu platform sitemap'i otomatik üretir ama otomatik üretmek doğru üretmek anlamına gelmez. Pratikte en sık karşılaşılan sorunlar şunlardır: sitemap'e noindex sayfaların, filtre/etiket URL'lerinin veya 301 ile yönlendirilen eski adreslerin girmesi; her gün otomatik basılan ve bu yüzden anlamını yitiren lastmod tarihleri; ve büyük kataloglarda sitemap index yapısının hiç kurulmaması.
Bir kontrol listesi olarak şunlara bakmak yeterlidir. Sitemap'inizdeki her URL gerçekten indekslenmesini istediğiniz, kanonik ve 200 dönen bir sayfa mı? Stok tükendiğinde kaldırılan ürün sayfaları sitemap'ten de düşüyor mu? Dosyanız UTF-8 mi ve özel karakterler doğru kaçışlanmış mı? Search Console gönderilen URL sayısını beklediğiniz gibi raporluyor mu? Bu birkaç sorunun cevabı netse, sitemap'iniz işini yapıyor demektir. Cevap belirsizse, sorun büyümeden tespit edilmelidir.
VixSEO, Wix, Ikas ve özel kodlanmış sitelerin sitemap yapısını tam da bu açıdan inceler: hangi URL'lerin gerçekten girmesi gerektiği, gereksiz etiketlerin temizlenmesi ve Search Console'da temiz bir gönderim. Sitenizin sitemap'inin doğru kurulup kurulmadığından emin değilseniz VixSEO araçları üzerinden bir kontrol yaptırabilir, yapılandırma sorunlarını VixSEO hizmetleri ile düzelttirebilirsiniz. Abartılı bir vaat değil; sadece dosyanın olması gerektiği gibi çalıştığından emin olmak.