Blog · 27 Ekim 2026
Sitemap (Site Haritası) Nedir? Oluşturma ve Search Console'a Gönderme
Sitemap (site haritası), bir web sitesinde arama motorlarının bilmesini istediğiniz sayfaları, görselleri ve videoları listeleyen, genellikle XML biçiminde hazırlanan bir dosyadır. Google gibi arama motorları bu dosyayı okuyarak sitenizdeki URL'leri daha hızlı keşfeder ve hangi sayfanın ne zaman değiştiğini anlar. Site haritası sıralamayı tek başına yükseltmez; ama yeni, derinde kalmış veya iç linki zayıf sayfaların bulunup taranmasını belirgin biçimde kolaylaştırır.
Bu rehberde XML site haritasının ne olduğunu, HTML site haritasından farkını, doğru bir örnek dosyanın nasıl göründüğünü, lastmod etiketinin neden önemli olduğunu, büyük sitelerde sitemap index kullanımını, haritaya hangi URL'lerin girmemesi gerektiğini ve dosyayı Search Console'a gönderip raporu nasıl okuyacağınızı adım adım anlatıyoruz.
Site haritası ne işe yarar?
Arama motorları sayfaları büyük ölçüde linkleri takip ederek bulur. Ana sayfadan kategoriye, kategoriden ürüne ya da yazıya giden bir link zinciri varsa tarayıcı (Googlebot) o sayfaya er geç ulaşır. Site haritası bu zincirin yerini almaz, onu tamamlar. Özellikle şu durumlarda fark yaratır:
- Büyük siteler: Binlerce ürün ya da yazı barındıran sitelerde yeni eklenen sayfalar iç linklerle hemen görünür hale gelmeyebilir.
- Yeni siteler: Henüz dışarıdan pek link almamış bir sitede tarayıcının giriş noktası azdır; harita, sayfaların listesini doğrudan sunar.
- Zayıf iç link yapısı: Sayfalandırmanın derinlerinde kalmış ya da hiçbir menüden link almayan (yetim) sayfalar haritada en azından listelenmiş olur.
- Sık güncellenen içerik: Doğru doldurulmuş lastmod değeri, değişen sayfaların yeniden taranmasını önceliklendirmeye yardım eder.
- Zengin medya: Görsel ve video ağırlıklı sitelerde medya dosyalarının keşfi için ek bilgi verir.
Küçük, iyi linklenmiş bir sitede (örneğin birkaç düzine sayfalık bir kurumsal site) site haritası olmasa da Google sayfaları bulabilir. Yine de dosyayı hazırlamanın maliyeti çok düşük ve Search Console'da size ek bir izleme katmanı sağladığı için her sitede bulundurmak iyi bir alışkanlıktır.
Site haritası bir dizine ekleme garantisi değildir
Sık yapılan bir yanlış anlama: "Sayfayı haritaya koydum, o halde dizine girer." Site haritası bir öneri listesidir. Google listedeki URL'leri tarayıp taramamaya, taradıklarını dizine ekleyip eklememeye kendi kalite ve teknik değerlendirmesine göre karar verir. İnce içerikli, kopya ya da düşük değerli sayfalar haritada olsa bile dizin dışında kalabilir. Bu yüzden site haritası, teknik SEO çalışmasının bir parçasıdır, tamamı değildir.
XML site haritası ile HTML site haritası arasındaki fark
"Site haritası" ifadesi iki farklı şeyi anlatmak için kullanılır ve karıştırılması yaygındır.
| Özellik | XML site haritası | HTML site haritası |
|---|---|---|
| Hedef kitle | Arama motoru tarayıcıları | İnsan ziyaretçiler |
| Biçim | Makine tarafından okunan XML dosyası | Normal bir web sayfası, link listesi |
| Tipik adres | /sitemap.xml | /site-haritasi gibi bir sayfa |
| Ek bilgi | lastmod, görsel ve video bilgileri | Başlıklar, kategoriler, gezinme yapısı |
| Search Console'a gönderilir mi? | Evet | Hayır |
HTML site haritası kullanıcıya sitenin yapısını gösteren ve dolaylı olarak iç link sağlayan bir sayfadır. Bugün çoğu sitede iyi bir menü ve kategori yapısı bu ihtiyacı karşıladığı için HTML site haritası zorunlu değildir. Bu yazının geri kalanında "sitemap" dediğimizde XML site haritasını kastediyoruz.
Örnek bir XML site haritası
En basit haliyle bir site haritası, sitemaps.org protokolüne uyan ve her URL'yi bir <url> bloğu içinde listeleyen UTF-8 kodlu bir dosyadı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-20</lastmod>
</url>
<url>
<loc>https://www.ornek.com/hizmetler/seo-danismanligi</loc>
<lastmod>2026-09-14</lastmod>
</url>
<url>
<loc>https://www.ornek.com/blog/site-hizi-rehberi</loc>
<lastmod>2026-10-25T09:30:00+03:00</lastmod>
</url>
</urlset>
Bu dosyada dikkat edilmesi gereken kurallar şunlardır:
- Tam ve mutlak URL:
<loc>içinde protokol ve alan adı dahil tam adres yazılır. Göreli yol (yalnız /blog/...) kullanılmaz. - Tek sürüm: Siteniz https ve www ile yayındaysa haritadaki bütün URL'ler de aynı biçimde olmalıdır. http ya da www'suz sürümleri karıştırmak, yönlendirilen URL listelemek anlamına gelir.
- Karakter kaçışı: URL içinde & işareti varsa XML'de
&olarak yazılmalıdır. Türkçe karakter içeren yollar yüzde kodlamasıyla (örneğin ı için %C4%B1) verilmelidir. - Tarih biçimi: lastmod, W3C Datetime biçimindedir: yalnız tarih (2026-10-20) ya da saat dilimiyle birlikte tam zaman damgası.
lastmod, priority ve changefreq: hangisi işe yarar?
Protokol <url> bloğu içinde üç isteğe bağlı etikete izin verir: lastmod, changefreq ve priority. Google'ın kamuya açık açıklamalarına göre bunların yalnız biri gerçekten kullanılıyor.
lastmod: doğru kullanılırsa değerli
lastmod, sayfanın en son anlamlı biçimde değiştiği tarihi bildirir. Google bu değeri, tutarlı ve doğrulanabilir biçimde doğru olduğu sürece tarama önceliği için dikkate aldığını belirtir. Buradaki anahtar kelime "anlamlı" değişikliktir:
- Ana içerik, fiyat, stok durumu, yapılandırılmış veri ya da önemli linkler değiştiyse lastmod güncellenir.
- Footer'daki telif yılının değişmesi, kenar çubuğunda "son yazılar" listesinin yenilenmesi ya da sayfanın yeniden üretilmesi (build) anlamlı değişiklik sayılmaz.
- Bütün URL'lere her gün aynı tarihi basan bir sistem, lastmod sinyalini güvenilmez hale getirir. Arama motoru değerin gerçekle örtüşmediğini fark ederse onu görmezden gelmeye başlayabilir.
Pratik kural: lastmod'u veritabanındaki "içerik güncellenme tarihi" alanından üretin, dosyanın oluşturulma anından değil.
priority ve changefreq: büyük ölçüde yok sayılır
priority (0.0 ile 1.0 arası göreli önem) ve changefreq (daily, weekly gibi değişim sıklığı tahmini) Google tarafından büyük ölçüde yok sayılır. Bunları eklemek zarar vermez ama emek harcamaya da değmez. Mevcut haritanızda varsa kaldırmak zorunda değilsiniz; yeni bir sistem kuruyorsanız yalnız loc ve lastmod ile ilerlemek dosyayı daha sade ve bakımı kolay tutar.
50.000 URL ve 50 MB sınırı: sitemap index
Tek bir site haritası dosyası en fazla 50.000 URL içerebilir ve sıkıştırılmamış boyutu 50 MB'ı geçemez. Bu sınırlardan biri aşılırsa haritayı birden fazla dosyaya bölmeniz ve bunları bir sitemap index dosyasıyla bir araya getirmeniz gerekir. Dosyaları gzip ile sıkıştırarak (.xml.gz) sunmak bant genişliğini azaltır, ancak 50 MB sınırı sıkıştırılmamış boyut için geçerlidir.
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.ornek.com/sitemap-sayfalar.xml</loc>
<lastmod>2026-10-20</lastmod>
</sitemap>
<sitemap>
<loc>https://www.ornek.com/sitemap-urunler-1.xml</loc>
<lastmod>2026-10-26</lastmod>
</sitemap>
<sitemap>
<loc>https://www.ornek.com/sitemap-blog.xml</loc>
<lastmod>2026-10-25</lastmod>
</sitemap>
</sitemapindex>
Sınırları aşmasanız bile haritayı içerik türüne göre bölmek akıllıca bir tercihtir. Ürünler, kategoriler, blog yazıları ve statik sayfalar için ayrı dosyalar tuttuğunuzda Search Console'da her grubun kaç URL'sinin keşfedildiğini ayrı ayrı görürsünüz. Örneğin blog haritasında sorun yokken ürün haritasındaki URL'lerin önemli bir kısmının dizine girmediğini fark etmek, sorunu tek bir şablona daraltır. Bu yaklaşım özellikle e-ticaret sitelerinde kategori ve ürün sayfalarının sağlığını ayrı izlemek için kullanışlıdır.
Görsel, video ve haber site haritaları
Standart haritaya ek olarak Google, bazı içerik türleri için uzantılar destekler. Bunlar ayrı bir dosyada olabileceği gibi mevcut <url> bloklarının içine de eklenebilir.
Görsel site haritası
Sayfadaki görseller JavaScript ile yükleniyorsa ya da tarayıcının kolayca bulamayacağı bir yerdeyse görsel uzantısı, görselin keşfedilmesine yardım eder:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>https://www.ornek.com/urun/deri-canta</loc>
<image:image>
<image:loc>https://cdn.ornek.com/img/deri-canta-on.jpg</image:loc>
</image:image>
</url>
</urlset>
Video site haritası
Video uzantısı; videonun başlığını, açıklamasını, küçük resmini ve içerik ya da oynatıcı adresini bildirir. Video sayfalarının ana içeriği videonun kendisiyse bu bilgiler, videonun arama sonuçlarında ve video sekmesinde doğru gösterilmesine katkı sağlar. Videoyu sayfaya gömmüşseniz yapılandırılmış veriyle de aynı bilgileri verebilirsiniz; bu konuda yapılandırılmış veri rehberimize göz atabilirsiniz.
Haber site haritası
Haber site haritası, Google Haberler'de yer alan yayıncılar içindir. Yalnız son iki gün içinde yayımlanmış makaleleri içermeli ve tek dosyada 1.000 URL'yi aşmamalıdır. Eski haberler bu dosyadan çıkarılır ama normal site haritasında kalmaya devam eder. Haber sitesi değilseniz bu uzantıya ihtiyacınız yoktur.
Site haritasına hangi URL'ler girmemeli?
Site haritası, "dizine girmesini istediğim kanonik sayfaların listesi" olarak düşünülmelidir. Bu tanıma uymayan her URL gürültüdür ve Google'a çelişkili sinyal gönderir. Aşağıdaki URL'leri haritadan çıkarın:
- noindex etiketli sayfalar: Bir yandan "bu sayfayı dizine ekleme" deyip bir yandan haritada listelemek çelişkidir.
- Yönlendirilen URL'ler (301, 302): Haritada yalnız son hedef adres yer almalıdır.
- Hata döndüren sayfalar (404, 410, 5xx): Silinmiş ürünler ve kaldırılmış yazılar haritadan da otomatik düşmelidir.
- Kanonik olmayan URL'ler: rel="canonical" ile başka bir adresi işaret eden sayfalar (örneğin parametreli sürümler, sıralama ve filtre varyasyonları, yazdırma sürümleri) listelenmemelidir.
- robots.txt ile engellenen URL'ler: Taranması yasak bir adresi haritada önermek de çelişkili bir sinyaldir.
- Oturum, takip ve kampanya parametreli adresler: utm_ etiketli ya da oturum kimliği taşıyan URL'ler kopya üretir.
- Giriş gerektiren sayfalar: Üye paneli, sepet, ödeme ve hesap sayfaları arama motoru için anlamsızdır.
- İnce ve değersiz sayfalar: Boş etiket sayfaları, içeriksiz arşivler, tek ürünlü filtre kombinasyonları.
Haritanızın temizliği, Search Console'daki dizin raporlarının okunabilirliğini de doğrudan etkiler. Haritada gönderdiğiniz URL'lerin çoğu "hariç tutuldu" kategorisine düşüyorsa sorun çoğu zaman sayfaların kendisinde değil, haritanın yanlış URL'leri listelemesindedir.
CMS ve framework'lerde otomatik üretim
Site haritasını elle yazmak yalnız birkaç sayfalık statik siteler için mantıklıdır. İçerik değiştikçe güncel kalması gereken her sitede harita otomatik üretilmelidir.
- WordPress: Sürüm 5.5'ten bu yana çekirdekte yerleşik bir site haritası bulunur ve varsayılan adresi /wp-sitemap.xml'dir. SEO eklentileri genellikle bu çekirdek haritayı kendi haritalarıyla değiştirir; iki ayrı haritanın aynı anda yayında olmadığından emin olun.
- Hazır e-ticaret altyapıları: Çoğu barındırılan e-ticaret platformu haritayı otomatik üretir ve /sitemap.xml adresinde sunar. Burada yapmanız gereken, ürün, kategori ve sayfa haritalarının içeriğini düzenli kontrol etmektir.
- Next.js: App Router kullanan projelerde app klasörüne bir sitemap dosyası (sitemap.js ya da sitemap.ts) eklemek, derleme veya istek anında XML üretir. Büyük kataloglarda birden fazla haritayı üretmek için framework'ün bölme desteği kullanılır.
- Diğer framework'ler: Nuxt, Astro, Gatsby ve benzerlerinde resmi ya da yaygın kullanılan site haritası modülleri vardır. Özel bir sistemde ise veritabanından loc ve lastmod çeken küçük bir betik yeterlidir.
Otomatik üretimde en sık görülen hata, sistemin kapsamı yanlış belirlemesidir: taslak yazılar, noindex sayfalar, test ortamı adresleri ya da yönlendirilmiş eski URL'ler haritaya sızar. Kurulumdan sonra üretilen dosyayı bir kez baştan sona açıp gözle kontrol etmek, aylarca sürebilecek bir sinyal kirliliğini önler.
Site haritasını robots.txt dosyasında belirtmek
Site haritasının yerini arama motorlarına bildirmenin en basit yolu robots.txt dosyasına bir satır eklemektir:
User-agent: *
Disallow: /sepet/
Sitemap: https://www.ornek.com/sitemap.xml
Sitemap satırı her zaman tam ve mutlak URL ile yazılır, user-agent gruplarından bağımsızdır ve dosyanın herhangi bir yerinde olabilir. Birden fazla haritanız varsa ya her birini ayrı bir Sitemap satırıyla ya da yalnız sitemap index dosyasını yazabilirsiniz. Bu yöntem Google dışındaki arama motorlarının da haritanızı bulmasını sağlar. robots.txt yazımının diğer kuralları için Robots.txt Nedir? yazımıza bakabilirsiniz.
Not: Google, site haritasını bir URL'ye istek atarak bildirmeye yarayan eski "ping" yöntemini 2023'te kullanımdan kaldırdı. Bugün haritayı bildirmenin yolları robots.txt satırı ve Search Console'dur.
Site haritasını Search Console'a gönderme: adım adım
robots.txt satırı yeterli olsa da haritayı Search Console'a ayrıca göndermek, durumunu ve keşfedilen URL sayısını izlemenizi sağlar. Search Console'u henüz kurmadıysanız önce Google Search Console Nedir? yazımızdaki doğrulama adımlarını tamamlayın.
- Haritanın erişilebilir olduğunu doğrulayın: Adresi tarayıcıda açın. XML içeriği görünmeli ve sunucu 200 durum kodu döndürmelidir. Giriş ekranına, 404 sayfasına ya da yönlendirmeye düşmemelidir.
- Doğru mülkü seçin: Search Console'da haritanın bulunduğu alan adını kapsayan mülkü açın. Alan adı mülkü tüm alt alan adlarını ve protokolleri kapsar.
- Site haritaları bölümüne gidin: Sol menüde dizine ekleme başlığı altındaki site haritaları sayfasını açın.
- Adresi girin ve gönderin: "Yeni site haritası ekle" alanına harita adresini (sitemap index kullanıyorsanız index dosyasını) yazıp gönderin.
- Durumu bekleyin: Google haritayı genellikle kısa süre içinde okur; durum sütununda sonucu görürsünüz. Gönderilen haritalar listesinde her dosyanın son okunma tarihi de yer alır.
Haritayı her içerik değişikliğinde yeniden göndermenize gerek yoktur. Google, gönderilmiş haritaları düzenli aralıklarla kendisi yeniden okur; lastmod değerleri doğruysa değişiklikleri buradan anlar.
Rapordaki "keşfedilen" sayılarını doğru okumak
Gönderilen her harita için raporda keşfedilen sayfa (ve varsa video) sayısı görünür. Bu sayı, Google'ın haritadan okuduğu URL sayısıdır; dizine eklenen sayfa sayısı değildir. Asıl bilgiyi, harita satırına tıkladığınızda açılan ve sayfa dizine ekleme raporunu yalnız o haritadaki URL'lerle filtreleyen görünümde bulursunuz. Burada şu karşılaştırmayı yapın:
| Gözlem | Olası anlam | Ne yapmalı? |
|---|---|---|
| Keşfedilen sayısı beklediğinizden az | Harita eksik üretiliyor ya da bir alt harita okunamıyor | Dosyadaki URL sayısını sayın, index'teki her alt haritayı kontrol edin |
| Keşfedilen çok, dizine eklenen az | Haritada noindex, kanonik olmayan veya yönlendirilen URL'ler var ya da içerik kalitesi zayıf | Hariç tutulma nedenlerini gruplayın, haritayı temizleyin |
| "Keşfedildi, şu anda dizine eklenmemiş" yoğunluğu | Google URL'leri biliyor ama henüz taramaya değer bulmamış | İç linkleri güçlendirin, ince sayfaları birleştirin |
| "Tarandı, şu anda dizine eklenmemiş" yoğunluğu | Sayfa okunmuş ama dizine alınacak kadar değerli bulunmamış | İçeriği zenginleştirin, kopya sayfaları ayıklayın |
Haritayı içerik türüne göre böldüyseniz bu tabloyu her harita için ayrı yorumlayabilirsiniz. Dizine eklenen sayfaların ardından gelen soru ise performanstır: hangi sayfanın gösterim ve tıklama aldığı, hangisinin hiç görünmediği. Seoanalytics gibi Search Console verisini doğrudan okuyan bir panel, haritada olup hiç gösterim almayan sayfaları ya da zamanla trafik kaybeden içerikleri listeleyerek bu ikinci adımı hızlandırır. Daha geniş bir kontrol akışı için SEO analizi rehberimize de bakabilirsiniz.
Sık görülen site haritası durum hataları
Search Console'da her harita için bir durum gösterilir. Başarılı durumu dışındaki sonuçlar, haritanın kısmen ya da tamamen okunamadığını anlatır. Arayüzdeki ifadeler zaman içinde değişebilir; ama sorunlar genellikle şu gruplara girer:
- Getirilemedi: Google dosyaya ulaşamadı. Nedeni genellikle yanlış adres, 404 ya da 5xx yanıtı, sunucunun Googlebot'u engellemesi (güvenlik duvarı, bot koruması) ya da robots.txt'in harita yolunu engellemesidir. Önce adresin dışarıdan 200 döndüğünü doğrulayın.
- Ayrıştırma ve biçim hataları: Dosya geçerli XML değil. Kaçışsız & karakteri, kapanmamış etiket, dosya başında boşluk ya da BOM, yanlış ad alanı (xmlns) veya UTF-8 dışı kodlama tipik nedenlerdir. Dosyayı bir XML doğrulayıcıdan geçirin.
- Geçersiz tarih: lastmod değeri W3C Datetime biçiminde değil (örneğin 27.10.2026 yazılmış). Tarihi YYYY-AA-GG ya da saat dilimli tam biçimde üretin.
- Boyut ya da URL sınırı aşıldı: Dosya 50.000 URL'yi veya 50 MB'ı geçmiş. Haritayı bölüp sitemap index kullanın.
- İzin verilmeyen URL'ler: Haritada mülkün kapsamı dışında kalan adresler var (farklı alan adı, farklı alt alan adı ya da http/https karışıklığı). Harita, listelediği URL'lerle aynı sitede ve aynı protokolde olmalıdır.
- Boş harita: Dosya okunuyor ama içinde URL yok. Genellikle otomatik üretimin bir sorgu hatası yüzünden boş sonuç döndürdüğünü gösterir; özellikle canlıya çıkıştan sonra kontrol edin.
Durumu düzelttikten sonra haritayı yeniden gönderebilirsiniz; Google bir sonraki okumada yeni sonucu gösterir.
Site haritası kontrol listesi
Yeni bir site yayına alırken, altyapı değiştirirken ya da periyodik denetimde aşağıdaki listeyi kullanın:
- Harita adresi 200 döndürüyor, geçerli XML ve UTF-8 kodlamasında.
- Bütün URL'ler mutlak, https ve sitenin tercih ettiği alan adı biçiminde (www ya da www'suz, tek tip).
- Haritada yalnız 200 döndüren, indekslenebilir ve kendine kanonik veren sayfalar var.
- noindex, yönlendirilen, 404 ve robots.txt ile engellenen URL yok.
- lastmod, içeriğin gerçek güncellenme tarihinden üretiliyor; tüm URL'lerde aynı tarih yok.
- Tek dosya 50.000 URL ve 50 MB sınırının altında; gerekiyorsa sitemap index kullanılıyor.
- İçerik türleri (sayfa, ürün, kategori, blog) ayrı haritalarda, izlemesi kolay.
- robots.txt dosyasında Sitemap satırı mutlak adresle yazılmış.
- Harita Search Console'a gönderilmiş ve durumu başarılı.
- Keşfedilen URL sayısı ile beklenen sayfa sayısı arasında açıklanamayan bir fark yok.
- Silinen veya taşınan sayfalar haritadan otomatik çıkıyor.
Bu listeyi üç ayda bir ya da büyük bir içerik veya altyapı değişikliğinden sonra tekrar etmek, sorunların aylarca fark edilmeden birikmesini önler.
Sık sorulan sorular
Site haritası olmadan Google sitemi bulabilir mi?
Evet. Google sayfaları linkleri takip ederek de bulur. Küçük ve iyi linklenmiş sitelerde fark az olur; ancak büyük, yeni ya da iç link yapısı zayıf sitelerde site haritası keşfi belirgin biçimde hızlandırır ve Search Console'da izleme imkânı sağlar.
Site haritasını ne sıklıkla güncellemeliyim?
Elle güncellemek yerine haritanın içerik değiştikçe otomatik üretilmesini sağlayın. Yeni sayfa eklendiğinde, sayfa silindiğinde ya da içerik anlamlı biçimde güncellendiğinde harita ve ilgili lastmod değeri kendiliğinden değişmelidir. Search Console'a yeniden gönderim gerekmez.
Sitemap dosyasının adı mutlaka sitemap.xml mi olmalı?
Hayır. Dosya adı ve yolu serbesttir; önemli olan adresin robots.txt'te belirtilmesi ya da Search Console'a gönderilmesidir. Yine de /sitemap.xml yaygın bir kural olduğu için tercih edilir. Harita, kapsadığı URL'lerle aynı alan adında bulunmalıdır.
priority değerini yüksek vermek sıralamayı artırır mı?
Hayır. Google priority ve changefreq değerlerini büyük ölçüde yok sayar ve hiçbiri sıralama sinyali değildir. Site haritasında gerçekten işe yarayan bilgi, doğru URL listesi ve güvenilir lastmod değeridir.