Planlasan da planlamasan da sitenin iki adresi var: ornekblog.com ve www.ornekblog.com. Ziyaretçiler ikisini de yazıyor, eski linkler ikisini de gösteriyor ve AdSense botu ikisini ayrı ayrı kontrol ediyor. Yardım sayfası açıkça yazıyor: "Tarayıcımız site.com ve www.site.com adreslerine ayrı ayrı erişir" (AdSense tarayıcısı hakkında). Çözüm her zaman aynı: birini seç, diğerinin de açılmasını sağla ve seçtiğine tek bir 301 yönlendirmesi gönder. Cloudflare'de bunun için bir DNS kaydı ve bir Redirect Rule yeterli.
Atlarsan ne oluyor?
| Durum | Ziyaretçinin ya da botun gördüğü | AdSense açısından önemi |
|---|---|---|
www için DNS kaydı yok |
Tarayıcı hatası: adres çözümlenmiyor | www. yazan biri sitenin kapalı olduğunu düşünüyor |
| İki adres de sitenin tamamını gösteriyor | Birebir aynı iki kopya | Kopya URL'ler. Google, bu adreslerden birini canonical seçip diğerlerini yönlendirmeni istiyor (kopya URL'leri birleştirme) |
Site www üzerinde, kök alan adı yönlendirmiyor |
ornekblog.com/ads.txt açılmıyor |
www'deki ads.txt ancak kök alan adı ona yönlendiriyorsa taranıyor (ads.txt tarama kuralları) |
| http → https → www → yol, her biri ayrı adım | 2–3 yönlendirmelik zincir | Daha yavaş, ve her adım bozulabilecek bir nokta daha |
Kendi sitelerimizden birinde Approvalens taramasının bulduğu gerçek bir örnek. www adresinin hiç DNS kaydı yoktu:

1. adım: Asıl sürümü seç
İkisi de olur, Google birini diğerine tercih etmiyor. Canonical etiketlerinde, site haritasında ve AdSense site listesinde zaten kullandığın sürümü seç ki en az şeyi değiştirmen gereksin. Aşağıda asıl sürüm ornekblog.com, www ona yönleniyor. Ters yön 3. adımın sonunda.
2. adım: İki adresin de proxy'li olduğundan emin ol
Cloudflare yalnızca kendisine gelen trafiği yönlendirebilir. Dokümana göre Single Redirects, ziyaretçinin istediği adrese gelen trafiğin Cloudflare üzerinden proxy'lenmesini şart koşuyor (sorun giderme).
Zone'unda DNS → Records sayfasını aç ve kontrol et:
ornekblog.comiçin normal A, AAAA ya da CNAME kaydı var ve turuncu bulut (Proxied) açık.wwwkaydı var ve Proxied. Yoksa ekle.www → ornekblog.comCNAME kaydı iş görür. Yalnızca yönlendirme yapacak bir adres için Cloudflare'in kendi örneği bir yer tutucu kullanıyor: türA, adwww, IPv4192.0.2.1, Proxied (Pages için www yönlendirmesi). Bu adrese hiç gidilmiyor, çünkü yönlendirme önce yanıt veriyor.
Gri bulutlu (DNS only) bir kayıt Cloudflare'i tamamen atlar ve hiçbir kural çalışmaz.
3. adım: Redirect Rule oluştur
Cloudflare bu durumu "Redirect from WWW to root" adıyla belgeliyor (örnek). Panelde Rules → Overview sayfasına git, Create rule → Redirect Rule seç (kural oluşturma). Şablon listesinden başlayabilir ya da alanları kendin doldurabilirsin:
| Alan | Değer |
|---|---|
| Rule name | www'den köke |
| When incoming requests match | Wildcard pattern |
| Request URL | http*://www.ornekblog.com/* |
| Then: Target URL | https://ornekblog.com/${2} |
| Status code | 301 |
| Preserve query string | Açık |
Sonra Deploy'a tıkla.
Neden http* ve ${2}? Cloudflare'in örneği https://www.* → https://${1} kullanıyor ve kendi tablosu bu hâliyle www'ye gelen HTTP isteklerinin "değişmeden" kaldığını gösteriyor. Wildcard kalıpları, Cloudflare dokümanındaki gibi iki protokolü birden yakalamak için http*:// kabul ediyor. İki joker karakterle ${1} protokolün sonu, ${2} yol oluyor. Böylece hem http://www. hem https://www. tek adımda https://ornekblog.com/… adresine gidiyor. Güvenmeden önce 5. adımdaki komutlarla test et.
Ters yön (kökten www'ye): Request URL http*://ornekblog.com/*, Target URL https://www.ornekblog.com/${2}.

Cloudflare Pages'te: Bulk Redirects
Cloudflare'in Pages rehberi bunun yerine Bulk Redirects kullanıyor (Pages için www yönlendirmesi): kaynağı www.ornekblog.com, hedefi https://ornekblog.com, durum kodu 301 olan bir liste oluştur, Preserve query string, Subpath matching ve Preserve path suffix seçeneklerini aç. Sonra bu listeyi kullanan bir Bulk Redirect kuralı oluştur ve 2. adımdaki proxy'li www kaydını ekle. İki yöntem de çalışıyor. Aynı adres için ikisini birden kullanma. Single Redirects, Bulk Redirects'ten önce çalışıyor.
Bunu Pages'in _redirects dosyasıyla yapmaya çalışma. Orada alan adı düzeyinde yönlendirme desteklenmiyor (redirects).
4. adım: İki klasik döngüden kaçın
- Flexible SSL ve HTTPS'e zorlayan sunucu. Cloudflare dokümanı açık: sunucun HTTP isteklerini otomatik olarak HTTPS'e yönlendiriyorsa Flexible modu kullanma. Cloudflare sunucuna HTTP ile bağlandığı için bu, siteyi erişilemez kılan bir yönlendirme döngüsü yaratıyor. Bunun yerine Full ya da Full (strict) kullan (Flexible modu). Tarayıcı
ERR_TOO_MANY_REDIRECTSgösterir. - Cloudflare ile sunucu anlaşamıyor. Cloudflare
www'yi köke gönderirken WordPress (Ayarlar → Genel → Site Adresi) ya da sunucun köküwww'ye geri gönderiyorsa ikisi sonsuza kadar birbirine yönlendirir. Sunucuda da aynı asıl sürümü kullan.
Eski, yönlendirme yapan Page Rules kuralların varsa onlara da bak. Cloudflare, Page Rules'u kullanımdan kaldırılıyor olarak işaretliyor. Single Redirects önce çalışıp onları geçersiz kılıyor, yani unutulmuş bir Page Rule genellikle yalnızca kafa karıştırıyor.
5. adım: Dört adresi de test et
for u in http://ornekblog.com http://www.ornekblog.com https://ornekblog.com https://www.ornekblog.com; do
curl -s -o /dev/null -w "$u %{http_code} %{redirect_url}\n" "$u/ads.txt"
done
Beklenen sonuç:
| İstek | Durum | Gittiği yer |
|---|---|---|
http://ornekblog.com/ads.txt |
301 | https://ornekblog.com/ads.txt |
http://www.ornekblog.com/ads.txt |
301 | https://ornekblog.com/ads.txt |
https://www.ornekblog.com/ads.txt |
301 | https://ornekblog.com/ads.txt |
https://ornekblog.com/ads.txt |
200 | (dosyanın kendisi) |
İlk satırı bu kural değil, Cloudflare'deki ya da sunucundaki HTTPS yönlendirmesi karşılıyor. Tarayıcılar 301'leri önbelleğe aldığı için curl ya da gizli pencereyle test et. Googlebot erişim kontrolü Google botlarının izlediği yönlendirme yolunu baştan sona gösteriyor. ads.txt kontrol aracı da dosyanın kök alan adından erişilebilir olduğunu doğruluyor.
Yönlendirme çalıştıktan sonra
- Canonical etiketleri, site haritası ve iç linkler asıl sürümü kullanmalı.
- AdSense'te siteler alan adı olarak ekleniyor (
ornekblog.com).wwwgibi mevcut bir sitenin alt alan adları ayrıca eklenmiyor (site yönetimi değişiklikleri). İki adres aynı site kaydına ait olduğu için ikisinin de aynı yere çıkması bir sebep daha. - cPanel gibi sunucuyu da yönettiğin hosting'lerde aynı yönlendirmeyi orada da kurabilirsin. Nasıl yapılacağını cPanel'de www yönlendirme rehberinde anlattık. Yalnızca tek bir yerde yap.
Ücretsiz Approvalens taraması iki adresi ve iki protokolü test ediyor, yönlendirme zincirlerini de AdSense kontrollerinin geri kalanıyla birlikte raporluyor.
Eskimiş ya da yanlış bir şey mi gördün? Bize yaz, düzeltelim.
Bu rehberi İngilizce oku →Kendi sitende kontrol et. Ücretsiz, kayıt yok.
Bunun için ücretsiz araçlar
- /tools/googlebot-access-checkerGooglebot Erişim KontrolüAna sayfanı Googlebot ve AdSense botu olarak açar, her birinin ne aldığını karşılaştırır.Aracı aç
- /tools/ads-txt-checkerads.txt Kontrol Aracı/ads.txt dosyasının her satırını doğrular, Google'ın senin yayıncı kimliğinle listelendiğini kontrol eder.Aracı aç
Ücretsiz tarama
Kendi siteni kontrol et
Ücretsiz tarama: uygunluk puanı ve tüm sorunlar, genelde birkaç dakikada.