webtrajans
tr

XML sitemap (site haritası) nedir ve nasıl oluşturulur?

XML site haritası, arama motorlarına sitenizdeki önemli sayfaların listesini veren bir dosyadır. Doğru hazırlanmış bir site haritası, yeni ve güncellenen sayfaların daha hızlı keşfedilmesine yardım eder.

Güncellendi: 5 dk okuma

Arama motorları sayfaları esas olarak bağlantıları takip ederek bulur. Ancak yeni bir sitede dış bağlantı azsa, sayfalar menüden derinlerde kalıyorsa ya da her gün yüzlerce ürün ekleniyorsa, bazı sayfaların keşfedilmesi gecikebilir. XML site haritası (sitemap), “sitemde şu sayfalar var ve en son şu tarihte güncellendiler” diyen makinece okunabilir bir listedir. Sıralamayı doğrudan artırmaz, ama keşfi ve tarama verimliliğini iyileştirir.

XML sitemap formatı

En basit haliyle bir site haritası şöyle 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-10-01</lastmod>
  </url>
  <url>
    <loc>https://www.ornek.com/hizmetler/web-tasarim</loc>
    <lastmod>2026-09-15</lastmod>
  </url>
</urlset>
Etiket Zorunlu mu? Not
<loc> Evet Tam ve mutlak URL; protokol ve alan adı dahil
<lastmod> Hayır, ama önerilir W3C tarih formatı (2026-10-01 veya saatli); yalnızca içerik gerçekten değiştiğinde güncellenmeli
<changefreq> Hayır Google tarafından yok sayılır
<priority> Hayır Google tarafından yok sayılır

Dosya UTF-8 kodlanmalı; URL’lerdeki & gibi özel karakterler XML kaçış karakterleriyle (&amp;) yazılmalıdır. Türkçe karakter içeren adresler (ör. /ürünler) yüzde kodlamasıyla (/%C3%BCr%C3%BCnler) yazılabilir.

Limitler ve sitemap index

Tek bir site haritası dosyası için iki sınır vardır:

  • En fazla 50.000 URL
  • Sıkıştırılmamış halde en fazla 50 MB

Hangisine önce ulaşılırsa dosyayı bölmeniz gerekir. Birden fazla site haritasını tek bir sitemap index dosyasında toplayabilirsiniz:

<?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-1.xml</loc>
    <lastmod>2026-10-06</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://www.ornek.com/sitemap-blog.xml</loc>
  </sitemap>
</sitemapindex>

Ürünler, kategoriler, blog yazıları gibi türlere göre ayrı dosyalar hazırlamak, Search Console’da hangi grubun ne kadar dizine eklendiğini görmenizi de kolaylaştırır. WordPress’te Yoast veya Rank Math gibi SEO eklentileri bunu otomatik yapar (genellikle /sitemap_index.xml), WordPress’in yerleşik site haritası ise /wp-sitemap.xml adresindedir.

Hangi sayfalar site haritasına girmeli?

Site haritası, dizine eklenmesini istediğiniz kanonik sayfaların listesi olmalıdır. Şunları eklemeyin:

  • noindex etiketli sayfalar
  • Başka bir sayfaya kanonik gösteren (canonical) sayfalar
  • Yönlendirilen (301/302) adresler
  • 404 veya hata veren adresler
  • Robots.txt ile engellenmiş sayfalar
  • Sepet, hesap, iç arama sonuçları, filtre/sıralama varyasyonları

Site haritasında bu tür adreslerin olması, Google’a çelişkili sinyal gönderir ve Search Console’da uyarı olarak görünür.

Çok dilli siteler: hreflang

Birden fazla dilde yayın yapıyorsanız, dil versiyonlarını site haritasında xhtml:link ile belirtebilirsiniz:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://www.ornek.com/hakkimizda</loc>
    <xhtml:link rel="alternate" hreflang="tr" href="https://www.ornek.com/hakkimizda"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://www.ornek.com/en/about"/>
  </url>
  <url>
    <loc>https://www.ornek.com/en/about</loc>
    <xhtml:link rel="alternate" hreflang="tr" href="https://www.ornek.com/hakkimizda"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://www.ornek.com/en/about"/>
  </url>
</urlset>

Her dil versiyonu kendi <url> bloğunda yer almalı ve tüm versiyonları karşılıklı listelemelidir. Bir taraf eksikse hreflang ilişkisi göz ardı edilebilir.

Site haritasını arama motorlarına bildirme

  1. Robots.txt’ye ekleyin: Sitemap: https://www.ornek.com/sitemap.xml satırı tüm arama motorlarının haritayı bulmasını sağlar.
  2. Google Search Console: Dizin oluşturma → Site haritaları menüsünden adresi girip gönderin. Rapor, keşfedilen URL sayısını ve hataları gösterir.
  3. Bing Webmaster Tools: Aynı şekilde site haritasını gönderin. Bing ve Yandex, değişiklikleri anında bildirmek için IndexNow protokolünü de destekler.

Google’ın eski “sitemap ping” adresi 2023’te kullanımdan kaldırıldı; değişiklikleri bildirmek için lastmod değerini doğru tutmanız ve haritayı Search Console’da bir kez göndermeniz yeterlidir.

Sık karşılaşılan hatalar ve çözümleri

Search Console mesajı Olası neden Çözüm
Alınamadı (Couldn’t fetch) Adres yanlış, dosya 404/5xx dönüyor, robots.txt veya güvenlik duvarı Googlebot’u engelliyor Adresi tarayıcıda açın, site haritası kontrol aracıyla test edin, WAF/Cloudflare kurallarını kontrol edin
Site haritası HTML Dosya XML yerine bir HTML sayfası (ör. 404 sayfası) döndürüyor Doğru adresi gönderin, Content-Type değerini kontrol edin
Geçersiz URL / farklı alan adı http/https veya www uyuşmazlığı Haritadaki URL’leri Search Console mülküyle aynı formatta yazın
Robots.txt tarafından engellenen URL Haritadaki sayfalar robots.txt ile engelli Engeli kaldırın veya sayfayı haritadan çıkarın; robots.txt test aracıyla doğrulayın
Çok fazla URL / dosya çok büyük 50.000 URL veya 50 MB aşıldı Dosyayı bölüp sitemap index kullanın

Not: Yeni gönderilen bir site haritasında “Alınamadı” durumu bazen yalnızca Google’ın henüz dosyayı işlemediği anlamına gelir. Dosya tarayıcıda sorunsuz açılıyor ve doğru biçimdeyse birkaç gün bekleyin.

Site haritası raporunu okumak

Search Console’da site haritasını gönderdikten sonra iki sayıya bakın: haritadaki keşfedilen URL sayısı ve bu URL’lerin kaçının dizine eklendiği. Site haritasındaki sayfaların tamamının dizine girmesi gerekmez; Google kalitesiz, yinelenen veya düşük değerli bulduğu sayfaları dizine eklemeyebilir. “Sayfalar” raporunu site haritasına göre filtreleyerek dizine eklenmeyen URL’lerin nedenlerini görebilirsiniz: “Tarandı – şu anda dizine eklenmiş değil”, “Yinelenen, kullanıcı tarafından kanonik seçilmemiş” gibi. Bu nedenler, site haritasından çok içerik ve site yapısıyla ilgili iyileştirme ihtiyacına işaret eder.

Site haritanızın otomatik güncellendiğinden emin olun. Elle hazırlanmış ve bir kez yüklenmiş statik bir dosya, yeni sayfalar eklendikçe eskir. WordPress eklentileri, e-ticaret altyapıları ve modern site çatıları haritayı her yayında yeniden üretir.

Büyük sitelerde site haritasını gzip ile sıkıştırarak (sitemap.xml.gz) sunmak bant genişliğinden tasarruf sağlar; 50 MB sınırı yine de sıkıştırılmamış boyut için geçerlidir.

Görsel ve video ağırlıklı sitelerde, görsel ve video site haritası uzantıları sayfalardaki medya dosyalarının keşfedilmesine yardımcı olabilir. Haber siteleri için ise yalnızca son iki güne ait yazıları içeren ayrı bir Google Haberler site haritası kullanılır. Çoğu kurumsal site ve e-ticaret mağazası için standart site haritası yeterlidir; bu uzantılara ancak somut bir ihtiyaç varsa başvurun.

Kontrol listesi

  • Site haritası 200 koduyla ve geçerli XML olarak açılıyor
  • Yalnızca kanonik, dizine eklenebilir ve 200 dönen URL’ler var
  • Dosya başına 50.000 URL / 50 MB sınırı aşılmıyor
  • lastmod değerleri gerçek değişiklik tarihlerini yansıtıyor
  • Robots.txt’de Sitemap: satırı mevcut
  • Search Console ve Bing Webmaster Tools’a gönderildi
  • Çok dilli sitede hreflang karşılıklı tanımlı

Robots.txt hakkında daha fazlası için robots.txt rehberimize göz atın.

Sık sorulan sorular

Her sitenin site haritasına ihtiyacı var mı?

Birkaç düzine sayfalı, iç bağlantıları düzgün küçük bir site site haritası olmadan da taranabilir. Ancak büyük siteler, yeni siteler ve sık içerik ekleyen siteler için site haritası önerilir; hazırlamak da çok kolaydır.

Bir site haritasına en fazla kaç URL eklenebilir?

Tek bir site haritası dosyası en fazla 50.000 URL içerebilir ve sıkıştırılmamış boyutu 50 MB'ı aşamaz. Daha büyük siteler birden fazla dosya hazırlayıp bunları bir sitemap index dosyasında toplar.

Search Console'da 'Alınamadı' hatası ne demek?

Google site haritası dosyasını indirememiştir. Adres yanlış olabilir, dosya 404 veya 5xx dönüyor olabilir, robots.txt erişimi engelliyor olabilir ya da güvenlik duvarı Googlebot'u engelliyor olabilir. Yeni gönderilen haritalarda durum bazen birkaç gün içinde kendiliğinden düzelir.

priority ve changefreq etiketleri işe yarar mı?

Google bu iki değeri yok saydığını belirtmiştir. lastmod değeri ise tutarlı ve doğru olduğu sürece dikkate alınır; her gün otomatik değişen sahte tarihler güveni azaltır.

İlgili rehberler