Cloudflare; CDN, SSL ve güvenlik katmanı olarak WordPress siteleri hem hızlandırabilir hem de saldırılara karşı koruyabilir. Ancak yanlış ayarlar (özellikle “challenge/engel” kuralları) Google’ın taramasını ve AdSense incelemesini bozabilir. Google, AdSense ads crawler (Mediapartners-Google) site içeriğine erişemezse bunu düzeltmeniz gerektiğini açıkça söyler.
Bu rehberde hedefimiz: hız + güvenlik + AdSense uyumu üçlüsünü aynı anda koruyan “temiz” bir Cloudflare profili.
Hızlı Özet (kopyala uygula)
- SSL/TLS modu: Full (strict) (mümkünse)
- HTTP→HTTPS yönlendirme: tek yerde yap (Cloudflare veya origin)
- Mixed content için destek: Automatic HTTPS Rewrites (tam çözüm değil, yardımcı)
- Sıkıştırma: Brotli / sıkıştırma açık
- Cache: Cloudflare varsayılanda HTML’i cache’lemez → WordPress’te “Cache Everything”i bilinçsiz açma
- Güvenlik: WAF/Custom Rules + Google/AdSense botlarına allow/skip
1) SSL/TLS: En güvenli seçenek “Full (strict)”
Cloudflare, mümkünse Full veya Full (strict) kullanmanızı özellikle önerir.
Full (strict), origin (hosting) tarafındaki sertifikayı doğrulayarak “tam şifreleme + doğrulama” sağlar.
Flexible kullanma: Cloudflare “kısmen güvenli” olduğunu ve origin’e HTTP gidebildiğini yazar; WordPress’te HTTPS zorlama yaptığınızda loop ve karışık davranışlar görmeniz çok olasıdır.
2) HTTP → HTTPS yönlendirme: “Tek yerde yap” (en kritik kural)
Google, URL değişimlerinde kalıcı server-side redirect (301/308) önerir.
Cloudflare tarafında da Always Use HTTPS özelliği, tüm istekleri HTTP’den HTTPS’e yönlendirir.
Buradaki en büyük hata: Hem origin’de hem Cloudflare’da HTTPS zorlamak → redirect loop.
En güvenli seçim (öneri):
- Cloudflare kullanıyorsan: çoğu projede Always Use HTTPS’i Cloudflare’da aç, origin tarafındaki ekstra yönlendirmeleri minimumda tut (tek kaynak). Cloudflare, origin’de yönlendirme yapmanın redirect loop’a sebep olabileceğini belirtir.
- Eğer illa origin’de 301/308 kullanacaksan: Cloudflare’da Always Use HTTPS’i kapat ve tek yerden yönet.
3) Mixed Content (Karışık içerik) için “Automatic HTTPS Rewrites”
Always Use HTTPS, tek başına mixed content’i garanti çözmez; Cloudflare bu noktada “Automatic HTTPS Rewrites” ile bazı HTTP kaynaklarını HTTPS’e rewrite edebileceğini belirtir.
Pratik:
- HTTPS’e geçiş sonrası ikon/font/JS “http://” ile çağrılıyorsa önce içerik/tema ayarlarında gerçekten HTTPS’e çevir.
- Hızlı toparlamak için Automatic HTTPS Rewrites’i yardımcı olarak aç.
4) Sıkıştırma: Brotli’yi aç (bedava hız)
Cloudflare, içerikleri ziyaretçinin accept-encoding başlığına göre Gzip/Brotli (ve planlara göre seçenekler) ile sıkıştırabilir.
“Compression Rules” tarafında da Brotli’nin tercih edilen algoritma olduğu ve gerekirse kuralla yönetilebildiği belirtilir.
5) Cache: Cloudflare “HTML’i varsayılan olarak cache’lemez”
Çok önemli nokta: Cloudflare’ın varsayılan cache davranışında HTML/JSON cache’lenmez; sadece uzantıya göre “statik” dosyalar cache’lenir.
Bu yüzden WordPress’te Cache Everything tarzı HTML cache hamleleri, eğer ne yaptığını bilmiyorsan sorun çıkarabilir. (Cloudflare topluluk yanıtlarında da “HTML varsayılan cache’lenmez, istersen Cache Rule/Page Rule/APO gerekir” mantığı tekrar edilir.)
AdSense’e giderken en temiz yaklaşım:
- LiteSpeed Cache gibi bir eklenti ile sayfa cache yapıyorsan, Cloudflare’da HTML cache’i zorlamadan statik cache + sıkıştırma + SSL + güvenlik kullanmak çoğu sitede en sorunsuz modeldir.
- HTML cache’ini edge’de yapmak istiyorsan bunu ayrı bir “proje” gibi ele al (APO/Worker vb.), test etmeden açma.
6) Rocket Loader: Açmadan önce bil (bozarsa kapat)
Rocket Loader, JavaScript’i render’dan sonraya erteleyip içeriğin daha erken çizilmesini hedefler.
WordPress’te bazen menü/slider/yorum/form gibi öğeleri bozabilir.
Eğer deneyeceksen:
- Aç → siteyi gez → bozulma yoksa devam.
- Bozarsa: Rocket Loader’ın belirli script’leri “ignore” edebilmesi için
data-cfasync="false"kullanımı Cloudflare dokümanında var.
7) Güvenlik: WAF + Custom Rules ile “koru ama Google’ı engelleme”
Cloudflare WAF; otomatik koruma ve custom rule yazma imkanı sağlar.
Custom rule içinde Skip aksiyonu ile belirli trafiğin bazı güvenlik kontrollerini atlamasını sağlayabilirsin.
AdSense için kritik bölüm: Google/AdSense botları allowlist
AdSense ads crawler’ın adı Mediapartners-Google’dır ve içeriği anlamak için siteni ziyaret eder.
Google ayrıca “AdSense crawler erişemiyorsa düzeltin” diyerek WAF/firewall engelini doğrudan işaret eder.
Google’ın crawler/user-agent listesi de ayrıca vardır (Googlebot vb.).
Cloudflare’da uygulanabilir 2 güvenli yöntem:
- Custom Rules → Skip (önerilen)
Google/AdSense botlarını tespit edince “Managed Challenge / Bot Fight / WAF managed rules” gibi şeyleri skip edecek bir kural yaz. - IP Access Rules / User Agent rules (alternatif)
Cloudflare IP Access Rules’ta allowlist mantığını “crawlers gibi servisler” için yaygın kullanım olarak belirtir.
User-Agent kuralları da var; Cloudflare, UA Blocking yerine çoğu senaryoda “custom rules” önerir.
Örnek Custom Rule (mantık örneği)
Aşağıdaki ifade/aksiyon, panelde “Custom Rules” yazımına örnek olsun diye:
Rule name: Allow Google & AdSense crawlers
Expression:
(http.user_agent contains "Mediapartners-Google") or
(http.user_agent contains "AdsBot-Google") or
(http.user_agent contains "Googlebot") or
(http.user_agent contains "Google-Display-Ads-Bot")Action: Skip (skip WAF managed rules / skip bot fight / skip security challenges)
- “Skip action” kurgusu Cloudflare dokümanında anlatılır.
- Bu botların neden önemli olduğu AdSense dokümanında geçer.
Not: Eğer Bot Fight Mode benzeri bir özellik Google reklam botlarını etkiliyorsa, bunu yaşayanlar olduğunu Cloudflare toplulukta da görebilirsin; çözüm yine allow/skip kuralıdır.
8) AdSense onayı için son kontrol
- “Challenge / Verify you are human” ekranı Google botlarına da çıkmasın. (Çıkarsa AdSense tarafında erişim problemi yaşarsın.)
- Search Console URL Denetleme ile sayfayı Google görebiliyor mu kontrol et.
- robots.txt içinde Mediapartners-Google’ı engelleme (AdSense crawler mantığı).
