
403 Hatası Neyi Gösterir
403 cevabı, isteğin sunucuya ulaştığını ve sunucunun içeriği vermeyi bilinçli olarak reddettiğini gösterir. Bu, robots.txt engelinden yapısal olarak farklı bir durumdur. robots.txt içindeki bir Disallow satırı, kurala uyan bir tarayıcının o adrese hiç istek göndermemesine yol açar, dolayısıyla logda o sayfa için bir satır oluşmaz. Loglarınızda OAI-SearchBot user-agent'ı ile 403 satırları görüyorsanız bot dosyayı okumuş ve isteği yine de göndermiştir. O 403'lerin kaynağı robots.txt değildir.
Ayrım önemli, çünkü iki sorunun çözümü aynı yerde durmaz. robots.txt bir tercih beyanıdır ve içeriğin önündeki güvenlik katmanını teknik olarak bağlamaz. 403 ise erişim denetimi yapan bir bileşenden gelir: CDN, web uygulaması güvenlik duvarı, sunucu yapılandırması veya CMS eklentisi.
Üçüncü bir ayrım daha var. Hız sınırlama kuralları genelde 429 döndürür. Cloudflare tarafında hız sınırlama kuralının engelleme aksiyonu varsayılan olarak 429 verir ve bu kod 400 ile 499 arasında değiştirilebilir. Yani bir 403, yanıt kodu özelleştirilmiş bir hız sınırlama kuralından da geliyor olabilir. Doğrulama sorgusu ise ayrı bir davranıştır: bot bir hata kodu almasa bile JavaScript çalıştırması beklenen bir ara sayfa alır ve içeriğe ulaşamaz. Sonuç aynı kapıya çıkar, ama teşhis farklı yere bakmayı gerektirir.
Hızlı bir teşhis kısayolu şu: aynı adres tarayıcıdan 200 dönüyor ama bottan 403 dönüyorsa kural adresle değil kimlikle ilgilidir. Devrede olan kural user-agent, IP aralığı, ASN, ülke veya bot sınıflandırması üzerinden çalışıyordur.
OAI-SearchBot ile GPTBot Engeli Arasındaki Kritik Fark
OpenAI birbirinden ayrı üç istemci yayımlar ve bunların ayarları bağımsız çalışır. Birine izin vermek diğerine izin vermeyi gerektirmez. Bu ayrımı kaçırmak, yapay zeka görünürlüğü tarafındaki en pahalı hatalardan biridir. Model eğitimine içerik vermek istemeyen bir site farkında olmadan arama görünürlüğünü de kapatabilir. Tersi de olur: GPTBot'a izin verdiği için ChatGPT aramasında görüneceğini varsayan siteler, asıl kritik olan botu engelli bırakır.
| Bot | Ne için kullanılır | robots.txt karşılığı | Engellenirse sonuç |
|---|---|---|---|
| OAI-SearchBot | ChatGPT'nin arama özelliklerini besler ve siteyi arama cevaplarında yüzeye çıkarır | OAI-SearchBot | Site ChatGPT arama cevaplarında gösterilmez, yalnız gezinme bağlantısı olarak görünmeye devam edebilir |
| GPTBot | Üretken yapay zeka temel modellerinin eğitimi için içerik tarar | GPTBot | İçerik model eğitiminde kullanılmaz, ChatGPT arama görünürlüğü bundan doğrudan etkilenmez |
| ChatGPT-User | ChatGPT ve özel GPT'ler içinde kullanıcının başlattığı sayfa çekme işlemlerini yürütür | Otomatik tarama sayılmadığı için robots.txt kuralları uygulanmayabilir | Kullanıcı bir sayfayı ChatGPT içinden açtırdığında içerik alınamaz |
OpenAI'ın kendi dokümantasyonundaki ifade bu konuda nettir: OAI-SearchBot'a kapalı siteler ChatGPT arama cevaplarında gösterilmez. Dolayısıyla bir 403 sorunu yalnız teknik bir log kirliliği değil, doğrudan kaynak gösterilme ihtimalini sıfırlayan bir kısıttır. ChatGPT için yapılan GEO çalışmasının ilk şartı da bu erişimin açık olmasıdır, içerik kalitesi ondan sonra devreye girer.
403 Cevabını Kimin Verdiğini Bulma Sırası
Ayarları rastgele değiştirmeden önce engelin hangi katmandan geldiğini kesinleştirmek gerekir. Sıra şu şekilde işler.
- Ham sunucu loglarını user-agent'a göre filtreleyin. Erişim loglarında OAI-SearchBot ifadesini arayın ve dönen durum kodlarını sayın. Hiç satır yoksa sorun 403 değil, botun siteye hiç ulaşamaması veya sayfaları hiç keşfetmemiş olmasıdır. Bu tamamen başka bir teşhis dalıdır.
- İsteğin gerçekten OpenAI'dan geldiğini IP ile doğrulayın. OpenAI arama botu için kullandığı adres aralıklarını openai.com/searchbot.json dosyasında yayımlar. Logdaki kaynak IP bu listede yoksa istek sahte olabilir ve o 403'ü veren kural doğru çalışıyordur. User-agent alanı taklit edilmesi en kolay alandır, tek başına kanıt sayılmaz.
- Engelin CDN'de mi origin'de mi olduğunu ayırın. CDN loglarında 403 görünüyor ama origin erişim loglarında o istek hiç yoksa engel uç noktada, yani CDN veya WAF katmanındadır. Her iki logda da görünüyorsa engel sunucunun kendisindedir.
- Cloudflare kullanıyorsanız hangi ürünün aksiyon aldığına bakın. Analytics bölümündeki Events ekranında "Events by service" listesi isteği hangi güvenlik ürününün işlediğini gösterir. Sampled logs kısmında tek tek olayları açıp user-agent veya IP üzerinden filtre uygulayabilirsiniz. Bu adım "Cloudflare engelliyor" tahminini "şu kural engelliyor" bilgisine çevirir.
- Durum kodlarını birbirinden ayırın. 403 doğrudan ret, 429 hız sınırı, doğrulama sorgusu ise çözülemeyen bir ara sayfadır. Loglarda üçü karışık görünüyorsa muhtemelen birden fazla kural aynı anda devrededir ve tek bir ayarı kapatmak sorunu bitirmez.
- robots.txt dosyasını ayrıca okuyun. 403 çözülse bile bir Disallow satırı botu uzak tutmaya devam eder. Bu iki kontrol paralel yürütülür, biri diğerinin yerine geçmez.
Teşhis sırasında en sık düşülen tuzak, kendi bilgisayarınızdan OAI-SearchBot user-agent'ı ile istek atıp sonucu kanıt saymaktır. Bu test iki yönde de yanıltır. Doğrulanmış bot kuralları kimliği IP listesi, ters DNS veya kriptografik imza üzerinden çözer, user-agent metnine bakmaz. Sizin IP'nizden gelen taklit istek gerçek botun izinlerine hiç girmez, hatta sahte bot tespiti yapan kurallara takılıp asıl botun almadığı bir 403 üretebilir. Tersi de mümkündür: taklit istek 200 alır, gerçek bot yine 403 alır. Bağlayıcı olan tek veri, yayımlanan IP aralıklarından gelen isteklerin logdaki durum kodudur. Bu kontrolü elle yapmak istemiyorsanız Seobaz'ın ücretsiz AI tarama denetimi aracı botların siteye erişimini dışarıdan test eder.
Cloudflare Kaynaklı Engeller ve Çözümleri
Cloudflare tarafında 403 üretebilecek birden fazla bağımsız katman var ve bunlar farklı ekranlarda yönetilir. Sırayla kontrol etmek gerekir. Cloudflare kurulumunu yeni tamamladıysanız bu ayarların bir kısmı varsayılan olarak açık gelebilir.
- Yapay zeka bot politikalarını kontrol edin. Security Settings altındaki "Configure AI bot policies" ekranı botları Search, Agent ve Training olarak üç davranışa ayırır. Her kategori için üç seçenek vardır: "Block (on all pages)", "Block on pages with ads" ve "Allow (do not block)". OAI-SearchBot arama davranışına girdiği için Search kategorisi "Allow (do not block)" konumunda olmalıdır.
- Eski "Block AI bots" ayarını da gözden geçirin. Bu tekil ayar 15 Eylül 2026'da kullanımdan kaldırılıyor ve yerini yukarıdaki kategori bazlı politikalara bırakıyor. Aynı tarihte yeni eklenen alan adları için varsayılanlar da değişiyor: Training ve Agent sınıfındaki botlar reklam gösteren sayfalarda engelli başlıyor, Search ise izinli kalıyor. Kritik bir yan etki daha var: Cloudflare, eğitim taramasını engelleyen tüm yapılandırmaların hem arama hem eğitim amacıyla kullanılan karma amaçlı tarayıcıları da engellediğini belirtiyor. Yani "sadece eğitimi kapatıyorum" niyeti, karma amaçlı botlarda arama erişimini de kapatabilir.
- Super Bot Fight Mode ayarlarını açın. Bu ekranda "Verified bots", "Definitely automated" ve "Likely automated" grupları ayrı ayrı yönetilir. Doğrulanmış botların engellenmemesi için "Verified bots" grubu izinli konumda olmalıdır. Super Bot Fight Mode, WAF özel kurallarındaki Skip aksiyonuyla atlanabildiği için istisna tanımlamaya da uygundur.
- Ücretsiz plandaki Bot Fight Mode'u ayrı değerlendirin. Bu özellik özelleştirilemez ve Ruleset Engine üzerinde çalışmadığı için Skip, Bypass veya Allow aksiyonlarıyla atlatılamaz. Kaynak buysa seçenekler sınırlıdır: özelliği kapatmak veya Super Bot Fight Mode'un bulunduğu bir plana geçmek. Bu ayrımı bilmeden saatlerce istisna kuralı yazan çok site var.
- Özel WAF kurallarını ve yönetilen kural setini tarayın. User-agent, ASN, ülke veya bilinen bot alanı üzerinden yazılmış eski bir kural, adında yapay zeka geçmese bile OAI-SearchBot'u yakalayabilir. Çözüm, botu hedefleyen dar kapsamlı bir Skip kuralı tanımlamak ve bu istisnayı yönetilen kural setini çalıştıran kuraldan önce sıralamaktır. Sıralama yanlışsa istisna hiç devreye girmez.
- Hız sınırlama kurallarını yanıt koduyla birlikte okuyun. Engelleme aksiyonunun varsayılan kodu 429'dur, ancak 400 ile 499 arasında bir değere çekilebilir. Kod 403 olarak ayarlanmışsa sorun bir bot kuralı gibi görünür, aslında istek hacmiyle ilgilidir. Bu durumda doğru çözüm botu istisna etmek veya eşiği yükseltmektir, bot korumasını kapatmak değildir.
Cloudflare'in yönetilen robots.txt özelliği ayrı bir başlıktır ve 403 üretmez, ama sonucu benzerdir. Bu özellik açıkken Cloudflare kendi hazırladığı direktifleri sizin dosyanızın önüne ekler ve iki içeriği tek cevapta birleştirir. Yani sunucudaki robots.txt dosyanızda hiç yazmayan bir Disallow satırı canlı adreste görünebilir. Bu yüzden dosyayı sunucudan değil, canlı adresten okumak gerekir. Dosyanın bütününü elden geçirirken robots.txt ve tarama bütçesi optimizasyonu tarafındaki kurallar da işe yarar.
Sunucu ve Hosting Tarafındaki Engeller
CDN temiz çıktıysa sıra origin'e gelir. Bu katmanda 403'ün klasik kaynakları şunlardır.
- Sunucu yapılandırmasındaki user-agent kuralları. Apache tarafında .htaccess, Nginx tarafında sunucu bloğu içine yazılmış eski bir engel listesi tipik nedendir. Bu listeler genelde yıllar önce zararlı tarayıcılar için yazılır ve sonra kimse dokunmaz.
- Hosting güvenlik duvarı ve ModSecurity kuralları. Paylaşımlı barındırmada bu katman çoğu zaman müşteri panelinden tam görünmez. Engelin varlığını görmek için barındırma sağlayıcısından ilgili kural loglarını istemek gerekebilir.
- Veri merkezi ve ASN engelleri. OpenAI'ın yayımladığı arama botu adresleri bulut veri merkezi aralıklarıdır. "Veri merkezi trafiğini engelle" mantığıyla kurulmuş bir kural, adında OpenAI geçmese bile bu botu keser. Bu, adı hiçbir yerde anılmadan gerçekleşen en sinsi engel türüdür.
- Ülke bazlı kısıtlar. Yalnız Türkiye'den gelen trafiğe izin veren bir kural, yurt dışındaki tarayıcıların tamamını dışarıda bırakır. Yerel hizmet veren siteler bu kuralı bilerek koyar ve yapay zeka görünürlüğüne etkisini hesaba katmaz.
- CMS güvenlik eklentileri. WordPress ve benzeri sistemlerde eklenti düzeyindeki bot koruması, sunucu ve CDN temiz olsa bile 403 üretebilir. Eklentinin kendi engel logu genelde ayrı bir ekrandadır.
- Erişim duvarları. Giriş zorunluluğu, ödeme duvarı veya bölgeye göre yönlendirme yapan yapılar da bota 403 döndürebilir. Bu durumda sorun güvenlik değil, içerik erişim mimarisidir.
Engeli Kaldırdıktan Sonra Doğrulama
- Kuralı kaldırın veya botu kapsayan dar bir istisna tanımlayın. Tüm bot korumasını kapatmak yerine hedefli istisna yazmak daha güvenlidir.
- Logu izlemeye devam edin ve yayımlanan IP aralıklarından gelen isteklerin 200 döndüğünü görün. Doğrulama, ayar ekranındaki yeşil işaretle değil logdaki durum koduyla yapılır.
- robots.txt dosyasını canlı adresten okuyun ve OAI-SearchBot için engelleyici bir satır kalmadığını teyit edin.
- Cloudflare'in yönetilen robots.txt özelliği açıksa canlı çıktının başına eklenen direktifleri kontrol edin.
- Yeniden taranmayı bekleyin. Erişimin açılması taramanın hemen olacağı anlamına gelmez ve kimse için garantili bir süre yoktur. Erişim bir ön koşuldur, kaynak gösterilme garantisi değildir.
Sıkça Sorulan Sorular
GPTBot'u engellersem ChatGPT aramasından da düşer miyim?
Hayır. OpenAI bu ayarların birbirinden bağımsız çalıştığını belirtir, birine izin vermek diğerini gerektirmez. GPTBot engeli içeriğin model eğitiminde kullanılmasını kapsar. ChatGPT arama cevaplarındaki görünürlüğü belirleyen bot OAI-SearchBot'tur. Ancak Cloudflare gibi ara katmanlarda "eğitimi engelle" seçeneği karma amaçlı tarayıcıları da kapsadığı için, ayarı bot bazında değil kategori bazında yapan sistemlerde yan etki oluşabilir.
robots.txt'te izin verdiğim halde bot neden 403 alıyor?
Çünkü robots.txt bir erişim denetimi mekanizması değil, tercih beyanıdır. Bir tarayıcıya izin vermesi, önündeki güvenlik duvarının o isteği geçireceği anlamına gelmez. İzin satırı doğru, engel ise CDN, WAF, sunucu veya eklenti katmanındadır. İki katman ayrı ayrı düzeltilir.
Bana gelen isteğin gerçekten OAI-SearchBot olduğunu nasıl anlarım?
Kaynak IP adresini OpenAI'ın yayımladığı arama botu adres listesiyle karşılaştırarak. User-agent metni kolayca taklit edilebildiği için tek başına yeterli değildir. Listede olmayan bir adresten gelen ve kendini OAI-SearchBot olarak tanıtan istek, engellenmesi doğru olan bir istektir.
403 düzelince ChatGPT beni ne zaman kaynak gösterir?
Bunun için tanımlı bir süre yoktur ve erişimin açılması kaynak gösterilmeyi kendiliğinden getirmez. Erişim yalnız ilk şarttır. Sayfanın soruyla gerçekten ilgili olması, cevabı net biçimde taşıması ve o soru için diğer adaylar arasından seçilmesi ayrı bir aşamadır. Doğru beklenti şudur: 403'ü çözmek görünürlük kazandırmaz, görünürlük ihtimalini sıfır olmaktan çıkarır.



