Teknoloji

robots.txt ve sitemap.xml Doğru Kurulumu: Adım Adım SEO ve Hosting Rehberi

robots.txt ve sitemap.xml Neden Bu Kadar Önemli?

Teknik SEO tarafında en çok ihmal edilen ama en çok iş gören iki dosya robots.txt ve sitemap.xml. Bir SEO denetimi ya da yeni web sitesi yayına alma toplantısında masa üzerine ilk koyduğumuz konulardan biri de artık bunlar. Çünkü arama motoru botlarının sitenizi nasıl tarayacağını, hangi sayfaların öncelikli olduğunu ve hangi alanlara asla girmemesi gerektiğini bu iki yapı belirliyor.

İşin bir de hosting tarafı var. robots.txt ve sitemap.xml sadece SEO ekiplerinin konusu değil; doküman kök dizininiz, alt alan adları, HTTP durum kodları, güvenlik yapılandırmaları ve hatta sunucu loglarınızla doğrudan bağlantılı. Yanlış yapılandırılmış bir robots.txt yüzünden tüm sitenin taramaya kapandığını, ya da yanlış yere koyulan sitemap.xml sebebiyle aylarca indekslenmeyen sayfalar gördük. Bunların neredeyse tamamı basit ama sistematik bir kurulum rehberiyle önlenebilecek hatalardı.

Bu yazıda DCHost ekibi olarak robots.txt ve sitemap.xml dosyalarını hem SEO hem de hosting perspektifinden, gerçekçi senaryolar ve örneklerle adım adım ele alacağız. paylaşımlı hosting, VPS ve dedicated sunucu fark etmeksizin; kök dizin konumları, URL yapıları, çok dilli siteler ve staging ortamları için nasıl doğru kurulum yapacağınızı netleştireceğiz. Son bölümde ise somut bir kontrol listesiyle kendi sitenizi hızlıca gözden geçirebilmeniz için pratik bir çerçeve bırakacağız.

robots.txt Temelleri: Ne Yapar, Ne Yapmaz?

robots.txt, bir web sitesinin kök dizininde barınan basit bir metin dosyasıdır. Görevi, arama motoru botlarına hangi alanları tarayabileceklerini, hangilerini taramamalarını söylemektir. Yani bir nevi kibar bir kapı görevlisi gibi davranır; ama şifreli bir kapı ya da güvenlik duvarı değildir.

robots.txt Dosyasının Konumu

robots.txt dosyasının çalışabilmesi için mutlaka alan adının kökünde bulunması gerekir:

  • https://www.ornek.com/robots.txt
  • https://ornek.com/robots.txt
  • https://blog.ornek.com/robots.txt (alt alan adı için ayrı dosya)

Bu, hosting tarafında şu anlama gelir:

  • Paylaşımlı hostingte genellikle public_html ya da httpdocs dizininin altında robots.txt yer alır.
  • VPS ya da dedicated sunucuda Nginx ya da Apache için tanımlı document root dizininde (örneğin /var/www/domain.com/public) bulunmalıdır.
  • Her alt alan adının kendi document root dizini varsa, her biri için ayrı bir robots.txt dosyası oluşturabilirsiniz.

Yeni bir site yayına alırken bu dizinlerin ve kök URL yapısının doğru kurgulanması için ayrıntılı bir kontrol listesine ihtiyaç duyuyorsanız, DCHost blogunda hazırladığımız yeni web sitesi yayına alınırken hosting tarafında SEO ve performans kontrol listesi rehberini incelemeniz faydalı olacaktır.

robots.txt Söz Dizimi: User-agent, Allow, Disallow

robots.txt dosyası oldukça basit bir söz dizimine sahiptir:

User-agent: *
Disallow: /ornek-dizin/
Allow: /ornek-dizin/izin-verilen-sayfa.html

Sitemap: https://www.ornek.com/sitemap.xml

Temel direktifler:

  • User-agent: Kuralların hangi bota ait olduğunu belirtir. * tüm botlar anlamına gelir.
  • Disallow: Belirtilen yolun taranmamasını ister.
  • Allow: Daha spesifik bir izin tanımlamak için kullanılır (özellikle Disallow ile çakışan yollar için).
  • Sitemap: Sitemap dosyanızın tam URL adresini belirtir. Bu satır robots.txt içinde zorunlu değildir ama şiddetle önerilir.

En Basit Güvenli robots.txt Örneği

Kurumsal bir web sitesi ya da standart bir blog için başlangıç seviyesinde güvenli bir robots.txt şu şekilde olabilir:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /cgi-bin/

Allow: /wp-admin/admin-ajax.php

Sitemap: https://www.ornek.com/sitemap.xml

Bu örnek, WordPress tabanlı siteler için sık kullanılan bir şablondur. Yönetim ve sistem dizinlerini taramadan çıkartırken, AJAX isteklerini sağlayan admin-ajax.php dosyasına erişimi açık bırakır.

Hangi Botları Engellemek Mantıklı?

Genel öneri, büyük arama motoru botlarını (arama sonuçlarında görünmek istediğiniz tüm ana motorlar) engellememek yönündedir. Genellikle engellemek isteyeceğiniz botlar şunlar olur:

  • Aşırı agresif tarama yapan ve sunucuyu yoran botlar
  • İçeriğinizi kopyalayan scraper botlar
  • İşinize yaramayan reklam veya analiz botları

Bu tür botları engellemek için önce user-agent bilgilerini loglardan tespit eder, sonra robots.txt içine spesifik bir blok ekleyebilirsiniz:

User-agent: KotuBot
Disallow: /

Unutmamanız gereken nokta: robots.txt bir gönüllü uyum mekanizmasıdır. Kötü niyetli botlar çoğunlukla robots.txt kurallarına uymayacaktır. Güvenlik için asıl tedbiri sunucu tarafında, WAF, rate limiting ve erişim kontrolleriyle almak gerekir.

robots.txt ile Güvenlik Sağlanmaz

Önemli bir yanılgı, hassas dizinleri robots.txt ile gizlemeye çalışmaktır. Örneğin /yedekler/ ya da /gizli-raporlar/ gibi klasörleri Disallow ile kapatmak, aslında bu klasörlerin varlığını herkese ilan etmek anlamına da gelebilir.

Güvenlik için robots.txt yerine aşağıdakileri kullanmalısınız:

  • HTTP yetkilendirme (Basic Auth, oturum bazlı giriş)
  • IP kısıtlaması veya VPN ile erişim
  • Dosya sisteminde doğru izinler ve sahiplikler

Linux tarafında dosya izinlerini nasıl güvenli şekilde ayarlayacağınızı bilmiyorsanız, DCHost blogundaki Linux dosya izinleri 644, 755, 777 ve güvenli hosting ayarları rehberi bu noktada iyi bir tamamlayıcı olacaktır.

sitemap.xml Temelleri: Botlara Yol Haritası Çizmek

sitemap.xml, sitenizdeki sayfaları arama motoru botlarına daha sistematik biçimde tanıtan XML formatlı bir dosyadır. Özellikle:

  • Yeni kurulan sitelerde henüz güçlü iç link yapısı yokken,
  • Büyük e-ticaret kataloglarında on binlerce ürün sayfası varken,
  • Filtreleme, etiket ve kategori yapıları karmaşık olduğunda

sitemap.xml, botların önemli sayfalarınızı hızlı ve eksiksiz şekilde keşfetmesine yardımcı olur.

XML Sitemap Yapısı

Basit bir sitemap.xml dosyası şu şekilde 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>2025-01-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.ornek.com/hakkimizda/</loc>
    <lastmod>2025-01-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

Günümüzde büyük arama motorları changefreq ve priority alanlarını çok katı şekilde kullanmıyor; esas önemli olan:

  • URL’lerin mutlaka kanonik (canonical) adres olması
  • HTTP durum kodunun 200 dönmesi
  • Noindex gibi meta etiketlerle çelişmemesi
  • URL sayısının bir dosyada 50.000’i ya da 50 MB’ı geçmemesi

Sitemap Türleri ve Sitemap Index

Büyük sitelerde tek bir sitemap.xml dosyası yetmeyebilir. Bu durumda birden fazla sitemap dosyasını toplayan bir sitemap index kullanılır:

<?xml version='1.0' encoding='UTF-8'?>
<sitemapindex xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'>
  <sitemap>
    <loc>https://www.ornek.com/sitemap-pages.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://www.ornek.com/sitemap-products.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://www.ornek.com/sitemap-blog.xml</loc>
  </sitemap>
</sitemapindex>

Yaygın kullanım biçimleri:

  • Sayfalar, ürünler, blog yazıları için ayrı sitemap dosyaları
  • Çok dilli sitelerde her dil için ayrı sitemap
  • Görseller için image-sitemap, haber siteleri için news-sitemap gibi özel türler

Hangi URL’ler Sitemap’e Girmeli?

Sitemap’e her gördüğünüz URL’yi koymak iyi bir fikir değildir. Genel prensip:

  • Arama sonuçlarında görünmesini istediğiniz sayfalar
  • Kalıcı URL yapısına sahip içerikler (ürün, kategori, blog, kurumsal sayfa vb.)
  • Kanonaik URL’ler (www vs non-www, http vs https karmaşası olmamalı)

Sitemap’ten uzak tutmanız gerekenler:

  • Filtrelenmiş, sayfalanmış ve parametreli URL’ler
  • Oturum, takip ve kampanya parametreli adresler
  • Noindex ile işaretlediğiniz ya da 404/410 döndüren URL’ler

HTTP durum kodları ve SEO ilişkisini daha derin anlamak için DCHost blogundaki HTTP durum kodlarının SEO ve hosting tarafındaki etkileri rehberine de mutlaka göz atmanızı öneririm.

robots.txt ve sitemap.xml Nasıl Birlikte Çalışır?

Bu iki dosya aynı oyunun iki ayrı ama uyumlu parçasıdır:

  • robots.txt: Botların site içinde nasıl dolaşacağını söyler (nerelere girebilir, nerelere giremez).
  • sitemap.xml: Botlara, gitmelerini istediğiniz önemli URL’leri topluca listeler.

İdeal senaryoda robots.txt dosyanızın en altına sitemap satırını ekleyerek bu ikisini birbirine bağlarsınız:

Sitemap: https://www.ornek.com/sitemap.xml

Bu sayede arama motoru botu, robots.txt’yi okuduğu anda sitemap adresinizi de öğrenir. Özellikle yeni sitelerde bu, keşif sürecini hızlandırır.

Dikkat etmeniz gereken kritik nokta şu: robots.txt ile engellediğiniz bir URL’yi sitemap’e koymamalısınız. Çünkü bot, sitemap sayesinde URL’yi öğrense bile robots.txt yüzünden içeriğini tarayamayacak ve bu çelişki raporlarını arama konsolu tarafında görmek zorunda kalacaksınız.

Farklı Hosting Senaryolarında Kurulum

robots.txt ve sitemap.xml mantığı her yerde aynı; ama dosyanın nereye koyulacağı, nasıl yönetileceği ve otomasyonun nasıl sağlanacağı hosting mimarisine göre değişiyor.

Paylaşımlı Hosting (cPanel / DirectAdmin) Üzerinde Kurulum

Paylaşımlı hostingte tipik dizin yapısı şu şekildedir:

  • public_html ya da httpdocs: Ana alan adınızın kök dizini
  • public_html/blog gibi alt klasörler: Alt dizin içinde çalışan uygulamalar
  • Alt alan adları için çoğu zaman ayrı dizinler (subdomain.ornek.com gibi)

robots.txt ve sitemap.xml için pratik adımlar:

  1. cPanel ya da DirectAdmin dosya yöneticisinde public_html dizinine girin.
  2. robots.txt isimli bir metin dosyası oluşturun veya mevcutsa düzenleyin.
  3. sitemap.xml dosyanızı ya manuel olarak ekleyin ya da CMS eklentinizin ürettiği konuma sembolik link verin.
  4. Alan adınızı tarayıcıda açıp https://www.ornek.com/robots.txt ve https://www.ornek.com/sitemap.xml adreslerinin erişilebilir olduğunu test edin.

WordPress gibi CMS’ler genellikle sitemap’i otomatik üretir (örneğin /wp-sitemap.xml ya da eklentinin tanımladığı özel bir yol). Bu durumda robots.txt içinde Sitemap satırını bu gerçek URL’ye göre güncellemeyi unutmayın.

VPS ve Dedicated Sunucularda Kurulum

VPS ya da dedicated sunucu kullanıyorsanız, kontrol paneliniz olmayabilir ya da Nginx/Apache yapılandırmasını doğrudan siz yönetiyor olabilirsiniz. Bu durumda tipik kampüs şöyle görünür:

  • Document root: /var/www/domain.com/public gibi bir dizin
  • Nginx server blokları ya da Apache sanal host tanımları
  • SSH üzerinden dosya oluşturma/düzenleme akışı

Adımlar:

  1. SSH ile sunucuya bağlanın.
  2. Document root dizinine geçin: örneğin cd /var/www/domain.com/public
  3. touch robots.txt ve touch sitemap.xml komutlarıyla dosyaları oluşturun (veya SFTP ile yükleyin).
  4. nano ya da vim ile robots.txt içeriğini düzenleyin.
  5. Gerekirse Nginx ya da Apache üzerinde özel bir kural yoksa ek yapılandırmaya ihtiyaç yoktur; statik dosya gibi sunulacaktır.

Panel olmadan VPS yönetimine yeni başladıysanız, DCHost blogundaki kontrol paneli olmadan VPS üzerinde web sitesi yayına alma rehberi bu kurulumları daha rahat yönetebilmeniz için ayrıntılı bir yol haritası sunuyor.

Subdomain ve Alt Dizin Senaryoları

Özellikle blog, mağaza ve farklı dil sürümleri devreye girdiğinde alan adı mimarisi işin içine giriyor. Örneğin:

  • blog.ornek.com
  • shop.ornek.com
  • ornek.com/blog/
  • ornek.com/en/ gibi dil dizinleri

Bu tür senaryolarda:

  • Her alt alan adı için ayrı bir robots.txt gerekir (blog.ornek.com/robots.txt gibi).
  • Alt dizinler için ise ana domainin robots.txt’si geçerlidir; ayrı bir dosya oluşturamazsınız.
  • Her alt alan adı için ayrı sitemap oluşturmak ve bunları o alt alan adına ait robots.txt içine tanımlamak mantıklıdır.

Alt alan adı mı alt dizin mi kararını verirken SEO ve hosting tarafındaki etkileri daha sistemli görmek istiyorsanız, hazırladığımız subdomain mi alt dizin mi kararını SEO ve hosting açısından karşılaştırdığımız rehber size net bir çerçeve sunacaktır.

İçerik Yönetim Sistemlerinde (WordPress vb.) Doğru Kurulum

Pratikte pek çok site WordPress, WooCommerce, Magento, Laravel tabanlı özel uygulamalar veya farklı CMS çözümleri kullanıyor. Bu durumda robots.txt ve sitemap.xml genellikle şu şekilde yönetilir:

WordPress Örneği

Modern WordPress sürümleri temel bir sitemap yapısını çekirdek seviyesinde sağlayabiliyor. Ayrıca SEO eklentileri (isim vermeden söyleyelim, piyasadakilerin çoğu) daha gelişmiş sitemap yapılandırmaları sunuyor.

WordPress için önerilen adımlar:

  1. Önce SEO eklentinizin sitemap URL’sini not edin (örneğin https://www.ornek.com/sitemap_index.xml).
  2. Ardından kök dizine gerçek bir robots.txt dosyası koyarak Sitemap satırına bu adresi yazın.
  3. Gerekiyorsa arama sonuç sayfaları, etiket sayfaları gibi gereksiz ya da çoğaltılmış içeriği sitemap dışı bırakın.
  4. Veritabanı tarafında özellikle wp_options şişmesini düzenli temizleyerek tarama performansını ve genel site hızını koruyun.

WordPress siteniz büyüdükçe veritabanı ve performans tarafı daha kritik hale gelir. Bu noktada DCHost blogundaki WordPress veritabanı optimizasyonu ve wp_options temizliği rehberini incelemek, sitemap ile arama botlarını beslerken sunucuyu yormamanız için ciddi avantaj sağlayacaktır.

E-ticaret ve Büyük Katalog Siteleri

Binlerce ürün, kategori ve filtre sayfası olan sitelerde sitemap stratejisi çok daha önemlidir. Öneriler:

  • Ürünler, kategoriler ve içerik sayfaları için ayrı sitemap dosyaları kullanın.
  • Fiyat aralığı, sıralama, stok durumu gibi parametreli URL’leri sitemap’e almayın.
  • Stoktan kalkan ürünleri 404/410 statüleri ve yönlendirme kuralları ile yönetip sitemap’ten çıkarın.
  • Tarama bütçesini boşa harcamamak için filtre URL’lerini robots.txt ile kısıtlamayı değerlendirin.

Adım Adım Uygulanabilir Kurulum Planı

Teoride her şey net görünebilir, ama iş pratiğe gelince kolay bir kontrol listesine ihtiyaç duyarsınız. Aşağıdaki adımları izleyerek mevcut ya da yeni bir sitenin robots.txt ve sitemap.xml kurulumunu baştan sona elden geçirebilirsiniz.

1. Mevcut Durumu Analiz Edin

  • Tarayıcıda https://www.siteniz.com/robots.txt adresine gidin, dosya var mı bakın.
  • https://www.siteniz.com/sitemap.xml ya da yaygın sitemap URL’lerini kontrol edin.
  • Google Search Console benzeri araçlarda tarama ve sitemap hatalarını inceleyin.
  • Sunucu loglarınızdan bot trafiğini ve 4xx/5xx hata oranlarını gözden geçirin.

2. Temiz ve Çelişkisiz Bir robots.txt Yazın

Örnek kurumsal site robots.txt şablonu:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /cgi-bin/
Disallow: /arama/

Allow: /wp-admin/admin-ajax.php

Sitemap: https://www.siteniz.com/sitemap.xml

Dikkat etmeniz gerekenler:

  • Test ya da staging ortamlarını asla gerçek sitenin robots.txt’sine karıştırmayın.
  • Canlı siteyi kazara taramaya tamamen kapatacak biçimde Disallow: / satırı yazmayın.
  • İndekslenmesini istediğiniz sayfaların dizinlerini Disallow ile engellemediğinizden emin olun.

3. Sitemap’leri Oluşturun ya da Gözden Geçirin

CMS kullanıyorsanız genellikle bir eklenti ya da çekirdek özellik sitemap oluşturacaktır. Statik sitelerde ise manuel üretim ya da otomatik betikler (örneğin cron job ile çalışan jeneratörler) devreye girer.

Kontrol etmeniz gerekenler:

  • Her sitemap dosyası 50.000 URL veya 50 MB limitini aşmamalı.
  • Tüm URL’ler 200 durum kodu ile dönmeli ve noindex olmamalı.
  • www ve https tercihinize göre kanonik URL yapısı net olmalı.
  • Alt alan adları için ayrı sitemap ve robots.txt kombinasyonu uygulanmalı.

4. Arama Motoru Panellerine Bildirin

robots.txt içine Sitemap satırını eklemek önemli; ama yeterli değil. Ayrıca:

  • Arama konsolu panelinde sitenizi doğrulayın.
  • Sitemap URL’nizi elle ekleyin.
  • Tarama istatistikleri, hata raporları ve kapsam raporlarını düzenli takip edin.

Bu sayede robots.txt ve sitemap.xml üzerinde yaptığınız değişikliklerin etkisini gerçek zamanlıya yakın bir biçimde izleyebilirsiniz.

5. HTTP Durum Kodları ile Uyumlu Hale Getirin

robots.txt ve sitemap.xml ne kadar düzgün olursa olsun, sayfalarınız yanlış HTTP statüleri dönüyorsa SEO tarafında sorun yaşamaya devam edersiniz. Özellikle:

  • Kalıcı yönlendirmeler için 301 kullanın.
  • Geçici yönlendirmelerde 302’nin gerçekten geçici olduğundan emin olun.
  • Artık var olmayan içerikler için 404 yerine çoğu zaman 410 tercih etmek daha net sinyal verir.
  • 5xx hataları sitemap’teki sayfalarda sık yaşanıyorsa, sunucu kaynaklarınızı ya da hosting paketinizin kapasitesini gözden geçirin.

Bu konuyu daha detaylı ele aldığımız HTTP durum kodları rehberi, robots.txt ve sitemap.xml ayarlarının sunucu yanıtlarıyla çelişmemesi için iyi bir tamamlayıcı kaynaktır.

Sık Yapılan Hatalar ve Kaçınma Yolları

Saha deneyiminde tekrar tekrar karşılaştığımız bazı kritik hatalar var. Bunları önceden bilmek, özellikle yeni proje lansmanlarında sizi ciddi trafik ve gelir kaybından kurtarır.

1. Geliştirme Ortamı robots.txt’sinin Canlıya Taşınması

Geliştirme sürecinde çoğu ekip, test ortamının arama motorları tarafından taranmaması için robots.txt içine Disallow: / yazar. Problem, site canlıya alınırken bu dosyanın aynen kopyalanmasıyla başlar. Sonuç: Arama motorları siteyi tamamen taramaya kapalı görür.

Önlem:

  • Canlıya çıkmadan önce robots.txt dosyasını mutlaka manuel olarak gözden geçirin.
  • Geliştirme ortamı için alan adı düzeyinde farklı domain ya da subdomain kullanın.
  • Mümkünse sadece robots.txt değil, HTTP Basic Auth ile de test ortamını koruyun.

2. Sadece robots.txt ile Gizlilik Beklemek

İç kullanıcıya özel, hukuki veya finansal belgeleri barındıran dizinleri robots.txt ile kapatmaya çalışmak, hem teknik hem de hukuki açıdan risklidir. Çünkü bu klasörlerin yolu, robots.txt sayesinde tüm dünyaya ilan edilmiş olur.

Bu durumda yapmanız gerekenler:

  • İçerikleri herkese açık web kök dizininden tamamen çıkarın.
  • Korumalı alanlar için kimlik doğrulama, VPN ya da IP kısıtlamaları uygulayın.
  • robots.txt’yi sadece bot davranışını yönlendiren bir rehber olarak görün.

3. Sitemap’e Noindex veya 404 Sayfaları Koymak

İndekslenmesini istemediğiniz sayfaları (örneğin noindex ile işaretlediğiniz içerikler) ya da 404/410 dönen URL’leri sitemap içinde bırakmak, arama motoru raporlarınızda gereksiz hata mesajları oluşturur ve tarama bütçenizi boşa harcar.

Çözüm:

  • Sitemap jeneratörünüzde noindex sayfaları dışarıda bırakma seçeneği varsa aktif edin.
  • Yanlış URL’leri düzenli aralıklarla temizleyin.
  • Yeniden tasarım atau URL değişikliği sonrası 301 yönlendirmeleri düzgün kurgulayın.

4. Çok Dilli Sitelerde Tek Sitemap Kullanmak

tr, en, de gibi birden fazla dil sürümü olan sitelerde tüm dillerin URL’lerini tek sitemap dosyasına doldurmak, özellikle hacim büyüdükçe yönetimi zorlaştırır ve hata riskini artırır.

Daha sağlıklı yaklaşım:

  • Her dil için ayrı bir sitemap (sitemap-tr.xml, sitemap-en.xml vb.) üretin.
  • Bunları bir sitemap index içinde toplayın.
  • robots.txt içinden sadece sitemap index’i referans verin.

5. Hosting Tarafı Dosya Konumlarının Karıştırılması

Özellikle birden fazla site barındıran hosting hesaplarında, yanlış document root’a konulan robots.txt ve sitemap.xml dosyaları sık gördüğümüz hatalardan. Örneğin ana domain için hazırlanan robots.txt yanlışlıkla bir addon domain dizinine yüklenebiliyor.

Önerimiz:

  • Her domain ve subdomain için document root dizinini net olarak not alın.
  • Dosyaları yüklerken paneldeki dizin yolunu iki kez kontrol edin.
  • Tarayıcı üzerinden URL kontrollü test yapmadan kurulumu tamamlamış saymayın.

Hosting, SEO ve DCHost Perspektifinden Son Söz

robots.txt ve sitemap.xml, kağıt üzerinde basit görünen ama pratikte SEO performansınızı ve sunucu kaynak kullanımınızı ciddi biçimde etkileyebilen iki temel yapı taşı. Özellikle yeni proje lansmanlarında, alan adı değişikliklerinde, çok dilli site geçişlerinde ya da paylaşımlı hostingten VPS’e yükseltme süreçlerinde bu dosyaları ihmal etmek, aylarca sürebilecek indeks sorunlarına ve kayıp trafiğe yol açabiliyor.

DCHost olarak bizim bakış açımız şu: Sağlam bir SEO stratejisi ile sağlam bir hosting mimarisi birbirinden ayrılamaz. Doğru planlanmış robots.txt ve sitemap.xml, iyi ayarlanmış HTTP durum kodları, mantıklı bir alan adı ve alt alan adı mimarisi ve yeterli sunucu kaynaklarıyla birlikte anlam kazanır. İhtiyacınıza göre paylaşımlı hosting, VPS, dedicated sunucu veya colocation altyapılarımız üzerinde bu yapılandırmaları uygularken, hem SEO ekibinizin hem de yazılım geliştiricilerinizin rahat edeceği bir ortam kurabilirsiniz.

Sitenizin mevcut durumundan emin değilseniz, bu yazıdaki kontrol listesiyle başlayın; ardından log analizi, HTTP hataları, veritabanı ve uygulama performansı gibi katmanları da yavaş yavaş ele alın. Gerek duyduğunuz noktada DCHost destek ekibi, robots.txt ve sitemap.xml gibi temel yapı taşlarından başlayarak hosting tarafındaki tüm teknik SEO gereksinimlerinizi birlikte gözden geçirmeye hazır.

Sıkça Sorulan Sorular

robots.txt dosyası mutlaka alan adınızın kök dizininde yer almalıdır. Yani https://ornek.com/robots.txt ya da https://www.ornek.com/robots.txt şeklinde, kök seviyeden erişilebilir olmalıdır. Alt dizinlere (örneğin /blog/robots.txt) koyulan dosyalar arama motoru botları tarafından dikkate alınmaz. Ancak her alt alan adı için (blog.ornek.com, shop.ornek.com gibi) ayrı robots.txt kullanabilirsiniz; çünkü her subdomain kendi başına ayrı bir site gibi değerlendirilir. Bir domain için aynı anda birden fazla robots.txt kullanamazsınız; bir tane ve kökte olmak zorundadır. Bu nedenle çoklu site ve subdomain mimarisinde document root dizinlerinizi ve hangi robots.txt’nin hangi alan adını yönettiğini net şekilde planlamanız gerekir.

sitemap.xml dosyanızda arama sonuçlarında görünmesini gerçekten istediğiniz, kanonik ve kalıcı URL’ler yer almalıdır. Ana sayfa, kurumsal sayfalar, ürün ve kategori sayfaları, blog yazıları bu listeye genellikle dahildir. Buna karşılık, arama sonuçlarını kirletebilecek filtrelenmiş veya parametreli URL’leri (sayfa=2, sort=price-desc, ref=kampanya gibi) sitemap’e almamanız önerilir. Ayrıca noindex ile işaretlediğiniz, 404 veya 410 dönen sayfalar, test ve staging ortamları da kesinlikle sitemap’te yer almamalıdır. Büyük sitelerde ürünler, kategoriler ve blog yazıları için ayrı sitemap dosyaları kullanmak, yönetimi kolaylaştırır ve hata riskini azaltır.

Evet, bu mümkün. robots.txt, botun sayfanın içeriğini taramasını kısıtlar; ancak sayfanın URL’si başka sitelerden link alıyorsa veya daha önce taranmışsa, sonuçlarda görünebilir. Böyle bir durumda genellikle yalnızca URL görünür, içerik önizlemesi gösterilmez ve “robots.txt tarafından engellendi” benzeri notlar görülebilir. Bir sayfanın hem taranmasını hem de indekslenmesini istemiyorsanız, öncelikli yöntem o sayfaya noindex meta etiketi eklemek ve erişimi 200 yerine 404/410 gibi daha net durum kodlarıyla yönetmektir. Fakat robots.txt ile engellediğiniz sayfalara botlar içerik taraması yapamadığı için noindex etiketini de göremeyeceklerdir. Bu nedenle gizlilik ve kaldırma işlemlerinde sadece robots.txt’ye güvenmek yerine, HTTP statüleri ve noindex kombinasyonunu doğru kurgulamak gerekir.

Yeni bir site yayına alırken önce alan adı ve hosting tarafındaki temel mimariyi (www veya non-www tercihi, HTTPS yönlendirmeleri, alt alan adları gibi) netleştirmeniz gerekir. Ardından uygulamayı kök dizine yerleştirip, HTTP durum kodlarınızın doğru döndüğünü test etmelisiniz. Bu temel tamamlandıktan sonra önce sitemap.xml’lerinizi oluşturmanız ve URL’lerin gerçekten 200 durum kodu ve doğru canonical yapı ile çalıştığını doğrulamanız uygun olur. Son adımda netleşmiş sitemap URL’lerini robots.txt dosyasında Sitemap satırıyla tanımlayabilirsiniz. Böylece robots.txt, baştan itibaren doğru sitemap’e işaret etmiş olur ve arama motoru botları ilk ziyarette doğru yol haritasını görür.

Paylaşımlı hostingten VPS veya dedicated sunucuya geçerken çoğu zaman alan adı, URL yapısı ve site kök dizini değişmese de, document root yolları ve sunucu yapılandırmaları değişir. Bu süreçte öncelikle yeni sunucudaki document root dizininde robots.txt ve sitemap.xml dosyalarının gerçekten bulunduğunu ve tarayıcıdan erişilebildiğini test etmelisiniz. Taşıma sırasında eski ve yeni sunucu arasında DNS geçişi yapılırken kısa bir süre iki ortam da erişilebilir olabilir; bu nedenle staging/test ortamları için alan adı düzeyinde ayrım yapmanız önemlidir. Ayrıca taşımadan sonra arama konsolu tarafında yeni sitemap URL’lerinizi yeniden göndermek ve tarama hatalarını izlemek iyi bir pratiktir. Böylece hem SEO hem de hosting tarafındaki geçiş sürecini daha kontrollü yönetebilirsiniz.