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 (&) 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:
noindexetiketli 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
- Robots.txt’ye ekleyin:
Sitemap: https://www.ornek.com/sitemap.xmlsatırı tüm arama motorlarının haritayı bulmasını sağlar. - 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.
- 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
-
lastmoddeğ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.