Bir domain satın aldıktan sonra ya da yıllardır sahip olduğunuz alan adında ani bir trafik düşüşü gördüğünüzde aklınıza gelen ilk soru genelde aynıdır: acaba bu domain banlı mı? Sorunun cevabı tek bir yere bakarak verilemez; çünkü ban kelimesi farklı katmanlarda farklı şeyleri ifade eder. Google'ın arama indeksinden çıkarılma, AdSense yayıncı yasağı, Safe Browsing tarafından zararlı yazılım olarak işaretlenme, e-posta sunucuları için DNSBL/RBL listelerine düşme, ülke düzeyinde BTK erişim engeli, hatta CDN tarafında reputational throttling — hepsi farklı sistemlerde tutulur ve her birinin kendi sorgulama yöntemi vardır.
Bu rehber, domain ban kontrol ihtiyacınızı tek bir akışla çözmek için yazıldı. Search Console'dan başlayıp site: operatörüne, oradan Google Safe Browsing API'sına, Spamhaus DBL ve SURBL gibi DNS tabanlı liste sorgulamalarına, BTK erişim engeli kontrolüne ve VirusTotal gibi çoklu tarayıcı agregatörlerine kadar her katmanı pratik komutlarla, gerçek dig ve curl örnekleriyle inceleyeceğiz. Sonunda bir banın nasıl kaldırıldığını da adım adım göreceksiniz.
İlgili rehberler: Domain ve WHOIS sorgulama · WHOIS, RDAP ve DNS araçları · Arama motoru ve SEO rehberi · Teknik SEO kontrol listesi 2026 · DNS nedir, ayarları nasıl değişir · WHOIS sorgulama aracı
Domain Ban Türleri: Tek Kelime, Çok Anlam
Önce kavramı netleştirelim. "Domain ban" kullanıcı dilinde her şeye karşılık geliyor: Google'da çıkmamak da ban, AdSense'in reklam vermemesi de ban, BTK'nın sayfayı engellemesi de ban. Aslında en az altı farklı sistem var ve kontrol yöntemleri birbirinden bağımsız. Hepsini ayrı kontrol etmeden "ban" demek hatalıdır.
- Google Search ban (deindex): Domain Google arama indeksinden tamamen düşmüştür.
site:sorgusu sıfır sonuç döner. Manuel işlem ya da algoritmik filtre nedenidir. - Google manuel işlem (manual action): İnsan tarafından uygulanan ceza. Search Console'da "Manuel işlemler" panelinde net olarak listelenir. Domain hâlâ kısmen indekste olabilir ama görünürlük sıfıra yakındır.
- Algoritmik penalty: SpamBrain, Helpful Content System, Reviews update gibi algoritmalar tarafından düşürülmüş sıralamalar. Search Console'da bildirim gelmez, ancak trafik düşüşü zaman damgasına bakılarak tespit edilir.
- Google Safe Browsing flag: Domain malware, phishing veya social engineering içerdiği için Chrome/Firefox uyarı ekranıyla bloklanır.
https://transparencyreport.google.com/safe-browsing/searchüzerinden sorgulanır. - AdSense / Ad Manager publisher ban: Reklam yayıncılığı kapatılmıştır. AdSense panelinde "hesap askıya alındı" mesajı gelir; Search'ten bağımsızdır.
- DNSBL / RBL e-posta blacklist: Domain veya gönderici IP, Spamhaus, SpamCop, SORBS, Barracuda gibi listelere düşmüştür. SMTP teslimatı reddedilir; arama sıralamasıyla doğrudan ilgisi yoktur.
- Ülke düzeyinde erişim engeli: Türkiye'de BTK kararıyla, başka ülkelerde mahkeme/regülatör kararıyla domain'in DNS'i sızdırılır ya da TCP/443 ulusal sınırda RST'lenir.
internet.btk.gov.tr/sitesorguüzerinden teyit edilir.
Bu yedi katmanın hiçbiri diğerinin yerine geçmez. Aynı domain, Google'da birinci sıradayken Spamhaus DBL'e düşmüş olabilir; AdSense banlı olmasına rağmen organik trafiği etkilenmemiş olabilir; BTK tarafından engellenirken Google indeksinde sorunsuz görünebilir. Teknik SEO kontrol listemiz Google tarafına odaklanırken bu rehber tüm katmanları birleştirir.
30 Saniyelik Hızlı Domain Ban Sorgulama
Detaylara dalmadan önce, alelacele bir alan adı satın almadan önce yapacağınız hızlı kontrol turunu özetleyelim. Bu sekiz komut, çoğu kötü domain'i daha satın alma aşamasında elemeniz için yeterli. Hepsi terminalden ya da tarayıcıdan birkaç saniyede çalışır.
# 1) Google indeks kontrolü — sıfır sonuç çıkması ban işaretidir
curl -s "https://www.google.com/search?q=site:ornekdomain.com" \
-A "Mozilla/5.0" | grep -c "Hakkında yaklaşık"
# 2) site: + intitle ile daha temiz kontrol
# Tarayıcıda da çalışır:
# https://www.google.com/search?q=site%3Aornekdomain.com
# 3) WHOIS ve domain yaşı
whois ornekdomain.com | grep -iE 'creation date|registrar|status'
# 4) Wayback Machine geçmişi — kötü içerik var mı?
curl -s "https://archive.org/wayback/available?url=ornekdomain.com×tamp=2018" | jq.
# 5) Safe Browsing transparency report (tarayıcıda)
# https://transparencyreport.google.com/safe-browsing/search?url=ornekdomain.com
# 6) BTK erişim engeli (Türkiye)
# https://internet.btk.gov.tr/sitesorgu/?adres=ornekdomain.com
# 7) Spamhaus DBL — domain düzeyi blacklist
dig +short ornekdomain.com.dbl.spamhaus.org
# 8) MX/IP RBL — gönderici IP listede mi?
dig +short A ornekdomain.com
# IP 203.0.113.4 örnek; reverse + zen.spamhaus.org sorgusu:
dig +short 4.113.0.203.zen.spamhaus.org
Bu 8 komutun herhangi birinden anormal cevap geldiyse derinlemesine kontrole girmeniz gerekir. Bundan sonraki bölümler, her bir katmanı ayrıntılı olarak ele alır.
Google Search Console: Bir Numaralı Kaynak
Eğer domain'e zaten sahipseniz, ban kontrolünde ilk durağınız Google Search Console olmalıdır. Üçüncü taraf bütün araçlardan daha doğrudur, çünkü Google'ın size söylediği şey ile çalışır. Domain property olarak ekleyin (URL prefix değil), DNS TXT ile doğrulayın ve sırayla şu panelleri inceleyin.
- Güvenlik ve Manuel İşlemler > Manuel İşlemler: Eğer "No issues detected" yazmıyorsa, ekranda gösterilen ihlal türü doğrudan banın sebebidir. Tipik etiketler: User-generated spam, Unnatural links to your site, Thin content with little or no added value, Cloaking and/or sneaky redirects, Pure spam, Site reputation abuse.
- Güvenlik ve Manuel İşlemler > Güvenlik Sorunları: Hacklenmiş sayfa, malware, sosyal mühendislik içerikleri burada işaretlenir. Bu uyarılar Safe Browsing ile senkron çalışır.
- Performans: Trafik grafiğinde keskin bir tarih damgalı düşüş varsa, o tarihi Google ranking updates kayıtlarıyla karşılaştırın. Helpful Content September 2023, Spam Update October 2023, March 2024 Core Update gibi belirli tarihler bilinen düşüşler yaratır.
- Sayfalar (Indexing > Pages): "Indexed, though blocked by robots.txt", "Crawled - currently not indexed", "Discovered - currently not indexed" durumları algoritmik filtrenin işaretidir. Toplu deindex'te "Not found (404)" sayıları patlar.
- Ayarlar > Tarama istatistikleri: Googlebot artık tarama yapmıyorsa, günlük istek sayısı sıfıra yakın olur. Ban değil, soft-deindex göstergesidir.
Search Console manuel işlem mesajları İngilizce gelir; çevirisini doğru anlamak önemli. "Pure spam" en ağır ihlal kategorisidir ve genelde tüm domain'i kapsar. "Thin content" yalnızca düşük kaliteli sayfaları etkileyebilir; tüm site düşse de düzeltmesi pure spam'a göre kolaydır.
site: Operatörü ile Manuel Domain Ban Sorgulama
Search Console'a erişiminiz yoksa, klasik yöntem site: operatörüdür. Domain'iniz ya da kontrol etmek istediğiniz başka bir alan adı için Google'da bu sorguyu çalıştırın:
site:ornekdomain.com
site:ornekdomain.com -inurl:tag -inurl:category
site:ornekdomain.com inurl:wp-content/uploads
intitle:"index of" site:ornekdomain.com
Yorumlamada üç senaryo var: (1) Sıfır sonuç → tam deindex'e işaret eder, ancak yeni domain ya da noindex yanlış uygulanmış sitelerde de aynı sonucu görürsünüz. (2) Ana sayfa eksik ama iç sayfalar var → tipik bir partial penalty. (3) Sonuçlar var ama anahtar kelimelerle gelmiyor → algoritmik filtreye, manuel işleme değil.
İkinci güçlü teknik: brand sorgusu. Domain adınızı tırnak içinde aratın: "ornekdomain". Eğer domain'iniz Google'da kendi adıyla bile çıkmıyorsa ve sıralamada başka kaynaklar görünüyorsa, ban olasılığı çok yüksektir. Aynı sorguyu Bing, DuckDuckGo ve Yandex'te de tekrarlayın — tüm motorlar eş zamanlı kayboluyorsa sebep büyük ihtimalle DNS, hosting veya WHOIS lock'tur, Google ban değildir.
Cache, Wayback ve Tarihsel Kontrol
Google'ın cache: operatörü 2024 sonunda kapatıldı, ancak Wayback Machine hâlâ en güçlü tarihsel kanıt aracıdır. Yeni bir alan adı satın almadan önce o domain'in geçmişte ne yayınladığını mutlaka araştırın — özellikle expired domain pazarından alınan alan adlarında, eski sahibin warez/spam/adult içerik yayınlamış olması ihtimali ciddidir.
# Wayback Machine API ile bir domain'in geçmiş anlık görüntüsü
curl -s "https://archive.org/wayback/available?url=ornekdomain.com×tamp=2015" \
| jq '.archived_snapshots.closest'
# Tüm yıllar için snapshot sayısı (CDX API)
curl -s "https://web.archive.org/cdx/search/cdx?url=ornekdomain.com&output=json&limit=10000" \
| jq 'length'
# Domain başlıkları zaman serisinde — eski içeriği tara
curl -s "https://web.archive.org/cdx/search/cdx?url=ornekdomain.com&output=json&fl=timestamp,original&filter=statuscode:200&collapse=timestamp:6" \
| head -100
Domain'in tarihsel ekran görüntüleri arasında pharma, casino, adult, copy-paste haber veya cloaking varsa, aynı domain'in günümüzde temiz görünmesi gizli bir geçmiş cezasının olmadığı anlamına gelmez. Google'ın domain hafızası uzundur; özellikle pure spam etiketi reset edilmeden alan adı el değiştirse bile manuel işlem dosyada kalır.
DNSBL ve RBL: E-posta Tarafındaki Ban
DNSBL (DNS-based Blackhole List), e-posta kabul eden tüm sunucuların standart filtresi. Eğer bir domain'in MX'inin işaret ettiği IP — ya da HELO/EHLO/EHLO+SPF eşleşmeleri — bir DNSBL listesinde varsa, gönderdiğiniz mailler reddedilir. Çoğu ban kontrol aracı, aslında 30-100 ayrı DNSBL listesini paralel sorgulayan bir wrapper'dır.
- Spamhaus ZEN — IP düzeyi (SBL + XBL + PBL toplamı). En etkili ve en sık kullanılan liste.
zen.spamhaus.org. - Spamhaus DBL — domain düzeyi. URL/payload/sender domain'i kontrol eder.
dbl.spamhaus.org. - SURBL — phishing ve mal-link domainleri.
multi.surbl.org. - SORBS — birden fazla alt liste (DUHL, RHSBL, SPAM, SOCKS, HTTP).
dnsbl.sorbs.net. - Barracuda Reputation — ticari, ISP-yoğun.
b.barracudacentral.org. - SpamCop — şikâyet tabanlı, yüksek hassas.
bl.spamcop.net. - UCEPROTECT Levels 1-3 — sıkı, çoğu Avrupa ISP onu kullanır.
dnsbl-1.uceprotect.net. - DroneBL — bot net IP'leri.
dnsbl.dronebl.org.
DNSBL sorgusu klasik DNS lookup ile yapılır. IP adresini ters çevirip listenin domain'ini ekliyorsunuz. Cevap dönerse listede; NXDOMAIN dönerse temiz.
# Tek IP, tek liste
IP=203.0.113.42
REVERSED=$(echo $IP | awk -F. '{print $4"."$3"."$2"."$1}')
dig +short $REVERSED.zen.spamhaus.org
# Çıktı 127.0.0.X ise listede; boş ise temiz.
# Çoklu DNSBL kontrolü — bash döngüsü
LISTS=(
zen.spamhaus.org
dbl.spamhaus.org
bl.spamcop.net
b.barracudacentral.org
dnsbl.sorbs.net
cbl.abuseat.org
psbl.surriel.com
dnsbl-1.uceprotect.net
dnsbl.dronebl.org
multi.surbl.org
)
for list in "${LISTS[@]}"; do
result=$(dig +short $REVERSED.$list)
if [ -n "$result" ]; then
echo "[LISTED] $list -> $result"
else
echo "[CLEAN] $list"
fi
done
# Domain düzeyinde DBL/SURBL
DOMAIN=ornekdomain.com
dig +short ${DOMAIN}.dbl.spamhaus.org
dig +short ${DOMAIN}.multi.surbl.org
Cevap kodlarının anlamı liste başına değişir. Spamhaus için 127.0.0.2 = SBL, 127.0.0.4 = CBL/XBL botnet, 127.0.0.10 = PBL son kullanıcı IP'si, 127.0.0.11 = PBL ISP politika reddi. SURBL için 127.0.0.2 phishing, 127.0.0.4 malware, 127.0.0.8 abuse domain. Cevap kodu doğru tanımlanmadan delisting talebi gönderilemez.
MXToolbox, MultiRBL ve Toplu Tarayıcılar
Komut satırı sevmeyenler için web tabanlı çoklu DNSBL agregatörleri vardır. Hepsi aynı temel dig sorgularını paralel atar, sonuçları gösterirler. En çok kullanılanlar: MXToolbox Blacklists, MultiRBL, DNSBL.info, HetrixTools.
Web aracı kullanırken iki noktaya dikkat: (1) Yalnızca IP'yi değil, MX kayıtlarınızdaki tüm IP'leri ve hatta WordPress backup'ından gelen SMTP relay IP'lerini de kontrol edin. (2) Bazı liste sahipleri (özellikle UCEPROTECT) kendiliğinden delist olur, başka bazıları (Spamhaus PBL gibi) açık form gerektirir. Yanlış listeye yanlış form göndermek delisting'i yavaşlatır.
E-posta deliverability problemleri çoğu zaman yalnızca DNSBL değil, DMARC/DKIM/SPF eksikliği de demektir. DNS rehberimiz SPF/DKIM/DMARC TXT kayıtlarının nasıl yazıldığını ayrıntılı anlatır.
Google Safe Browsing: Malware ve Phishing Banı
Safe Browsing, Chrome ve Firefox'un sayfa açılırken "Aldatıcı site önde" / "Bu site zararlı yazılım barındırıyor olabilir" kırmızı uyarısını çıkardığı sistemdir. Bir domain Safe Browsing'e düşünce trafiğin %95'ini anında kaybedersiniz, çünkü %70+ pazar payına sahip iki tarayıcı kullanıcıyı geçmeden önce uyarır.
İki tür kontrol vardır: kamuya açık Transparency Report sayfası ve programatik Lookup API. Manuel kontrol için yeterli olan ilkidir; SaaS ürünlerinde otomatik tarama yapacaksanız ikincisini kullanın.
# Safe Browsing v4 Lookup API ile sorgulama
API_KEY=AIza...your-google-api-key
curl -s -X POST \
-H "Content-Type: application/json" \
-d '{
"client": {
"clientId": "markaadi-ban-checker",
"clientVersion": "1.0"
},
"threatInfo": {
"threatTypes": [
"MALWARE",
"SOCIAL_ENGINEERING",
"UNWANTED_SOFTWARE",
"POTENTIALLY_HARMFUL_APPLICATION"
],
"platformTypes": ["ANY_PLATFORM"],
"threatEntryTypes": ["URL"],
"threatEntries": [
{"url": "http://ornekdomain.com/"},
{"url": "https://ornekdomain.com/login"}
]
}
}' \
"https://safebrowsing.googleapis.com/v4/threatMatches:find?key=${API_KEY}"
Cevap boş JSON ({}) ise URL'ler temizdir. matches array'i dönerse hangi tehdit türünün eşleştiğini görürsünüz. Üretimde bu API'yi her saatte değil günde 1-2 kez sorgulayın — quota sınırı vardır.
Safe Browsing flagı düştüğünde kurtarma akışı: Search Console'da "Güvenlik Sorunları" panelinden ihlal detayını okuyun, içeriği temizleyin, infected dosyaları sunucudan kaldırın, sızdırılmış admin parolalarını değiştirin, sonra "İncelemeyi iste" butonuna basın. İnceleme süresi 24 saat ile 5 gün arasındadır. Aynı domain'e ikinci ihlal düştüğünde inceleme süresi uzar; üçüncüde "repeat offender" durumuna girer ve 30 günlük periyot başlar.
VirusTotal: 90+ Tarayıcının Tek Ekranda Sonucu
VirusTotal, AlienVault OTX, AbuseIPDB, ESET, Forcepoint, Sophos, Trustwave, Quttera ve onlarca antivirüs/web filtresi vendor'unun aynı URL/IP/domain için verdiği skoru bir araya getirir. Ücretsiz Public API günlük 500 istek hakkı verir.
VT_KEY=your-virustotal-api-key
DOMAIN=ornekdomain.com
# Domain raporu — son tarama tarihi ve vendor verdict'leri
curl -s "https://www.virustotal.com/api/v3/domains/${DOMAIN}" \
-H "x-apikey: ${VT_KEY}" \
| jq '.data.attributes.last_analysis_stats,.data.attributes.reputation'
# IP raporu
IP=203.0.113.42
curl -s "https://www.virustotal.com/api/v3/ip_addresses/${IP}" \
-H "x-apikey: ${VT_KEY}" \
| jq '.data.attributes.last_analysis_stats'
# URL submit + bekleyip sonucu çek
URL_B64=$(echo -n "https://ornekdomain.com/sayfa" | base64 -w0 | tr -d '=')
curl -s "https://www.virustotal.com/api/v3/urls/${URL_B64}" \
-H "x-apikey: ${VT_KEY}"
Çıktıdaki last_analysis_stats objesinde malicious, suspicious, harmless, undetected sayaçlarını göreceksiniz. malicious > 0 olduğunda hangi vendor'un işaretlediğini ayrı sorguyla çekip o vendor'a delisting yapmanız gerekir; çünkü Chrome Safe Browsing temizken Sophos veya Trustwave hâlâ kara listede tutuyorsa kurumsal proxy/SWG arkasındaki kullanıcılar siteye erişemez.
AdSense ve Reklam Yayıncılığı Banı
AdSense banı, arama görünürlüğünden tamamen bağımsız bir yasaklama mekanizmasıdır. Google AdSense ekibi içerik politikası ihlali, geçersiz tıklama trafiği, copyright şikâyeti ya da hesap düzeyinde davranış nedeniyle hesap askıya alabilir. Domain sıfır organik trafik kaybetmemiş olabilir ama reklam vermez.
- Hesap düzeyi suspension: Tüm domain'lerinizde reklam durur. AdSense kontrol panelinde "hesap askıya alındı" mesajı gelir; itiraz formu vardır.
- Site düzeyi disapproval: Sadece belirli alan adında reklam vermez. "Sites > Status" sekmesinde "Ready / Needs attention / Not ready" durumu görünür.
- Page-level violation: Belirli URL'lerde reklam çekilir, diğerleri çalışır. AdSense'in policy center'ında URL listesi gösterilir.
- Limited ad serving: Hesap aktiftir ama Google geçici olarak reklam sayısını sınırlar; geçersiz trafik şüphesi sonrasında 30 gün sürebilir.
- Invalid traffic deduction: Para kesilir ama reklam durmaz. E-posta ile bildirilir; itiraz dönemi 30 gündür.
AdSense ban kontrolü için üçüncü taraf araçlar (eski adıyla bannedcheck) genelde domain'in AdSense reklam çekip çekmediğine bakarak tahmin yapar; %100 doğru değildir. En kesin yöntem AdSense panelinizden "Sites" sekmesini açıp domain ekleyip onay sürecini başlatmaktır. "Failed" cevabı geliyorsa, gelen sebep yazılı olarak bildirilir.
BTK Erişim Engeli: Türkiye'ye Özgü Ban Katmanı
Türkiye'de yayın yapacaksanız BTK (Bilgi Teknolojileri ve İletişim Kurumu), 5651 sayılı kanun ve ilişkili düzenlemeler çerçevesinde domain düzeyinde erişim engeli koyabilir. Engelleme yöntemi DNS sızdırması ve/veya ulusal sınırda IP+SNI tabanlı RST'leme şeklindedir. Engellenen siteler Google'da indekslenmeye devam eder; sadece Türkiye içinden erişim kapanır.
Resmi sorgu adresi: https://internet.btk.gov.tr/sitesorgu/. Buraya domain yazıp sorguladığınızda, varsa engelleme kararı ve dayandığı madde görüntülenir. Ek olarak İfade Özgürlüğü Derneği tarafından tutulan EngelliWeb arşivi geçmiş kararları gösterir.
# Türkiye DNS'inden çözünürlük (TT, Turknet, Turkcell)
dig @195.175.39.49 ornekdomain.com +short # TT
dig @193.192.98.8 ornekdomain.com +short # Turknet
# Engelleme varsa cevap olarak BTK'nın uyarı sayfasına yönlendiren
# 195.175.254.2 / 193.192.98.42 gibi IP'ler döner.
# Yurt dışı DNS ile karşılaştır (Cloudflare, Google)
dig @1.1.1.1 ornekdomain.com +short
dig @8.8.8.8 ornekdomain.com +short
# SNI/TCP düzeyinde engel (modern engellemelerde)
curl -v -k --resolve ornekdomain.com:443:$(dig @8.8.8.8 +short ornekdomain.com | head -1) \
https://ornekdomain.com/ 2>&1 | grep -E 'Connected|RST|HTTP/'
BTK kararı çoğu zaman tek bir URL'ye değil, tüm domain'e konur. Bunun ekonomik etkisini doğru ölçmek için Bing Webmaster Tools, Yandex Metrica ve trafik analitiklerinden Türkiye coğrafyasını ayrı izleyin. Trafiğin Türkiye dışından devam etmesi engelin Google ban değil, ülke düzeyinde olduğunun en net göstergesidir.
DNS, IP ve CDN Bazlı Ban Sinyalleri
Bazı banlar Google ya da BTK'dan değil, hosting ya da CDN sağlayıcısının kendi politikasından gelir. Cloudflare, Fastly, Akamai gibi sağlayıcılar AUP (Acceptable Use Policy) ihlallerinde domain'i pause edip warning page göstertebilir. Bu durumda curl -I cevabında 403 + custom cf-mitigated header'ı görürsünüz.
# HTTP cevap detayı
curl -sI https://ornekdomain.com/ | head -20
curl -sIL https://ornekdomain.com/ # tüm yönlendirme zinciri
# Cloudflare sayfa pause durumu
curl -sI https://ornekdomain.com/ | grep -iE 'server|cf-mitigated|cf-ray'
# DNS NS değişmiş mi?
dig NS ornekdomain.com +short
whois ornekdomain.com | grep -iE 'name server|status'
# Domain status flagleri (EPP)
whois ornekdomain.com | grep -i 'status:'
WHOIS çıktısındaki clientHold ya da serverHold EPP statusu, registrar veya registry tarafından domain'in askıya alındığını gösterir. Bu durumda DNS de çözülmez; site komple çevrimdışı olur. Sebep tipik olarak ödeme problemi, fraud şikâyeti, RDAP politika ihlali ya da UDRP / URS gibi uyuşmazlık sonucu olabilir. WHOIS, RDAP ve DNS rehberimiz bu statuslerin tam listesini açıklar.
Domain Reputation API'leri ve Otomasyon
Tek seferlik kontrol değil de sürekli izleme istiyorsanız, ban değişimini birkaç farklı API'yi paralel sorgulayan bir cron job ile yakalayabilirsiniz. Aşağıdaki Node.js örneği Safe Browsing, VirusTotal, Spamhaus ve URLhaus'u her 15 dakikada bir kontrol eder.
// monitor.js — basit reputation watcher
import dns from 'node:dns/promises';
import fetch from 'node-fetch';
const DOMAIN = process.env.DOMAIN || 'ornekdomain.com';
const SB_KEY = process.env.SAFE_BROWSING_KEY;
const VT_KEY = process.env.VIRUSTOTAL_KEY;
async function checkSafeBrowsing() {
const r = await fetch(
`https://safebrowsing.googleapis.com/v4/threatMatches:find?key=${SB_KEY}`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
client: { clientId: 'markaadi-watch', clientVersion: '1.0' },
threatInfo: {
threatTypes: ['MALWARE', 'SOCIAL_ENGINEERING', 'UNWANTED_SOFTWARE'],
platformTypes: ['ANY_PLATFORM'],
threatEntryTypes: ['URL'],
threatEntries: [{ url: `https://${DOMAIN}/` }],
},
}),
}
);
const j = await r.json();
return j.matches?.length ? j.matches : null;
}
async function checkSpamhausDBL() {
try {
await dns.resolve4(`${DOMAIN}.dbl.spamhaus.org`);
return 'LISTED';
} catch (e) {
if (e.code === 'ENOTFOUND') return 'CLEAN';
throw e;
}
}
async function checkVirusTotal() {
const r = await fetch(`https://www.virustotal.com/api/v3/domains/${DOMAIN}`, {
headers: { 'x-apikey': VT_KEY },
});
const j = await r.json();
return j.data?.attributes?.last_analysis_stats || null;
}
async function checkURLHaus() {
const r = await fetch('https://urlhaus-api.abuse.ch/v1/host/', {
method: 'POST',
body: new URLSearchParams({ host: DOMAIN }),
});
const j = await r.json();
return j.query_status === 'no_results' ? 'CLEAN' : j;
}
const report = {
ts: new Date().toISOString(),
domain: DOMAIN,
safeBrowsing: await checkSafeBrowsing(),
spamhausDBL: await checkSpamhausDBL(),
virusTotal: await checkVirusTotal(),
urlHaus: await checkURLHaus(),
};
console.log(JSON.stringify(report, null, 2));
Bu çıktıyı bir log toplayıcıya akıtıp önceki sonuçtan farklı bir matches ya da LISTED görünce Slack/Telegram'a alarm gönderecek bir kanal ekleyin. Prometheus + Grafana rehberimiz bu metrikleri zaman serisine dökmek için temel kurulumu anlatır.
WHOIS Geçmişi ve Kötü Tarihçeli Domain Tespiti
Drop catched veya backorder yoluyla satın alınan domainlerin yarısı bir önceki sahibinin spam, scam, casino ya da pharma kullanımı sonucu yanmış alan adlarıdır. Yatırım yapmadan önce WHOIS history, DNS history ve NS history kontrolü şarttır.
- WhoisXML API — historical WHOIS, son 10 yılın registrant değişimleri.
- SecurityTrails — historical DNS A/AAAA/MX/NS kayıtları, hosting değişimleri.
- DomainTools Whois History — premium ama derin geçmiş.
- ExpiredDomains.net — drop edilmiş domain'lerin SEO metrikleri.
- urlscan.io — domain'in geçmişte hangi sayfaları render ettiğini gösteren snapshot arşivi.
Tarihsel WHOIS'te 5+ kez registrant ve registrar değişikliği, sürekli pivot eden bir domain'i işaret eder. NS history'de aniden free hosting (000webhost, infinityfree) veya Çin/Rusya bulunmuş olması, üzerinde geçici spam kampanyası çalıştırıldığını düşündürür. Domain ve WHOIS rehberimiz bu sinyallerin nasıl okunduğunu detaylandırır.
Backlink Profili ve Link Spam Banı
Manuel işlemlerin %40'tan fazlası "unnatural links to your site" kategorisindedir. Yani Google sitenize gelen linklerin bir kısmını manipülatif buluyor demek. Bu durumda backlink temizliği yapılmadan ban kalkmaz. Ahrefs, Majestic, SEMrush, Moz ve LinkResearchTools gibi araçlar backlink profilini çıkartır.
- Ahrefs Domain Rating < 5 ama referring domains > 1000 → spam blast işareti.
- Anchor text dağılımında %40+ exact match → over-optimization, link manipülasyon sinyali.
- TLD dağılımında.xyz,.top,.icu,.cn yoğunluğu → PBN ya da spam farm.
- Aynı C-block'tan 100+ link → tek bir host üzerinden link spam.
- Sitewide footer linkler → footer link satışı, eski klasik manuel işlem trigger'ı.
- Hızlı referring domain artışı (haftada 500+) → negative SEO ya da yanlış kampanya.
Toxic backlink'leri tespit edip Google Disavow Tool üzerinden disavow dosyası gönderin. Ardından manuel işlem talebine "reconsideration request" göndermeniz gerekir; Google manuel ekip 7-30 gün içinde inceler ve cevaplar. Arama motoru rehberimiz link otoritesinin nasıl hesaplandığını açıklar.
Ban Çeşitlerinin Tipik Sebep Tablosu
Eldeki binlerce vakanın trend analizinden çıkardığımız sebep dağılımı. Sayısal değerler 2024-2026 dilimi içindir, kaynaklara göre %5 oynayabilir.
- Google Search ban / manuel işlem: %35 thin content + scaled content abuse, %25 unnatural links, %15 site reputation abuse, %10 hacked content, %8 cloaking, %5 hidden text, %2 diğer.
- Algoritmik düşüş (Helpful Content / Core Update): %50 düşük orijinallik, %20 ürünleri test etmemiş ürün incelemeleri, %15 user intent uyumsuzluğu, %15 zayıf E-E-A-T sinyali.
- Safe Browsing flag: %60 hacklenmiş WordPress eklentisi, %20 phishing kit barındırma, %10 redirect chain'de mal-domain, %10 reklam ağı üzerinden kötü payload.
- AdSense suspension: %40 invalid traffic / click fraud, %20 copyright violation, %15 yetişkin/şiddet içeriği, %15 cloaking ad placement, %10 hesap düzeyi suspect activity.
- DNSBL listing: %50 paylaşımlı IP'de aynı segmentteki başka kullanıcının davranışı, %30 hacklenmiş hesabın spam göndermesi, %15 SPF/DKIM/DMARC eksikliği, %5 doğrudan spam.
- BTK erişim engeli: %35 telif hakkı, %25 5651 kapsamı içerik, %20 mahkeme kararıyla bireysel itibar, %10 reklam/oyun mevzuatı, %10 diğer kategoriler.
Adım Adım Kurtarma Akışı
Ban türü tespit edildiğinde kurtarma mantığı türe göre değişir. En sık karşılaşılan üç senaryonun standart akışı:
1) Google Manuel İşlem Sonrası Kurtarma
- Search Console'da Manuel İşlemler panelinde ihlal türünü oku.
- Spesifik URL listesi varsa onları öncelikle düzelt; tüm site etiketi varsa root cause araması yap.
- Backlink temizliği gerekiyorsa Ahrefs raporunu çıkart, toxic listesini disavow.txt olarak yükle.
- İçerik temizliği gerekiyorsa thin/scraped/AI-generated sayfaları noindex yap ya da 410 dön.
- Reconsideration request yaz: ne olduğunu, ne yaptığını, tekrar olmaması için aldığın önlemleri detaylandır.
- İlk cevap red gelirse moralin bozulmasın; ortalama 2-3 iterasyon normal.
- Cevap onay olduktan sonra deindex olmuş sayfalar için
URL Inspection > Request Indexingile tek tek yeniden tarama isteyin.
2) Safe Browsing Flag Sonrası Kurtarma
- Sunucudaki tüm WordPress / hosting kullanıcı parolalarını değiştir.
find / -newer /tmp/marker -type f -name '*.php'ile son hafta değiştirilmiş PHP dosyalarını incele.- Eklenti ve tema dosyalarını GitHub'daki resmi sürümlerle
diff -rile karşılaştır. - Database'de eval / base64_decode / preg_replace /e modifier aramaları yap.
- Sitemap'ten silinen kötü URL'leri 410 ile dön.
- Search Console'da Güvenlik Sorunları > "İncelemeyi iste" formuna temizlik özetini yaz.
- Cevap 24-72 saat içinde gelir; aynı domain ikinci kez yakalanırsa 30 gün repeat-offender bekleme süresine girer.
- OWASP Top 10 2026 önlemlerini kalıcı olarak uygula.
3) DNSBL Listing Sonrası Kurtarma
- Hangi listede olduğunu kesin tespit et (yukarıdaki
digtablosu). - Liste sahibinin delisting URL'sine git: Spamhaus Lookup, SpamCop BL.
- Spam'in kaynağını bul: hacklenmiş hesap mı, infected sender mı, paylaşımlı sunucudaki başka müşteri mi?
- Önlemleri uygula: SPF/DKIM/DMARC ekle, mail rate limit kur, abuse@ adresini canlı tut.
- Delisting formunu doldur ve hangi düzeltmeleri yaptığını yaz.
- Aynı IP'den ikinci kez listelenirsen blok süresi katlanır.
- Çözüm bulamazsan dedicated IP'ye geç.
Toplu Domain Portföyü için Otomatik Tarama
50+ domain yöneten ajans/SEO ekipleri için her birini elle taramak makul değil. Aşağıdaki Python script'i bir CSV listesini gezerek 7 farklı kontrolü çalıştırır ve renkli özet basar.
#!/usr/bin/env python3
# bulk_domain_ban_check.py
import csv, json, sys, asyncio, aiohttp
import aiodns
from datetime import datetime
resolver = aiodns.DNSResolver()
DNSBLS = [
'dbl.spamhaus.org',
'multi.surbl.org',
'bl.spamcop.net',
'b.barracudacentral.org',
'dnsbl.sorbs.net',
]
async def check_dnsbl(domain, list_zone):
try:
await resolver.query(f'{domain}.{list_zone}', 'A')
return 'LISTED'
except aiodns.error.DNSError:
return 'CLEAN'
async def check_safe_browsing(session, domain, key):
body = {
'client': {'clientId': 'bulk', 'clientVersion': '1.0'},
'threatInfo': {
'threatTypes': ['MALWARE', 'SOCIAL_ENGINEERING'],
'platformTypes': ['ANY_PLATFORM'],
'threatEntryTypes': ['URL'],
'threatEntries': [{'url': f'https://{domain}/'}],
},
}
async with session.post(
f'https://safebrowsing.googleapis.com/v4/threatMatches:find?key={key}',
json=body,
) as r:
data = await r.json()
return 'FLAGGED' if data.get('matches') else 'CLEAN'
async def process(domain, session, sb_key):
results = {'domain': domain, 'ts': datetime.utcnow().isoformat()}
dnsbl = await asyncio.gather(*[check_dnsbl(domain, z) for z in DNSBLS])
results['dnsbl'] = dict(zip(DNSBLS, dnsbl))
results['safe_browsing'] = await check_safe_browsing(session, domain, sb_key)
return results
async def main(csv_path, sb_key):
with open(csv_path) as f:
domains = [row[0] for row in csv.reader(f) if row]
async with aiohttp.ClientSession() as session:
rows = await asyncio.gather(*[process(d, session, sb_key) for d in domains])
print(json.dumps(rows, indent=2))
if __name__ == '__main__':
asyncio.run(main(sys.argv[1], sys.argv[2]))
Bu çıktıyı her gün cron ile çalıştırıp önceki günle jq tabanlı bir diff alarsanız, bir alan adınızın aniden DNSBL listesine eklenmesini ya da Safe Browsing flagı yemesini saatler değil dakikalar içinde fark edersiniz.
Bulk Domain Satın Almadan Önce Beş Dakikalık Due Diligence
Backorder, drop catch ya da expired domain açık artırması yoluyla domain alıyorsanız, satın almadan önce mutlaka şu checklisti uygulayın:
- WHOIS geçmişinde son 3 yılda kaç farklı registrant var? 2'nin üstü → şüpheli.
- SecurityTrails NS history'de geçici free hosting var mı?
- Wayback Machine'de pharma/casino/adult/spam arşivi var mı?
- Spamhaus DBL'de geçmiş listing var mı? (
investigations.spamhaus.org) - Google Safe Browsing Transparency Report'ta past flag var mı?
site:domain.comsıfır sonuç döndürüyor ama domain 5+ yaşında mı? → büyük ihtimalle banlı.- Brand sorgusunda Google forumlarda "scam", "banlı", "spam" geçiyor mu?
- Trademark çakışması var mı? (UDRP riski)
- Backlink profilinde toxic ratio nedir? (Ahrefs CSV)
- Daha önceki sahibin yarattığı muhtemel marka karmaşası ne?
Sahte Domain Ban Tespit Araçlarına Dikkat
Türkiye'deki SEO ortamında "domain ban kontrol" anahtar kelimesini hedefleyen pek çok site, aslında site: sorgusu sonucu, basit DNS lookup'ı veya fetch() ile sayfayı çekip 200 dönmesini kontrol eden basit hook'lardır. Bunlar yanlış pozitif/negatif üretir. Gerçek bir ban kontrol aracı en az şu üçünü yapmalı:
- Multiple region'dan DNS resolution kıyaslaması (BTK gibi geo blokları yakalamak için).
- 5+ DNSBL paralel sorgusu ve cevap kodu yorumlaması.
- Safe Browsing v4 ya da en az URLhaus + Phishtank + OpenPhish üçlü kontrolü.
- VirusTotal gibi multi-vendor agregatöründe negative-positive count.
- Search Console manuel işlem doğrulaması (token gerekir, kullanıcının onayı şart).
Bu kriterlerin altındaki bir sorgu aracı yalnızca yön gösterir, kesin sonuç vermez. WHOIS aracımız ve DNS sorgulama aracımız tarihsel kontrol için iyi başlangıçtır; gerçek ban kontrol için ek API katmanları gerekir.
Ban Sonrası SEO Stratejisi
Banı kaldırdınız ya da algoritmik filtreden çıktınız diyelim. Trafiğin hemen geri gelmesini beklemeyin. Google için "trust" metriği yavaş regrese eden bir değer; bu durumdan çıkmış bir domain'in Helpful Content sınıflandırıcısının yeniden değerlendirme sürecine girmesi 6-9 ay alabilir. Bu süreçte yapılacak doğru hamleler:
- Topical authority yeniden inşası: ilgili olduğunuz konuda 30-50 derin makalelik hub-spoke yapısı.
- İç bağlantı mimarisini sıfırdan kur: pillar + cluster, ortalama 8-15 internal link/sayfa.
- E-E-A-T sinyallerini güçlendir: gerçek author bio'lar, kurumsal hakkında sayfası, schema markup.
- Backlink profili reset olduysa, manuel outreach ile temiz, sektörel dofollow'lar kazan.
- Core Web Vitals'i tam yeşil tut: LCP < 2.5s, INP < 200ms, CLS < 0.1.
- Düzenli içerik temposu: haftada 2-4 yeni nitelikli yazı, eski içeriklerin de güncellemesi.
- Eski URL'ler için 301 mapping'i doğru kur, soft 404 üretme.
WordPress kullanıcıları için SEO plugin önerilerimiz yapısal SEO işlerini otomatize etmenizi sağlar. E-ticaret SEO rehberimiz ürün sayfalarına özgü ek katmanları ele alır. Dijital pazarlama rehberimiz ise organik dışı kanallarla riski dağıtmayı anlatır.
Hosting Tarafında Önleyici Sertleştirme
Banların önemli bir kısmı hacklenmiş kuruluma dayanır. WordPress, Joomla, Drupal gibi popüler CMS'ler düzenli yamalanmadığında zafiyetli eklentiler üzerinden ele geçirilir; ele geçirilen sunucu spam veya phishing dağıtmaya başlar; sonuç DNSBL listesi ya da Safe Browsing flag'idir. Bu zinciri kırmak için sunucu tarafında uygulamanız gereken minimum güvenlik:
- VPS güvenlik sertleştirme rehberindeki SSH key-only girişi, root login disabled, port değişikliği.
- Fail2ban ile SSH ve WordPress login bruteforce koruması.
- Çok katmanlı DDoS koruması: Cloudflare WAF + Nginx rate limit.
- XSS ve CSP: kullanıcı içeriği içeren CMS'lerde CSP zorunlu.
- HTTPS ve TLS 1.3: sertifika yönetimi otomatik (certbot/acme.sh).
- Zamanlanmış güvenlik taraması: ClamAV / maldet haftalık cron.
- Eklenti & çekirdek güncellemesi otomatik: WordPress için
WP_AUTO_UPDATE_COREve managed plugin updates.
Sıkça Sorulan Sorular
Domain ban tespit ettim ama hâlâ Google'da çıkıyorum. Bu çelişki neden?
Çoğu "domain ban kontrol" aracı tek bir kaynağa bakar (genelde site:). Domain'iniz sadece DNSBL listesinde olabilir, sadece BTK engelinde olabilir, sadece AdSense'te suspend olmuş olabilir. Bu rehberdeki yedi kontrol katmanını ayrı ayrı tarayın; "ban" kelimesinin hangi anlamda kullanıldığını netleştirin.
Yeni aldığım domain Google indeksine giremiyor. Banlı mı?
Mutlaka değil. Yeni domain'in indeksine girmesi 1-4 hafta alabilir; Search Console'a property eklemek, sitemap göndermek, yüksek otoritede en az bir backlink kazanmak süreci hızlandırır. 6 hafta sonra hâlâ tek bir sayfa indekslenmiyorsa, Wayback Machine ve Spamhaus DBL'i kontrol edin; daha önceki sahibinden kalan bir cezayı işaret edebilir.
Manuel işlem ile algoritmik filtre arasında pratik fark nedir?
Manuel işlemde Search Console'a bildirim düşer, ihlal türü adıyla yazar, reconsideration request gönderebilirsiniz. Algoritmik filtrede bildirim olmaz; trafik düşüşü Helpful Content veya Core Update tarihiyle eşleşir. Manuel işlem itirazla 7-30 günde kalkabilir; algoritmik filtre yeniden değerlendirme periyodu 4-9 ay alabilir.
AdSense banı arama sonuçlarımı etkiler mi?
Hayır, AdSense ve Search ekipleri ayrıdır. AdSense suspendedken organik trafik etkilenmez; ancak AdSense ban sebebi (örneğin invalid traffic) genelde Search'te de ileride sorun yaratacak temelden gelir.
Cloudflare arkasındaki sitemde DNSBL kontrolü için hangi IP'yi sorgulayayım?
Cloudflare proxy IP'si değil, gerçek origin IP'niz ve sunucudaki SMTP gönderici IP'niz kontrol edilmeli. Sender Policy Framework (SPF) kayıtlarınızdaki tüm IP'leri ve mail relay'lerinizin IP'lerini ayrı ayrı tarayın. Cloudflare proxy IP'sini DNSBL'de görseniz bile o sizin değil; binlerce müşteriyle paylaşımlı bir reverse proxy'dir.
BTK engeli olan domain Google indeksinde kalır mı?
Evet, BTK engellemesi sadece Türkiye'den DNS/IP düzeyinde erişimi keser; Google'ın küresel indeksini etkilemez. Türkiye dışından gelen aramalarda site sıralamada görünür ve trafik alır. Ancak Türkiye trafiğiniz büyükse iş etkisi çok büyük olur.
Reconsideration request kaç kez reddedilebilir?
Sınırsız. Pratikte 2-4 iterasyon normal; her redde Google reviewer kısa bir gerekçe verir, ona göre düzeltme yapıp yeniden gönderirsiniz. Önemli olan reddedildikten sonra 1-2 hafta beklemek değil, gerekçeye gerçekten yanıt vermektir; aynı dosyayı tekrar göndermek zaman kaybıdır.
Domain ban kalktıktan sonra trafik anında geri gelir mi?
Hayır. Manuel işlem kalktığında deindex olmuş URL'ler hemen geri gelmez; Googlebot'un tekrar tarayıp güveni yeniden hesaplaması gerekir. Ortalama %50-70 trafik 4-12 hafta içinde, kalanı 6-9 ayda gelir. Bazı algoritmik filtrelerde tam toparlanma sonraki büyük core update'i bekler.
Hızlı Komut Referansı
# Tek satır mini-audit (Linux/macOS)
DOMAIN=ornekdomain.com
echo "== WHOIS =="; whois $DOMAIN | grep -iE 'creation|registrar|status'
echo "== A IP =="; dig +short A $DOMAIN
echo "== NS =="; dig +short NS $DOMAIN
echo "== MX =="; dig +short MX $DOMAIN
echo "== Spamhaus DBL =="; dig +short $DOMAIN.dbl.spamhaus.org
echo "== SURBL =="; dig +short $DOMAIN.multi.surbl.org
echo "== HTTP head =="; curl -sIL https://$DOMAIN/ | head -10
echo "== TR DNS =="; dig @195.175.39.49 +short $DOMAIN
echo "== Global DNS =="; dig @1.1.1.1 +short $DOMAIN
Kaynaklar
- Google Search Central — Manual actions
- Google Safe Browsing site status
- safebrowsing.google.com
- Spamhaus Project
- SURBL
- SpamCop
- MultiRBL.valli.org
- MXToolbox blacklist check
- VirusTotal
- URLhaus by abuse.ch
- PhishTank
- BTK site sorgulama
- EngelliWeb arşivi
- Wayback Machine
- SecurityTrails
- ICANN EPP status codes
- Google Disavow Tool
İlgili Yazılar
- Domain Nedir? WHOIS Sorgulama ve Alan Adı Tescili
- Domain Sorgulama Araçları: WHOIS, RDAP ve DNS
- Teknik SEO Kontrol Listesi 2026
- Arama Motoru Nedir, SEO Rehberi
- Sayfa Hızı ve Core Web Vitals 2026
- OWASP Top 10 2026
- DNS Nedir? Ayarları Değiştirme
- VPS Güvenlik Sertleştirme
Manuel işlem, blacklist listing ya da BTK erişim engelinde uçtan uca audit, kurtarma planı ve sürekli izleme için ekibimizle iletişime geçin