Açıkça belirtelim: Biz Geonode’iz ve proxy satıyoruz; bu konuyla ilgili makalelerin çoğunun asıl amacı da proxy satmaktır. Dürüst bir sıralamaya göre proxy’ler yaklaşık altıncı sırada yer alır ve onlardan önceki beş madde ücretsizdir. Hız ayarlama, kimlik belirleme, önbellekleme, Retry-After adresine uyma ve robots.txt adresini okuma, herhangi bir adres rotasyonundan daha fazla engellemeyi önleyecektir; çünkü bunlar, sitelerin tarayıcıları engellemesinin asıl nedeni olan yük ve öngörülemezliği ele alır, sadece semptomu değil. Proxy'ler, daha sonra ele alınacak belirli bir soruna gerçekten yardımcı olur. Eğer ilk olarak bunlara başvurursanız, para harcarsınız ve yine de engellenirsiniz.
Tarayıcılar Aslında Neden Engellenir?
Sıklık sırasına göre dört neden.
Hız. Çok kısa sürede çok fazla istek gönderdiniz. Bu, açık ara en yaygın neden olup, tamamen sizin kontrolünüz altındadır. Bir site, tek bir adresten saniyede otuz istek gelmesinin sorun olduğunu belirlerken, sizin kim olduğunuzu bilmez ve umursamaz.
Öngörülemezlik. Ani trafik artışları, hatalar nedeniyle yapılan yeniden denemeler, aynı sayfaların tekrar tekrar taranması, sonsuz URL alanlarının takip edilmesi. Bir sitenin planlayamadığı yük, planlayabildiği yükten daha kötüdür.
Anonimlik. Açıklanamayan trafik üreten kimliği belirsiz bir istemci, durdurulması gereken bir sorundur. Kimliği bilinen bir istemci ise alınması gereken bir karardır ve çoğu zaman bu karar, izin verilmesidir.
Kimlik sinyalleri. Adres türü, TLS parmak izi, başlık yapısı. Gerçek ve bu listenin en sonunda yer almasının nedeni, bunların esas olarak bir site kimliği belirlenmemiş otomasyonu istemediğine karar verdikten sonra önem kazanması ve dürüstçe değiştirilmesi en zor olan unsurlar olmasıdır.
Dört unsurdan üçünün davranışla ilgili olduğuna dikkat edin. Sektörün dördüncü unsura odaklanması, en çok engellemeye neden olan unsurdan ziyade, satılması en kolay olan unsura bağlıdır.
Öncelikle Taramaya Gerek Kalmamasını Sağlayın
En yüksek getiriyi sağlayan, ancak en sık göz ardı edilen önlem budur.
API olup olmadığını kontrol edin. Birçok site API yayınlar; bu, istikrarlı, yapılandırılmış ve onaylanmış bir kaynaktır. API sunan bir siteyi taramak, daha kötü bir sonuç için daha fazla iş yapmak demektir.
Ortak veya bağlı kuruluş beslemesi olup olmadığını kontrol edin. İş, emlak, perakende, seyahat gibi tüm sektörler, özellikle agregatörler için toplu beslemeler yayınlar; çünkü agregatörler onlara trafik sağlar. Oluşturmaya başlamadan önce sorun. Şaşırtıcı sayıda site olumlu yanıt verir.
Site haritası olup olmadığını kontrol edin. Site haritası size bir URL envanteri ve lastmod zaman damgaları sağlar; böylece her şeyi değil, sadece değişenleri alırsınız.
Gömülü yapılandırılmış veriler olup olmadığını kontrol edin. <script type="application/ld+json"> bloğundaki JSON-LD, makine tarafından okunacak şekilde tasarlanmıştır, yeniden tasarımlardan etkilenmez ve zaten alacağınız sayfada mevcuttur.
Verilerin başka bir yerde mevcut olup olmadığını kontrol edin. Kamuya açık veri kümeleri, arşivler, resmi kayıtlar.
Bunların her biri, sorunu hafifletmek yerine tamamen ortadan kaldırır. İlk olarak bir tarayıcı yazma refleksi, bu alandaki en maliyetli alışkanlıktır ve bu yüzden bu bölümü teknik konulardan önce ele aldık. Bir web sitesindeki tüm sayfaları bulma başlıklı yazımızda kaynak hiyerarşisinin tamamını ele aldık.
Önce Kuralları Okuyun
robots.txt artık bir standarttır, RFC 9309, ve bu standarda doğru bir şekilde uymak hem uyumluluk hem de kendi çıkarınız açısından önemlidir.
Operasyonel açıdan önemli olan kısımlar: eşleştirme sıraya göre değil, özgüllüğe göre yapılır — en uzun eşleşen kural geçerlidir; 5xx yanıtı, "devam et" değil, tamamen reddedildi anlamına gelir; 404 kodu, kısıtlama olmadığı anlamına gelir; ve dosya, başlangıçta bir kez alınmak yerine en az 24 saatte bir yenilenmelidir.
Güncel bir ayrıştırıcı kullanın. Özgüllük kuralı ve yüzde kodlamalı normalleştirme, her ikisi de kolayca yanlış anlaşılabilir ve dosyayı yanlış okuyan bir tarayıcı, uyumlu olduğuna inanır ancak aslında değildir. Ayrıntıları robots.txt dosyasının nasıl okunacağı başlığında ele aldık.
Ardından hizmet şartlarını okuyun. robots.txt bir yetkilendirme değildir — RFC bunu açıkça belirtir — ve bir site, dosyanın neye izin verdiğine bakılmaksızın otomatik erişimi yasaklayabilir. Başlamadan önce bunu bilmek, bir mektupta öğrenmekten daha iyidir.
Hızınızı Doğru Ayarlayın
En değerli teknik önlem ve aynı zamanda en ucuz olanı.
Her etki alanı için her bir ila iki saniyede bir istek, makul bir varsayılan ayardır. Küçük siteler için bu sıklık daha az olmalı; hedefin bunu tolere ettiğine dair kanıt olmadan daha hızlı olmamalıdır.
robots.txt adresinde bir değer belirlenmişse, buna uyun. Bu, standardın bir parçası olmaktan ziyade bir uzantıdır; buna uymak hiçbir maliyeti yoktur ve iyi niyet göstergesidir.
Jitter ekleyin. Tam olarak düzenli aralıklarla yapılan istekler, hiçbir insanın üretemeyeceği bir izdir. Örneğin 1,0 ile 2,5 saniye arasında rastgele aralıklar kullanmak, hiçbir maliyet olmadan bu izi ortadan kaldırır.
Eşzamanlılığı genel olarak değil, etki alanı başına sınırlayın. Sekiz etki alanına yayılmış sekiz eşzamanlı istek kibardır. Tek bir etki alanına sekiz istek ise değildir.
Mümkünse yoğun olmayan saatlerde tarama yapın. Bir site yoğun olduğunda toleransı daha düşüktür ve gece boyunca çalışan bir iş size ekstra bir maliyet getirmez.
Ve kapasite eklemeden önce zaman aralığınızı genişletin. Bu, mevcut en yararlı yeniden çerçeveleme yöntemidir: yirmi dört saate yayılmış elli bin sayfa için yaklaşık iki eşzamanlı bağlantı gerekir; aynı elli bin sayfanın iki saatte işlenmesi için yirmi bağlantı gerekir. İşin hızlı bir şekilde bitmesine bağlı olan hiçbir şey yoksa — ve genellikle yoktur — zamanlama, elinizdeki en ucuz çözümdür. Kaç proxy'ye ihtiyacınız var başlıklı yazımızda bu hesaplamaları ayrıntılı olarak ele aldık.
Kimliğinizi Belirtin
Sezgilere aykırı ama her zaman etkili bir yöntem.
User-Agent: AcmePriceBot/1.2 (+https://acme.example.com/bot)
Bir isim, bir sürüm ve bir URL; bu sayede başkaları sizin ne olduğunuzu ve size nasıl ulaşabileceklerini öğrenebilir. Üç gerçek fayda:
**robots.txt
adresi size özel olarak hitap edebilir.** Kurallar ürün belirtecine göre eşleşir; böylece bir site, tarayıcınıza herkese vermediği bir izin verebilir. Anonim olursanız bu mümkün olmaz.
Operatörler sizi engellemek yerine sizinle iletişime geçebilir. Bu, insanların beklediğinden daha sık olur ve üç hafta sonra engellendiğinizi fark etmekten çok daha iyi bir sonuçtur.
Erişim talebinde bulunmayı destekler. "Biz AcmePriceBot olarak tanımlanan tarayıcıyız; işte neyi neden topladığımız" şeklinde bir konuşma, bir sonuca varabilir.
Alternatif olan — kopyalanmış bir Chrome dizesi — kılık değiştirme yerine bir çelişki yaratır; çünkü TLS parmak izi ve başlık kümesi açıkça bir tarayıcıya ait olmayan bir bağlantıdaki tarayıcı kullanıcı ajanı, dürüst bir itirafdan daha kolay tespit edilebilir. Bu konuyu curl ile özel bir kullanıcı ajanı ayarlama başlıklı yazımızda ele aldık.
Önbellekleme ve Koşullu İstekler
Kapsamı daraltmadan yükü azaltan önlem.
Aynı, değişmemiş kaynağı asla iki kez almayın. Aldığınız kaynağı, ETag ve Last-Modified değerleriyle birlikte saklayın, ardından koşullu istekler gönderin:
curl -sS -H 'If-None-Match: "abc123"' https://example.com/page
Bir 304 Not Modified, tam bir sayfa yerine sadece birkaç yüz bayt yer kaplar. Çoğu sayfanın değişmediği bir yeniden taramada bu, hem bant genişliği faturanızı hem de hedefin yükünü bir mertebe azaltır.
Ne alınacağına karar vermek için site haritasındaki lastmod'i kullanın. Elli bin sayfası olan ve bugün iki yüz sayfası değişen bir site, elli bin sayfalık bir tarama değil, iki yüz sayfalık bir taramadır.
Ham yanıtları saklayın. Bir ayrıştırıcı arızalandığında, yeniden almak yerine elinizdekini yeniden ayrıştırın. Bu hem maliyet tasarrufu sağlar hem de nezakettir.
URL'leri düzgün bir şekilde tekilleştirin. Sonundaki eğik çizgileri, sorgu parametrelerinin sırasını ve ana bilgisayar adındaki büyük/küçük harfleri normalleştirin ve izleme parametrelerini kaldırın. Normalleştirme yapmayan bir tarayıcı, aynı sayfayı birçok kez ziyaret eder ve olduğundan çok daha ağır bir istemci gibi görünür.
Hataları Sunucunun Belirttiği Şekilde Ele Alın
Sunucular ne yapmanız gerektiğini söyler. Talimatları okumak hem doğru bir yaklaşımdır hem de sorunun çözülmesi için en hızlı yoldur.
429 Too Many Requests, RFC 6585 belgesinde "kullanıcının belirli bir süre içinde çok fazla istek gönderdiğini ('hız sınırlaması')" belirtmek üzere tanımlanmıştır. Yanıt, "yeni bir istek göndermeden önce ne kadar beklemeniz gerektiğini belirten bir Retry-After başlığı içerebilir".
503 Service Unavailable, sunucunun "geçici bir aşırı yük veya planlı bakım nedeniyle şu anda isteği işleyemediği" anlamına gelir ve sunucu, "istemcinin beklemesi gereken uygun süreyi önermek için bir Retry-After başlık alanı gönderebilir".
Retry-After, RFC 9110 uyarınca bir HTTP tarihi veya saniye cinsinden bir süre alır — Retry-After: 120, iki dakika bekleyin anlamına gelir.
429 veya 503 hatalarında doğru davranış:
O etki alanı için durun. Yavaşlamayın, en az belirtilen süre boyunca durun.
Retry-After yoksa, başlangıç noktasını cömert tutarak üstel olarak geri çekilin.
Daha sonra sabit durum hızınızı azaltın, çünkü hızınızın çok yüksek olduğu size az önce bildirildi.
Asla hemen yeniden denemeyin. Hız sınırına ulaşmışken yeniden deneme yapmak, geçici bir kısıtlamanın kalıcı bir engelleme haline gelmesine neden olur ve bu, tarama sırasında en sık görülen kendi kendine verilen zarardır.
Ayrıca RFC 6585'te "429 durum koduna sahip yanıtlar önbellekte SAKLANMAMALIDIR" denildiğini unutmayın — yani bir önbellek katmanı, hatayı tekrarlamanızı engelleyemez.
Proxy'lerin Gerçekten Yararlı Olduğu Durumlar
Kendi ürünümüzü, elimizden geldiğince doğru bir şekilde anlatıyoruz.
Şu durumlarda yardımcı olurlar: Hızınızı optimize etmiş olmanıza rağmen, tek bir adresin sağlayamayacağı kadar veri aktarım hızına ihtiyacınız olduğunda; bölgeye özgü içeriği görmeniz gerektiğinde, asıl amaç başka bir yerdeymiş gibi görünmekse; dağıtılmış tarayıcılar çalıştırıyorsanız ve bunların çok sayıda iş parçacığına sahip tek bir makine yerine ayrı istemciler gibi görünmesini istiyorsanız; veya bulunduğunuz adresin, sizin hatanız olmaksızın kötü bir itibara sahip olması durumunda.
Aşağıdaki durumlarda yardımcı olmazlar: çok hızlı hareket ediyorsanız — daha fazla adresten aynı hızda erişim, yine aynı hızdır ve artık bir adres yerine bir havuz olarak işaretlenmiş olursunuz. Ayrıca, istek yapınız TLS parmak izi veya başlık bileşimi üzerinden tespit ediliyorsa da yardımcı olmazlar, çünkü bunlar sizinle birlikte hareket eder. Bir sitenin otomatik erişimi yasaklayan şartları olduğunda da işe yaramaz; daha fazla adres kullanmak bu durumu değiştirmez.
Hangi tür: Çoğu tarama için veri merkezi, çünkü çok daha ucuzdur ve genel sayfalar genellikle daha fazlasını gerektirmez — bizimki 0,14 $/GB’dan başlar. Yalnızca veri merkezinin açıkça yetersiz kaldığı durumlarda veya tüketici ağı coğrafi konumuna ihtiyacınız olduğunda, 0,79 $/GB'den başlayan fiyatlarla konut ağına geçin. Rakamlar, Eylül 2026'da kontrol edilen fiyatlandırma sayfamızdan alınmıştır.
İnsanları şaşırtan maliyet: başsız tarayıcılar. Bir tarayıcı her görüntüyü, yazı tipini ve komut dosyasını alır, bu nedenle bant genişliği ham HTTP'ye kıyasla yaklaşık bir mertebe artar. Bir sayfa JavaScript gerektirmiyorsa, onu işlemeyin; gerektiriyorsa, ihtiyacınız olmayan kaynak türlerini engelleyin.
Sert Engelleme ile Yumuşak Engellemeyi Ayırt Etmek
En yüksek maliyete yol açan arıza türü, çünkü bir arıza gibi görünmez.
Sert engelleme, 403 hatası, kimlik doğrulama sayfası veya bağlantı reddi ile sonuçlanır. Belirgin, açık ve hemen müdahale edilebilir bir durumdur.
Yumuşak engelleme ise, içeriği azaltılmış bir 200 yanıtı verir: daha az öğe, çıkarılmış alanlar, güncel olmayan veriler veya belirli bir sayfa yerine genel bir sayfa. Başarı oranı metrikleriniz %99'da kalır ve verileriniz sessizce bozulur. Bu, gelişmiş sitelerden gelen daha yaygın bir yanıt türüdür; çünkü size hiçbir şey söylemeden bütçenizi boşa harcar.
Buna karşı açıkça önlem alın:
Durumu değil, içeriği doğrulayın. Sayfada bilinen ve sabit bir işaret olup olmadığını kontrol edin ve bunun yokluğunu bir hata olarak değerlendirin. Sayıları doğrulayın. Bir kategori sayfasında hiç yirmi öğeden az öğe bulunmamışsa, yirmi öğeden az olması bir hata olarak kabul edilsin. Metrikleri hedefe göre segmentlere ayırın. On iki hedefin %99'da olması ve bir hedefin %40'ta olması, ortalama olarak sağlıklı bir durum gibi görünür. Periyodik olarak bir tarayıcıyla karşılaştırın. Bir sayfayı manuel olarak alın ve tarayıcınızın aldığı verilerle karşılaştırın.
Bu, proxy'leri test etmenin önemi başlıklı yazımızda anlattığımız sessiz hata modeliyle aynıdır ve "üç hafta boyunca engellendik ama fark etmedik" gibi durumların gerçek bir olay kategorisi olmasının nedenidir.
Ne Zaman Durmalı
Bir proxy sağlayıcısının yazmaya en az istek duyduğu bölüm.
Şartlar bunu yasakladığında. Bazı siteler bunu açıkça belirtir ve uygulamasını sağlar. Belirtilen bir yasağı aşmak için teknik çözümler üretmek, teknik boyutun ötesinde sonuçları olan bir karardır.
Durmanız istendiğinde. Site operatöründen gelen doğrudan bir talep, tartışmayı sonlandırır.
Çaba, elde edilen değeri aştığında. Yaklaşımınızı iki haftada bir yeniden oluşturuyorsanız, verinin maliyeti değerinden daha fazla demektir. Bu, teknik bir başarısızlık değil, ticari bir sonuçtur.
Meşru bir yol mevcut olduğunda. Bir API, bir besleme, lisanslı bir veri kümesi. Onaylı erişim için ödeme yapmak, bunu atlatmak için harcanan mühendislik süresinden genellikle daha ucuzdur ve arıza yapmaz.
Site tuzaklar kurmuşsa. Tarpitler ve oluşturulmuş labirentler, size siteye maliyeti daha fazla olacak şekilde tasarlanmıştır — siz gigabayt başına ve hesaplama saati başına ödeme yaparken, bunlar önbelleğe alınmış içerik sunar. Bu asimetri kasıtlıdır ve çaba sarf etmenizle ortadan kalkmaz.
Önce sorun. Kim olduğunuzu, neye ihtiyacınız olduğunu ve ne kadar miktarda olduğunu açıklayan bir e-posta, bu konudaki tartışmaların ima ettiğinden daha sık sorunu çözer ve sürekli çalışan bir erişim sağlar.
Kullanıcılar Ayrıca Şunları Soruyor
Tarayıcım neden sürekli engelleniyor?
Genellikle istek sıklığı yüzünden. Tek bir adresten çok kısa sürede çok fazla istek gönderilmesi, açık ara en yaygın nedendir ve bu durum tamamen sizin kontrolünüz altındadır. Öngörülemeyen istek kalıpları, hata durumunda yeniden deneme ve anonim kimlik kullanımı ise geri kalan nedenlerin çoğunu oluşturur.
Bir web sitesini ne kadar hızlı tarayabilirim?
Her etki alanı için bir ila iki saniyede bir istekle başlayın ve yalnızca hedefin buna tolerans gösterdiğine dair kanıt varsa hızınızı artırın. robots.txt bir sınır belirlemişse, Crawl-delay sınırına uyun. Daha fazla verim gerekiyorsa, zaman aralığınızı genişletmek, eşzamanlılığı artırmaktan daha ucuz ve güvenlidir.
Proxy'ler engellenmenizi önler mi?
Yalnızca adrese özgü engellemeler için. Çok hızlı ilerliyorsanız, daha fazla adresten aynı hızda istek göndermek, aynı hızda istek göndermekle eşdeğerdir ve bu durumda tüm havuz işaretlenir. İstek yapınız TLS parmak izi veya başlıklardan tespit edilirse, bunlar adresiniz ne olursa olsun sizinle birlikte seyahat eder.
Kullanıcı aracılarını (user agent) değiştirmeli miyim?
Hayır. Bir oturum içinde rastgele değiştirme, ziyaretin ortasında tarayıcıyı değiştiriyormuş gibi görünen bir istemci yaratır; bu, kılık değiştirme değil, tutarsızlıktır. İletişim URL’si içeren tek bir dürüst kullanıcı aracısı, herhangi bir değiştirme yönteminden daha az sıklıkla engellenir.
429 hatası aldığımda ne yapmalıyım?
O etki alanı için durun ve en az Retry-After adresinde belirtilen süre kadar bekleyin. Bu başlık yoksa, cömert bir başlangıç noktasından katlanarak geri çekilin, ardından sabit durum hızınızı azaltın — hızınızın çok yüksek olduğu size az önce bildirildi. Asla hemen yeniden denemeyin.
Yumuşak engelleme altında olup olmadığımı nasıl anlarım?
Durum kodları yerine içeriğe odaklanın. Her sayfada bilinen kararlı bir işaret olup olmadığını kontrol edin, beklenen öğe sayılarını doğrulayın, başarı metriklerini toplu olarak değil hedef bazında segmentlere ayırın ve taranan bir sayfayı tarayıcıda yüklenen bir sayfayla periyodik olarak karşılaştırın.
Bir web sitesini taramak yasal mı?
Bu, yargı yetkisine, sitenin şartlarına, hangi verilerin söz konusu olduğuna ve bu verilerle ne yaptığınıza bağlıdır. robots.txt adresindeki kurallara uymak, tarayıcınızı tanımlamak ve hızınızı makul bir seviyede tutmak normal bir uygulamadır ve bunların hiçbiri hizmet şartlarını veya telif haklarını geçersiz kılmaz. Ticari açıdan önemli herhangi bir konuda tavsiye alın.
Yapabileceğim en etkili tek şey nedir?
Acelenizi kesip, tarama yapmanızın gerçekten gerekli olup olmadığını kontrol edin. Bir API, bir iş ortağı beslemesi veya lastmod zaman damgalarına sahip bir site haritası, sorunu hafifletmek yerine ortadan kaldırır — ve taramanın gerçekten gerekli olduğu durumlarda, hızınızı ayarlamak diğer tüm önlemlerin toplamından daha fazla engellemeyi önler.
Sonuç
Bu konuyu ele almayı kolaylaştıran temel bakış açısı şudur: Engelleme, kimliğe değil, yüke ve öngörülemezliğe verilen bir tepkidir. Siteler okunmaya karşı çıkmaz; planlayamadıkları ve iletişim kuramadıkları bir şey tarafından aşırı yük altında bırakılmaya karşı çıkarlar.
Bu da etkili önlemleri, çoğu makalenin tersine bir sıraya yerleştirir. API veya bir iş ortağı beslemesi sorunu tamamen ortadan kaldırdığı için, tarama yapmanız gerekip gerekmediğini kontrol edin. robots.txt adresindeki makaleyi okuyun ve spesifiklik eşleşmesi ile 5xx kodlarının “durdur” anlamına geldiği kısımlar da dahil olmak üzere, bu kurallara doğru bir şekilde uyun. Hızınızı ayarlayın ve jitter ekleyin. Bir ad ve iletişim URL’si ile kimliğinizi belirtin. Değişmemiş olanları asla yeniden almamak için agresif bir şekilde önbelleğe alın ve koşullu istekler kullanın. Retry-After adresinde yazanlara uyun.
Bunların hepsi ücretsizdir ve herhangi bir altyapı satın alımından daha fazla engellemeyi önleyecektir. Proxy'ler, tek bir adresin tavanını aşan veri akışı ve bölgeye göre farklılık gösteren içerik gibi gerçek ve daha dar kapsamlı bir soruna yardımcı olur; listedeki diğer hiçbir konuda ise yardımcı olmazlar.
Ve son bölümü göz önünde bulundurun. Şartlarını belirtmiş, tuzaklar kurmuş veya durmanızı istemiş bir site size bir şey söylemiştir; bunu teknik olarak aşmanın alternatifleri genellikle daha ucuzdur ve her zaman daha kalıcıdır.
