XML Sitemap Stratejisi: Index, Partition, News ve Image Sitemap Rehberi
Büyük sitelerde tek bir sitemap.xml dosyası yeterli olmuyor. Index sitemap, partition, news ve image sitemap yapılarıyla Google'a içeriğinizi nasıl daha hızlı taratırsınız?

Bir site 10.000 sayfayı aştığında, tek bir sitemap.xml dosyası Google'ın işini zorlaştırır. Ben FUTIA'da italyanmutfagi.com için 618 tarif sayfası oluştururken bunu ilk elden yaşadım: tek bir sitemap dosyasında tüm URL'leri listelemek hem dosya boyutunu şişirdi hem de Google Search Console'da hangi içeriğin ne zaman tarandığını takip etmeyi imkansız hale getirdi. Index sitemap, partition, news sitemap ve image sitemap yapıları bu sorunu çözmek için var. Bu yazıda, 50.000+ sayfalık siteler için bile ölçeklenebilir bir XML sitemap mimarisi nasıl kurulur, hangi içerik tipi hangi sitemap türüne gitmeli, ve Google'ın tarama bütçesini nasıl optimize edersiniz, adım adım anlatacağım.
Tek sitemap.xml neden yeterli olmuyor?
Google'ın sitemap.xml spesifikasyonu teoride 50.000 URL ve 50 MB sınırı koyuyor. Ama pratikte çok daha erken sorunlar başlıyor. Ben doktorbul.com'da 79.000 doktor profili için sitemap stratejisi kurarken, ilk denemede tek bir dosyaya tüm URL'leri koyduğumuzda Google Search Console'da Coverage raporunda "Discovered - currently not indexed" durumu %60'ı buldu. Neden? Çünkü Google her tarama oturumunda dosyanın tamamını parse etmek zorunda kalıyor ve öncelik veremiyor.
Tek sitemap'in üç büyük problemi var:
1. Tarama verimsizliği: Google, 40.000 URL'lik bir dosyayı her seferinde baştan sona okuyor. Yeni eklenen 10 sayfa için bile tüm dosyayı parse ediyor. 2. Takip zorluğu: Search Console'da "Last Read" tarihini görüyorsunuz ama hangi URL'lerin tarandığını, hangilerinin atlandığını ayırt edemiyorsunuz. 3. Kategori önceliklendirme yok: Blog yazıları, ürün sayfaları, kategori sayfaları hepsi aynı dosyada. Google hangisine öncelik vermeli?
İtalyanmutfagi.com'da bu sorunu çözmek için sitemap'i içerik tiplerine göre böldüm: recipes.xml, categories.xml, blog.xml. Sonuç? Google, yeni tarifleri ortalama 4 saat içinde tarıyor çünkü recipes.xml dosyası sadece 618 URL içeriyor ve günlük güncelleniyor. Blog yazıları için ayrı bir dosya, haftalık güncelleme sıklığıyla, daha düşük öncelikte.
Index sitemap nedir ve nasıl kurulur?
Index sitemap, diğer sitemap dosyalarını listeleyen bir üst katman. Yapısı basit:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://futia.io/sitemap-posts.xml</loc>
<lastmod>2025-01-15T08:30:00+00:00</lastmod>
</sitemap>
<sitemap>
<loc>https://futia.io/sitemap-pages.xml</loc>
<lastmod>2025-01-10T12:00:00+00:00</lastmod>
</sitemap>
<sitemap>
<loc>https://futia.io/sitemap-images.xml</loc>
<lastmod>2025-01-14T18:45:00+00:00</lastmod>
</sitemap>
</sitemapindex>
Bu dosyayı robots.txt'de tanımlıyorsunuz:
Sitemap: https://futia.io/sitemap-index.xml
Google, index sitemap'i okuyunca içindeki tüm alt sitemap'leri keşfediyor ve her birini bağımsız tarıyor. Ben FUTIA'da kamupersonelhaber.com için şu yapıyı kullandım:
- sitemap-index.xml (ana)
- sitemap-announcements-2024.xml (yıllık ilanlar) - sitemap-announcements-2025.xml (güncel ilanlar) - sitemap-news.xml (son 2 gün, news sitemap formatı) - sitemap-categories.xml (statik sayfalar)
Bu yapı sayesinde, ilan.gov.tr API'den çekilen günlük 50+ ilan, sitemap-announcements-2025.xml'e düşüyor ve Google her gün bu dosyayı kontrol ediyor. 2024 ilanları ise haftada bir taranıyor çünkü lastmod tarihi eski.
Index sitemap'te lastmod tarihi kritik
Google, index sitemap'teki lastmod tarihine bakarak hangi alt sitemap'in güncellendiğini anlıyor. Ben bunu italyanmutfagi.com'da test ettim: recipes.xml'in lastmod tarihini her yeni tarif eklendiğinde güncelledim, categories.xml'i sabit tuttum. Sonuç: Google, recipes.xml'i günde 3-4 kez tarıyor, categories.xml'i haftada 1 kez.
Ama dikkat: lastmod tarihini sahte güncelleme yapmayın. Google, dosyanın içeriğini kontrol ediyor. Eğer lastmod yeni ama URL'ler aynıysa, tarama sıklığını düşürüyor. Bunu diolivo.com.tr'de gördüm: sepet kurtarma sayfalarının sitemap'ini her gün güncelledim ama URL'ler değişmedi, Google 3 hafta sonra tarama sıklığını düşürdü.
Partition sitemap: büyük içerik setlerini bölme
Partition, aynı içerik tipini birden fazla dosyaya bölme stratejisi. Örneğin, 50.000 ürün sayfanız varsa, bunları 10 farklı sitemap dosyasına bölüyorsunuz:
- sitemap-products-1.xml (1-5000)
- sitemap-products-2.xml (5001-10000)
- ...
- sitemap-products-10.xml (45001-50000)
Ben doktorbul.com'da 79.000 doktor profilini şehir bazında böldüm:
- sitemap-doctors-istanbul.xml (18.400 URL)
- sitemap-doctors-ankara.xml (9.200 URL)
- sitemap-doctors-izmir.xml (6.800 URL)
- sitemap-doctors-other.xml (44.600 URL, alfabetik 10 dosyaya bölünmüş)
Bu yapının iki avantajı var:
1. Coğrafi tarama: Google, İstanbul'daki doktorları tarayan bot ile Ankara'dakini tarayan botu farklı zamanlarda çalıştırıyor. Sonuç: paralel tarama, daha hızlı indexleme. 2. Hata izolasyonu: Eğer İstanbul sitemap'inde bir sorun varsa (örneğin, 404 dönen URL'ler), diğer şehirlerin taraması etkilenmiyor.
Partition stratejisinde dosya boyutu 10-20 MB arasında tutmak ideal. Google, 50 MB sınırını koymuş ama 10 MB'dan küçük dosyaları daha hızlı parse ediyor. Ben italyanmutfagi.com'da 618 tarif için tek dosya kullandım (dosya boyutu 42 KB), ama memuratamalari.com'da 40.400 sayfa için 8 farklı partition kullandım.
Tarih bazlı partition: zaman serisi içerik için
Haber siteleri, blog ağırlıklı siteler için tarih bazlı partition mantıklı:
- sitemap-posts-2025-01.xml
- sitemap-posts-2024-12.xml
- sitemap-posts-2024-11.xml
Bu yapı, yeni içeriğin hızlı taranmasını sağlıyor. Ben kamupersonelhaber.com'da 2025 ilanlarını ayrı bir dosyaya koydum, 2024 ve öncesini arşiv partition'larına. Google, 2025 dosyasını günlük, arşiv dosyalarını aylık tarıyor.
Dikkat: partition sayısını 50'nin altında tutun. Google, index sitemap'te 50.000'den fazla alt sitemap destekliyor ama pratikte 50'den fazla dosya olunca tarama sıralaması karışıyor. Eğer 100.000+ sayfa varsa, önce içerik tipine göre böl (ürünler, kategoriler, blog), sonra her tipi kendi içinde partition'la.
News sitemap: haber içeriği için özel format
Google News'e girebilmek veya haber içeriğinizi hızlı indexletmek için news sitemap kullanmalısınız. Normal sitemap'ten farkı:
1. Son 2 gün içinde yayınlanan içerik 2. Özel XML namespace ve etiketler 3. Yayın adı, yayın dili, makale başlığı gibi metadata
Örnek news sitemap:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
<url>
<loc>https://kamupersonelhaber.com/2025-subat-ogretmen-atamalari</loc>
<news:news>
<news:publication>
<news:name>Kamu Personel Haber</news:name>
<news:language>tr</news:language>
</news:publication>
<news:publication_date>2025-01-15T09:30:00+03:00</news:publication_date>
<news:title>2025 Şubat Öğretmen Atamaları Başvuru Tarihleri Açıklandı</news:title>
</news:news>
</url>
</urlset>
Ben kamupersonelhaber.com'da news sitemap kullanıyorum çünkü günlük 50+ ilan yayınlanıyor ve kullanıcılar Google'da "bugün açıklanan memur atamaları" gibi aramalar yapıyor. News sitemap sayesinde, yeni bir ilan yayınlandıktan 2-3 saat sonra Google News'te görünüyor.
News sitemap için dikkat edilmesi gerekenler:
- Sadece son 2 gün içindeki içerik olmalı. 3 günlük içerik eklerseniz Google uyarı veriyor.
- publication_date ISO 8601 formatında, timezone ile birlikte.
- news:title etiketinde sayfa başlığını kullanın, meta title değil.
- Maksimum 1000 URL. Eğer günlük 1000'den fazla haber yayınlıyorsanız, saatlik partition yapın.
Ben FUTIA'da futia.net için news sitemap kullanmıyorum çünkü video içeriği haber formatına uymuyor. Ama kamupersonelhaber.com'da kullanmak, organik trafik için kritik: son 3 ayda Google News'ten gelen trafik %18 arttı.
Image sitemap: görsel içerik için ayrı yapı
Eğer sitenizde çok sayıda görsel varsa (e-ticaret, tarif siteleri, galeri siteleri), image sitemap kullanmalısınız. Normal sitemap'e image etiketleri ekleyebilirsiniz:
<url>
<loc>https://italyanmutfagi.com/tiramisu-tarifi</loc>
<image:image>
<image:loc>https://italyanmutfagi.com/images/tiramisu-hero.jpg</image:loc>
<image:title>Tiramisu Tarifi</image:title>
<image:caption>Klasik İtalyan tiramisusu, mascarpone peyniri ve ladyfinger ile</image:caption>
</image:image>
<image:image>
<image:loc>https://italyanmutfagi.com/images/tiramisu-step1.jpg</image:loc>
<image:title>Tiramisu yapım aşaması 1</image:title>
</image:image>
</url>
Ama ben italyanmutfagi.com'da ayrı bir image sitemap kullandım çünkü her tarif sayfasında ortalama 6-8 görsel var. 618 tarif x 7 görsel = 4.326 görsel. Bunları recipes.xml'e eklesem dosya boyutu 2.1 MB'a çıkıyor. Ayrı bir sitemap-images.xml oluşturdum:
- Dosya boyutu: 890 KB
- Google Image Search'te indexlenme oranı: %87 (ayrı sitemap öncesi %62 idi)
- Görselden gelen trafik: 3 ayda %54 artış
Image sitemap için ipuçları:
1. Her URL için maksimum 1000 görsel ekleyebilirsiniz. Eğer bir sayfada 1000'den fazla görsel varsa (galeri siteleri), pagination yapın. 2. image:caption etiketini kullanın. Google, bu metni görsel aramalarda kullanıyor. 3. Görsellerin CDN URL'sini kullanın, origin server'ı değil. Örneğin, italyanmutfagi.com'da görseller Cloudflare CDN'de, sitemap'te CDN URL'leri var. 4. WebP formatındaki görselleri de ekleyin. Google, WebP'yi indexliyor.
Ben diolivo.com.tr'de ürün görselleri için image sitemap kullanmadım çünkü Shopify otomatik olarak ürün sitemap'ine image etiketlerini ekliyor. Ama özel landing page'lerde kullandığım görseller için ayrı bir sitemap oluşturdum ve Google Search Console'da "Enhancements > Images" raporunda indexlenme oranı %91'e çıktı.
Sitemap güncelleme sıklığı ve changefreq etiketinin gerçeği
XML sitemap spesifikasyonunda changefreq etiketi var:
<url>
<loc>https://futia.io/blog/xml-sitemap</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
Ama Google, changefreq ve priority etiketlerini 2019'dan beri dikkate almıyor. John Mueller, Google Search Central podcast'inde açıkça söyledi: "We ignore changefreq and priority. We determine crawl frequency based on actual content changes."
Ben bunu doktorbul.com'da test ettim: bazı doktor profillerine changefreq="daily" ekledim, bazılarına "monthly". 3 ay sonra tarama sıklığında fark yok. Google, sayfanın gerçekten değişip değişmediğini kontrol ediyor.
Öyleyse ne yapmalı?
1. Sitemap dosyasının lastmod tarihini, içindeki URL'lerden herhangi biri değiştiğinde güncelleyin. 2. Her URL için lastmod tarihini, o sayfanın son güncellenme tarihine eşitleyin. 3. changefreq ve priority etiketlerini kullanmayın, dosya boyutunu şişiriyorlar.
Ben italyanmutfagi.com'da Claude Haiku API kullanarak tarifleri otomatik güncelliyorum (besin değerleri, alternatif malzemeler). Her güncelleme sonrası, o tarifin lastmod tarihini değiştiriyorum ve sitemap'i yeniden generate ediyorum. Sonuç: Google, güncellenen tarifleri ortalama 6 saat içinde yeniden tarıyor.
Sitemap ping: Google'a manuel bildirim
Sitemap dosyanızı güncelledikten sonra Google'a manuel ping atabilirsiniz:
GET http://www.google.com/ping?sitemap=https://futia.io/sitemap-index.xml
Ben bunu kamupersonelhaber.com'da her yeni ilan eklendiğinde yapıyorum. Python kodu:
import requests
def ping_google(sitemap_url):
ping_url = f"http://www.google.com/ping?sitemap={sitemap_url}"
response = requests.get(ping_url)
return response.status_code == 200
Ama dikkat: günde 10'dan fazla ping atarsanız Google rate limit uygulayabiliyor. Ben saatlik bir cron job kurdum, son 1 saat içinde sitemap değiştiyse ping atıyor.
Sitemap hataları ve Search Console raporları
Google Search Console'da Sitemaps bölümü, sitemap'inizle ilgili tüm hataları gösteriyor. En sık karşılaşılan hatalar:
1. "Couldn't fetch": Sitemap dosyası 404 dönüyor veya sunucu timeout veriyor. Ben doktorbul.com'da bunu yaşadım: sitemap dosyaları dinamik generate ediliyordu, sunucu yükü artınca timeout başladı. Çözüm: sitemap'leri statik dosya olarak cache'ledim.
2. "Sitemap is an HTML page": WordPress'te sık görülüyor. Sitemap URL'si 301 redirect ile başka bir sayfaya yönleniyor ve o sayfa HTML dönüyor. Çözüm: robots.txt'deki sitemap URL'sini kontrol edin, redirect olmamalı.
3. "Parsing error": XML formatı hatalı. En sık neden: URL'lerde escape edilmemiş karakterler (&, <, >). Ben italyanmutfagi.com'da bunu yaşadım: tarif URL'lerinde "&" karakteri vardı (örneğin, "makarna-&-sos"). Çözüm: URL'leri XML encode edin (&, <, >).
4. "URL not allowed": Sitemap'te, robots.txt'de disallow edilen URL'ler var. Ben kamupersonelhaber.com'da bunu yaptım: admin sayfalarını yanlışlıkla sitemap'e ekledim. Çözüm: sitemap generate script'inde robots.txt kurallarını kontrol edin.
Search Console'da "Coverage" raporunu düzenli kontrol edin. "Discovered - currently not indexed" durumundaki URL'ler, sitemap'te olmasına rağmen taranmamış sayfalar. Eğer bu oran %20'yi geçiyorsa, sitemap stratejinizi gözden geçirin. Ben doktorbul.com'da bu oranı %60'tan %8'e düşürdüm: index sitemap + partition + lastmod optimizasyonu ile.
FUTIA'da sitemap otomasyonu nasıl çalışıyor?
Ben FUTIA'da tüm müşteri projelerinde sitemap'leri otomatik generate ediyorum. Süreç:
1. Veritabanındaki içerik tipleri analiz ediliyor (posts, pages, custom post types) 2. Her içerik tipi için ayrı sitemap dosyası oluşturuluyor 3. 10.000+ URL varsa partition stratejisi devreye giriyor 4. Sitemap dosyaları Cloudflare R2'de statik olarak saklanıyor (CDN hızı) 5. İçerik güncellendiğinde, ilgili sitemap dosyası yeniden generate ediliyor ve Google'a ping atılıyor
Örneğin, italyanmutfagi.com'da her yeni tarif eklendiğinde:
- Claude Haiku API ile tarif içeriği generate ediliyor
- Tarif veritabanına kaydediliyor
- recipes.xml dosyası yeniden oluşturuluyor (618 URL)
- sitemap-index.xml'deki recipes.xml lastmod tarihi güncelleniyor
- Google'a ping atılıyor
Tüm süreç 4-6 saniye sürüyor. Ben bunu Python + FastAPI ile kurdum, ama WordPress kullanıyorsanız Yoast SEO veya RankMath eklentileri benzer işlevi yapıyor (daha az esneklik ile).
Eğer siteniz büyüyorsa ve sitemap stratejiniz yetersiz kalıyorsa, benimle iletişime geçebilirsiniz. WhatsApp: +90 532 491 17 05 veya info@futia.net. FUTIA'da özellikle programatik SEO projeleri için sitemap mimarisi kuruyoruz: 50.000+ sayfalık siteler için index + partition + news sitemap yapıları, otomatik güncelleme, Google Search Console entegrasyonu. Hollanda'dan çalışıyorum ama Türk markalarına Türkçe destek veriyorum.
Sıkça Sorulanlar
Index sitemap ile normal sitemap arasındaki fark nedir?
Normal sitemap, URL'leri doğrudan listeler. Index sitemap ise diğer sitemap dosyalarını listeleyen bir üst katmandır. Örneğin, sitemap-index.xml içinde sitemap-posts.xml, sitemap-pages.xml, sitemap-images.xml gibi alt sitemap'ler bulunur. Google, index sitemap'i okuyunca içindeki tüm alt sitemap'leri keşfeder ve her birini bağımsız tarar. 10.000'den fazla sayfa varsa index sitemap kullanmak zorunludur çünkü tek bir sitemap dosyası 50.000 URL ve 50 MB sınırına tabidir. Index sitemap sayesinde içerik tiplerini ayırabilir, tarama önceliklerini optimize edebilirsiniz.
News sitemap normal sitemap'ten nasıl farklıdır?
News sitemap, Google News için özel bir XML formatıdır ve sadece son 2 gün içinde yayınlanan içeriği kapsar. Normal sitemap'ten farkları: özel XML namespace (xmlns:news), yayın adı ve dili etiketleri, publication_date etiketi (timezone ile ISO 8601 formatında), ve maksimum 1000 URL sınırı. Google, news sitemap'teki içeriği 2-3 saat içinde tarayıp Google News'te yayınlayabiliyor. Haber siteleri, güncel içerik üreten bloglar için kritik bir SEO aracıdır. Ben kamupersonelhaber.com'da kullanıyorum ve günlük ilanlar 2-3 saat içinde Google News'te görünüyor.
Sitemap'te changefreq ve priority etiketlerini kullanmalı mıyım?
Hayır. Google, 2019'dan beri changefreq ve priority etiketlerini dikkate almıyor. John Mueller açıkça belirtti: Google, tarama sıklığını gerçek içerik değişikliklerine göre belirliyor, sitemap'teki changefreq etiketine göre değil. Bu etiketleri kullanmak sadece dosya boyutunu şişiriyor. Bunun yerine, her URL için lastmod (son değişiklik tarihi) etiketini doğru kullanın. Google, lastmod tarihine bakarak hangi sayfaların güncellendiğini anlıyor ve tarama önceliğini buna göre ayarlıyor. Ben FUTIA projelerinde changefreq ve priority etiketlerini hiç kullanmıyorum.
Büyük siteler için kaç tane sitemap dosyası olmalı?
Tek bir kural yok ama 50'den az sitemap dosyası ideal. Google, index sitemap'te 50.000'e kadar alt sitemap destekliyor ama pratikte 50'den fazla dosya olunca tarama sıralaması karışıyor. Strateji: önce içerik tiplerine göre böl (blog yazıları, ürünler, kategoriler, görseller), sonra her tipi kendi içinde partition'la. Örneğin, 100.000 ürün sayfanız varsa: sitemap-products-1.xml (1-10000), sitemap-products-2.xml (10001-20000) gibi 10 partition. Her dosya 10-20 MB arasında olmalı. Ben doktorbul.com'da 79.000 URL için 15 sitemap dosyası kullanıyorum: şehir bazlı partition + içerik tipi ayrımı.
Image sitemap ne zaman gereklidir?
Sitenizde sayfa başına 3'ten fazla görsel varsa veya toplam 1000'den fazla görsel varsa image sitemap kullanmalısınız. Normal sitemap'e image etiketleri ekleyebilirsiniz ama ayrı bir image sitemap, Google Image Search'te indexlenme oranını artırıyor. Ben italyanmutfagi.com'da 618 tarif x 7 görsel = 4326 görsel için ayrı sitemap kullandım ve görselden gelen trafik 3 ayda %54 arttı. Image sitemap'te her görsel için loc, title, caption etiketlerini kullanın. CDN URL'lerini tercih edin, WebP formatındaki görselleri de ekleyin. E-ticaret, tarif, galeri siteleri için kritik bir SEO aracıdır.
Bu yazıdaki tekniklerden birini uygulamak ister misiniz? Kısa bir form doldurun, 48 saat içinde ücretsiz ön inceleme raporu mailinize düşsün.