aslain.dev
0%
01 Hizmetler 02 Hakkımda 03 Projeler 04 Stack 05 Blog 06 İletişim
← Tüm makaleler SEO & Pazarlama

Sitemap Nedir ve XML Site Haritası Nasıl Oluşturulur

Bir arama motorunun sitenizi düzgün listeleyebilmesi için önce sayfalarınızı bulması gerekir; işte sitemap nedir sorusunun cevabı tam burada başlar. Sitemap (site haritası), sitenizdeki önemli URL'lerin makine tarafından okunabilen bir listesidir. Google ve diğer botlara "şu adresler benim için değerli, lütfen bunları tara ve dizine ekle" demenin en temiz yoludur. Bu yazıda XML site haritasının ne olduğunu, elle ve otomatik olarak nasıl oluşturulduğunu ve Google Search Console'a nasıl sunulduğunu adım adım kuracağız.

Sitemap nedir ve neden gerekir

En yaygın biçim XML site haritasıdır: belirli bir şemaya uyan, içinde URL'lerin ve isteğe bağlı meta verilerin bulunduğu bir metin dosyası. Botlar siteyi zaten bağlantıları takip ederek tarar, peki neden ayrıca bir harita verelim? Çünkü:

  • İç linki zayıf sayfalar — hiçbir yerden bağlantı verilmeyen bir sayfayı bot kendiliğinden bulamayabilir; site haritası onu doğrudan duyurur.
  • Yeni veya büyük siteler — geçmişi olmayan ya da binlerce URL içeren sitelerde keşif yavaşlar; harita süreci hızlandırır.
  • İçerik sinyalleri — son değişiklik tarihi gibi ipuçları, botun neyi yeniden ziyaret edeceğine karar vermesine yardımcı olur.

Önemli bir nokta: site haritası bir öneridir, garanti değil. Bir URL'yi haritaya koymak Google'ın onu kesin dizine ekleyeceği anlamına gelmez; yalnızca o sayfayı keşfetmesini kolaylaştırır.

XML site haritasının yapısı

Standart bir site haritası urlset kök etiketiyle başlar ve her sayfa bir url bloğunda tanımlanır. En sade geçerli örnek şöyledir:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://aslain.dev/</loc>
    <lastmod>2026-06-27</lastmod>
  </url>
  <url>
    <loc>https://aslain.dev/blog/sitemap-xml-olusturma</loc>
    <lastmod>2026-06-27</lastmod>
  </url>
</urlset>

Etiketlerin anlamı:

  • <loc> — sayfanın tam, mutlak URL'si. Zorunlu alandır ve canonical (asıl) adresi içermelidir.
  • <lastmod> — sayfanın son gerçekten değiştiği tarih (ISO 8601 biçimi, örneğin 2026-06-27). Google bu alanı dikkate alır, ama yalnızca dürüst tutarsanız; her sayfaya bugünün tarihini yazmak güveni zedeler.
  • <changefreq> ve <priority> — eski etiketlerdir; Google bunları büyük ölçüde yok sayar, dolayısıyla zorunlu değildir.

Birkaç kural: tüm URL'ler aynı protokol ve alan adında olmalı, özel karakterler (&, <) XML için escape edilmeli, dosya UTF-8 kodlanmalı. Tek bir site haritası en fazla 50.000 URL ve sıkıştırılmamış halde 50 MB içerebilir.

Site haritası dizini ile büyük siteleri bölmek

Sınırı aşıyorsanız sayfaları birden çok haritaya bölüp bir site haritası dizini ile bir araya getirin. Dizin, haritaları işaret eden bir üst dosyadır:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://aslain.dev/sitemap-posts.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://aslain.dev/sitemap-pages.xml</loc>
  </sitemap>
</sitemapindex>

Bu yaklaşım blog yazıları, ürünler ve statik sayfalar gibi grupları ayrı dosyalarda tutmanızı sağlar; böylece Search Console'da hangi bölümün düzgün dizinlendiğini ayrı ayrı görebilirsiniz.

Site haritasını oluşturma yolları

Sitenizin türüne göre üç pratik yöntem var:

  • CMS eklentisi — WordPress için Yoast veya Rank Math, haritayı otomatik üretir ve içerik ekledikçe günceller. Çoğu küçük site için en kolay yol budur.
  • Çerçeve/dinamik üretim — Laravel, Next.js gibi yapılarda haritayı veritabanından bir route ile dinamik üretmek en sağlıklısıdır; içerik değişince harita kendiliğinden güncel kalır.
  • Statik üretici — küçük ve nadiren değişen siteler için bir tarayıcı tabanlı oluşturucuyla tek seferlik XML üretip yükleyebilirsiniz.

Laravel'de basit bir dinamik harita route şöyle görünür:

Route::get('/sitemap.xml', function () {
    $posts = Post::where('published', true)->get();
    return response()
        ->view('sitemap', ['posts' => $posts])
        ->header('Content-Type', 'application/xml');
});

Karşılık gelen Blade görünümünde @foreach ile her gönderi için bir <url> bloğu basarsınız ve lastmod alanına modelin updated_at değerini yazarsınız. Böylece yeni bir yazı yayımladığınızda harita anında güncellenir.

robots.txt ve Search Console ile sunmak

Harita hazır olduğunda Google'a iki yoldan haber verirsiniz. İlki robots.txt dosyasına bir satır eklemektir; bu, tüm botların haritayı bulmasını sağlar:

Sitemap: https://aslain.dev/sitemap.xml

İkincisi ve daha güçlüsü, Google Search Console içindeki Site Haritaları bölümüne adresi girip "Gönder" demektir. Birkaç dakika ile birkaç gün arasında durum "Başarılı" olur ve Google haritada kaç URL bulduğunu raporlar. Aynı işlemi Bing Webmaster Tools'ta da tekrarlamanız önerilir. Sunduktan sonra her seferinde yeniden göndermeniz gerekmez; Google haritayı düzenli olarak yeniden tarar.

Sık yapılan hatalar

Bir site haritasının değerini düşüren en yaygın sorunlar şunlardır:

  • noindex veya yönlendirilen URL'ler koymak — haritaya yalnızca dizine eklenmesini istediğiniz, 200 dönen canonical sayfaları yazın.
  • Engellenen sayfaları listelemekrobots.txt ile taranması engellenen bir URL'yi haritaya koymak çelişkili sinyal verir.
  • Yanlış veya statik lastmod — her zaman bugünü yazmak ya da hiç güncellememek bu alanı işe yaramaz kılar.
  • Göreli URL kullanmak<loc> her zaman tam adres olmalı, /blog gibi göreli yol değil.

Sık Sorulan Sorular

Küçük bir sitenin gerçekten site haritasına ihtiyacı var mı?

Birkaç sayfalık, iç linki güçlü bir site Google tarafından haritasız da bulunur. Yine de site haritası zararsızdır ve keşfi hızlandırır; oluşturması dakikalar sürdüğü için küçük sitelerde bile önerilir.

HTML site haritası ile XML site haritası aynı şey mi?

Hayır. XML haritası botlar içindir ve dizine eklemeyi yönlendirir. HTML haritası ise ziyaretçiler için bir gezinme sayfasıdır. İkisi farklı amaçlara hizmet eder; SEO için kritik olan XML sürümüdür.

Site haritasını ne sıklıkta güncellemeliyim?

Mümkünse otomatik tutun: içerik eklendiğinde harita kendiliğinden güncellensin. Manuel oluşturuyorsanız her önemli içerik değişikliğinden sonra yenileyin; sabit bir takvim şart değildir.

Sitenizin her sayfasının Google tarafından doğru keşfedilmesini mi istiyorsunuz? Dinamik site haritası kurulumu, robots.txt yapılandırması ve Search Console denetimi için benimle iletişime geçin — teknik altyapıyı birlikte sağlam bir temele oturtalım.

Bu kategorideki tüm yazılar →

Devamı için