Crawling December: CDN'ler ve tarama

24 Aralık 2022, Salı

İçerik yayınlama ağları (CDN'ler), özellikle web sitenizdeki gecikmeyi azaltmak ve genel olarak web trafiğiyle ilgili sorunları önlemek için ideal bir seçenektir. Sonuçta asıl amaçları, siteniz çok fazla trafik aldığında bile içeriğinizin hızlı bir şekilde yayınlanmasını sağlamaktır. CDN'deki (content delivery network) "D" harfi, içeriğin dünya genelinde yayınlanmasını veya dağıtılmasını (delivery) ifade eder. Böylece, kullanıcılarınıza aktarma süreleri de tek bir veri merkezinde barındırmaya kıyasla daha kısa olur. Bu yayında, CDN'leri sitenizdeki tarama ve kullanıcı deneyimini iyileştirecek şekilde nasıl kullanacağınızı keşfedeceğiz. Ayrıca, CDN destekli siteleri taramayla ilgili bazı ayrıntıları da ele alacağız.

Özet: CDN nedir?

CDN'ler temel olarak kaynak sunucunuz (web sitenizin bulunduğu yer) ile son kullanıcı arasındaki bir aracıdır ve (bazı) dosyaları bu kullanıcılara sunar. Geçmişte CDN'lerin en büyük odak noktası önbelleğe almaydı. Yani bir kullanıcı sitenizden URL istediğinde CDN'ler, sunucunuzun bir süre boyunca bu dosyayı tekrar sunmak zorunda kalmaması için söz konusu URL'nin içeriğini bir süreliğine önbelleğinde depolar.

Kullanıcılara yakın bir konumdan içerik sunan CDN'ler, sitenizi önemli ölçüde hızlandırabilir. Örneğin, Avustralya'daki bir kullanıcı Almanya'da barındırılan bir siteye erişiyorsa CDN, bu kullanıcıya Avustralya'daki önbelleklerden içerik sunarak dünya genelindeki döngü süresini kısaltır. Işık hızında katedilmiş olsun ya da olmasın, mesafe oldukça büyük.

Son olarak CDN'ler, sitenizi aşırı yüklenme ve bazı güvenlik tehditlerinden korumak için mükemmel araçlardır. CDN'ler, yönettikleri küresel trafik miktarıyla trafik anormalliklerini tespit etmek ve aşırı ya da kötü amaçlı görünen erişimleri engellemek için güvenilir trafik modelleri oluşturabilir. Örneğin, Cloudflare'ın sistemleri 21 Ekim 2024'te yaklaşık bir dakika süren 4,2 Tbps (ki bu oldukça yüksek bir değer) DDoS saldırısını otonom olarak algılayıp azaltmıştır.

CDN'ler sitenize nasıl yardımcı olabilir?

Parayla satın alabileceğiniz en hızlı sunuculara ve en iyi veri çıkışına sahip olduğunuz için hiçbir şeyi hızlandırmanız gerekmediğini düşünebilirsiniz. Ancak CDN'ler, özellikle siteniz büyükse uzun vadede para tasarrufu yapmanızı sağlayabilir:

  • CDN'de önbelleğe alma: Medya, JavaScript ve CSS gibi kaynaklar ya da HTML'niz bir CDN önbelleğinden sunuluyorsa sunucularınızın bu kaynakları sunmak için bilgi işlem ve bant genişliği kaynaklarını harcaması gerekmez. Böylece, süreçteki sunucu yükü azalır. Bu genellikle sayfaların, kullanıcıların tarayıcılarında daha hızlı yükleneceği ve daha iyi dönüşüm oranıyla sonuçlanacağı anlamına da gelir.
  • Aşırı trafik artışına karşı koruma: CDN'ler, özellikle aşırı veya kötü amaçlı trafiği tespit edip engelleme konusunda çok başarılıdır. Bu sayede, kötü amaçlı botlar veya kötü niyetli kişiler sunucularınızın yükünü artırdığında bile kullanıcılarınızın sitenizi ziyaret etmesine olanak tanır.
    Aşırı trafik artışına karşı korumanın yanı sıra kötü amaçlı trafiği engellemek için kullanılan kontroller, istemediğiniz trafiği (ör. belirli tarayıcılar, belirli bir kalıba uyan istemciler veya aynı IP adresini kullanmaya devam eden troller) engellemek için de kullanılabilir. Bunu sunucunuzda veya güvenlik duvarınızda da yapabilirsiniz ancak genellikle CDN'nin kullanıcı arayüzünü kullanmak çok daha kolaydır.
  • Güvenilirlik: Bazı CDN'ler, kapalı olduğunda bile sitenizi kullanıcılara sunabilir. Bu yalnızca statik içeriklerde işe yarayabilir ancak kullanıcıların işletmelerini başka bir yere taşımamasını sağlamak için yeterli olabilir.

Özetlemek gerekirse CDN sizin için iyi bir araçtır. Siteniz büyükse veya yüksek miktarda trafik bekliyorsanız (hatta zaten yüksek miktarda trafik alıyorsanız) fiyat, performans, güvenilirlik, güvenlik, müşteri desteği, ölçeklenebilirlik ve gelecekte sitenizi genişletme gibi faktörlere göre ihtiyaçlarınıza uygun bir CDN bulabilirsiniz. Kullanabileceğiniz seçenekleri ve bunlardan birini halihazırda kullanıp kullanmadığınızı öğrenmek için barındırma veya içerik yönetim sistemi sağlayıcınızla iletişime geçin.

Taramanın, CDN kullanan siteleri etkileme şekli

CDN'ler, tarama konusunda da faydalı olabilir ancak nadiren de olsa bazı tarama sorunlarına neden olabilir. Daha fazla bilgi için okumaya devam edin.

CDN'lerin tarama hızı üzerindeki etkisi

Tarama altyapımız, CDN ile desteklenen sitelerde daha yüksek tarama hızlarına izin verecek şekilde tasarlanmıştır. Bu hız, tarayıcılarımızın eriştiği URL'leri sunan hizmetin IP adresinden tahmin edilir. Bu yöntem, en azından çoğu zaman işe yarar.

Bugün bir stok fotoğraf sitesi başlattığınızı ve stokta 1.000.007 fotoğrafınız olduğunu varsayalım. Web sitenizi bir açılış sayfası, kategori sayfaları ve tüm öğeleriniz için ayrıntı sayfalarıyla sunarsınız. Dolayısıyla çok fazla sayıda sayfanız olur. Tarama kapasitesi sınırı ile ilgili dokümanlarımızda Google Arama'nın bu sayfaların tümünü mümkün olduğunca hızlı bir şekilde taramak istediğini ancak tarama işleminin sunucularınızda aşırı yüke sebep olmaması gerektiğini açıklıyoruz. Sunucunuz, artan sayıda tarama isteğiyle karşı karşıya kaldığında yavaş yanıt vermeye başlarsa sunucunuzda aşırı yük olmasını önlemek için Google tarafından kısıtlama uygulanır. CDN kullandığınızda sunucunuz büyük olasılıkla bu yükü kaldırabileceğinden tarama altyapımız, sitenizin bir CDN ile desteklendiğini tespit ettiğinde daha fazla eş zamanlı istek göndermenin sorun olmayacağını varsayar. Dolayısıyla bu kısıtlamanın eşiği çok daha yüksektir ve web mağazanız daha hızlı taranır.

Ancak bir URL'ye ilk kez erişildiğinde CDN'nin önbelleği "soğuk"tur. Yani henüz kimse bu URL'yi istemediğinden CDN, içerikleri önbelleğe alınmamıştır. Bu nedenle, CDN'nin önbelleğini "ısıtmak" için kaynak sunucunuzun bu URL'yi en az bir kez yayınlaması gerekir. Bu, HTTP önbelleğe almanın işleyiş şekline de çok benzer.

Özetle, web mağazanız bir CDN tarafından destekleniyorsa bile sunucunuzun bu 1.000.007 URL'yi en az bir kez sunması gerekir. CDN'niz yalnızca bu ilk sunma işleminden sonra önbellekler konusunda size yardımcı olabilir. Bu, "tarama bütçeniz" için önemli bir yüktür ve tarama hızı büyük olasılıkla birkaç gün boyunca yüksek olacaktır. Aynı anda birçok URL yayınlamayı planlıyorsanız bunu göz önünde bulundurun.

CDN'lerin oluşturma üzerindeki etkisi

Kaynak taramayla ilgili ilk Crawling December blog yayınımızda açıkladığımız üzere, kaynakları kendi ana makine adlarına veya bir CDN ana makine adına (cdn.example.com) göre bölmek, Web Oluşturma Hizmetimizin (WRS) sayfalarınızı daha verimli bir şekilde oluşturmasına olanak tanıyabilir. Bununla birlikte, dikkat edilmesi gereken bir nokta vardır. Bu uygulama, farklı bir ana makine adıyla bağlantı kurma masrafları nedeniyle sayfa performansını olumsuz yönde etkileyebilir. Bu nedenle, oluşturma performansıyla birlikte sayfa deneyimini dikkatlice değerlendirmeniz gerekir.

Ana makinenizi bir CDN ile desteklerseniz bu sorunu önleyebilirsiniz. Bu durumda, sorgulanacak tek bir ana makine adı olur ve kritik oluşturma kaynakları büyük olasılıkla CDN'nin önbelleğinden sunulur. Böylece, sunucunuzun bunları sunması gerekmez ve sayfa deneyiminde sorun yaşanmaz.

Sonuç olarak işletmenize en uygun çözümü seçin: Statik kaynaklar için ayrı bir ana makine adı (cdn.example.com) kullanın, ana makine adınızı CDN ile destekleyin veya ikisini birden yapın. Google'ın tarama altyapısı iki seçeneği de sorunsuz bir şekilde destekler.

CDN'lerin aşırı korumacı olduğu durumlar

CDN'lerin aşırı trafik artışına karşı koruması ve tarayıcıların tarama şekli nedeniyle bazen sitenizde görmek istemediğiniz botlar, CDN'nizin engellenenler listesine (genellikle bu CDN'lerin web uygulaması güvenlik duvarlarına (WAF)) eklenebilir. Bu durum, tarayıcıların sitenize erişmesini engeller ve sonuç olarak sitenizin arama sonuçlarında gösterilmesini engelleyebilir. Engelleme çeşitli şekillerde gerçekleşebilir. Bunlardan bazıları, sitenin Google arama sonuçlarındaki varlığı açısından diğerlerine kıyasla daha zararlı olabilir. Ayrıca, bunlar CDN tarafında gerçekleştiği için kontrol edilmesi zor (veya imkansız) olabilir. Bu blog yayınında, engellemeleri hard engellemeler ve soft engellemeler olarak ikiye ayırdık.

Hard engellemeler

Hard engellemeler, CDN'nin bir tarama isteğine herhangi biçimde hata olan yanıt göndermesidir. Bunlardan bazıları:

  • HTTP 503/429 durum kodları: Geçici bir engellemeyi bildirmek için bu durum kodlarının gönderilmesi tercih edilir. Böylece, CDN'nin istenmeyen engellemelerine müdahale etmek için biraz zaman kazanabilirsiniz.
  • Ağ zaman aşımları: CDN'den kaynaklı ağ zaman aşımları, bu ağ hatalarının son derece "hard" hatalar olarak kabul edilmesi nedeniyle etkilenen URL'lerin Google'ın arama dizininden kaldırılmasına neden olur. Ayrıca, tarama altyapımıza sitede aşırı yük olduğunu bildirdikleri için sitenizin tarama hızını da önemli ölçüde etkileyebilirler.
  • HTTP 200 durum kodu içeren rastgele hata mesajı: Soft hatalar olarak da bilinen bu durum özellikle kötüdür. Google, hata mesajını "hard" hata (ör. HTTP 500) olarak değerlendirirse URL'yi Arama'dan kaldırır. Google, hata mesajlarını "hard" hata olarak algılamazsa aynı hata mesajına sahip tüm sayfalar, kopya sayfalar olarak Google'ın arama dizininden kaldırılabilir. Google'ın dizine ekleme işleminde aynı URL'lerin yeniden taranmasını istemek için çok fazla teşvik olmadığından bu durumdan kurtulmak daha uzun sürebilir.

Soft engellemeler

CDN'niz "insan olduğunuzdan emin misiniz?" şeklinde ara sayfalar gösterdiğinde benzer bir sorun ortaya çıkabilir.

Crawley, insan olarak adlandırıldığı için kafa karışıklığı yaşıyor

Tarayıcılarımız, insan OLMADIKLARINA ve insan gibi davranmadıklarına emindir. Sadece taramak isterler. Ancak ara sayfa gösterildiğinde muhteşem sitenizi değil, yalnızca ara sayfayı görürler. Bot doğrulaması içeren bu ara sayfalarda tarayıcılar gibi otomatik istemcilere, içeriğin geçici olarak kullanılamadığını belirten 503 HTTP durum kodu biçiminde net bir sinyal göndermenizi önemle tavsiye ederiz. Böylece, içeriğin Google'ın dizininden otomatik olarak kaldırılmasını önleyebilirsiniz.

Engellemelerle ilgili hata ayıklama

Hem hard hem de soft engellemelerde, her şeyin düzgün çalışıp çalışmadığını kontrol etmenin en kolay yolu Search Console'daki URL Denetleme aracını kullanmak ve oluşturulan resmi incelemektir. Sayfanız görünüyorsa sorun yoktur. Boş sayfa, hata veya bot istemi bulunan bir sayfa görünüyorsa bu konu hakkında CDN'nizle iletişime geçebilirsiniz.

Ayrıca Google, diğer arama motorları ve diğer tarayıcı operatörleri, tarayıcılarımızı tespit edip uygun olduğunu düşünüyorsanız engellenen IP'leri, WAF kurallarından kaldırmanız ya da izin verilenler listesine eklemeniz için IP adreslerimizi yayınlayarak bu istenmeyen engellemeler konusunda yardımcı olur. Bu işlemleri yapabileceğiniz yer, kullandığınız CDN'ye bağlıdır. Neyse ki çoğu CDN ve bağımsız WAF, muhteşem dokümanlara sahiptir. Bu yayının paylaşıldığı sırada biraz arama yaparak bulduğumuz bazı örnekler aşağıda verilmiştir:

Sitenizin arama motorlarında görünmesi gerekiyorsa önemsediğiniz tarayıcıların sitenize erişip erişemediğini kontrol etmenizi önemle tavsiye ederiz. IP'lerin, siz farkında olmadan otomatik olarak engellenenler listesine alınabileceğini unutmayın. Bu nedenle, sitenizin arama ve diğer yerlerde başarılı olması için engellenenler listesini zaman zaman kontrol etmeniz iyi bir fikirdir. Engellenenler listesi çok uzunsa (bu blog yayını gibi) IP aralıklarının yalnızca ilk birkaç segmentini aramayı deneyin. Örneğin, 192.168.0.101 yerine 192.168 aralığını arayabilirsiniz.

Bu, Crawling December blog yayını serimizin son yayınıydı. Bu yayınları yazmaktan keyif aldığımız kadar sizin de okumaktan keyif aldığınızı umuyoruz. Sorunuz veya merak ettiğiniz bir konu olursa ne yapacağınızı biliyorsunuz.


Tarama hakkında daha fazla bilgi edinmek ister misiniz? Crawling December serisinin tamamına göz atın: