İçeriğin çalındı ve senden üstte çıkıyor: scraper tespiti ve DMCA

Bir yazıyı yayınlıyorsunuz, iki saat sonra aynı metin kelimesi kelimesine başka bir domainde duruyor. Birkaç gün sonra bir sorguda bakıyorsunuz: kopya sizden üstte. Bu hem sinir bozucu hem de ilk bakışta adaletsiz görünüyor.

Çoğu durumda Google orijinali doğru tanıyor ve kopyalar dizinde bile kalmıyor. Ama özellikle yeni ya da az taranan sitelerde kopyanın öne geçtiği oluyor. Bu yazıda kopyaları nasıl bulduğumu, hangi önlemlerin gerçekten işe yaradığını ve ne zaman hiç uğraşmadığımı anlatıyorum.

Scraper'lar nasıl çalışır?

İçerik kazıyıcı (scraper) siteler başkalarının içeriğini otomatik olarak alıp kendi sayfalarında yayınlar. Amaç genellikle reklam geliri ya da sayfalara link yerleştirmek için hazır metin bulmak. Google'ın spam politikalarında bunun adı açıkça geçiyor: kaynak göstermeden ve değer katmadan kopyalanan içerik "scraping" kapsamında spam sayılıyor.

En yaygın kaynak RSS beslemesi. WordPress sitelerde /feed/ adresi varsayılan olarak açık ve yazının tam metnini verebiliyor. Scraper'ın sitenizi taraması bile gerekmiyor; beslemeyi okuyup yeni yazıyı dakikalar içinde kendi sitesine basıyor. Daha az yaygın olanı, sayfaları doğrudan tarayıp HTML'den metni ayıklamak.

Kopya neden bazen senden üstte çıkar?

Birkaç tipik sebep var:

  • Önce dizine girme: Scraper'ın sitesi daha sık taranıyorsa kopya sizin sayfanızdan önce keşfedilebilir.
  • Zayıf site sinyalleri: Yeni bir sitenin, uzun süredir var olan ve çok sayfalı bir kopya sitesine karşı başlangıçta avantajı az.
  • Canonical seçimi: Google birbirine çok benzeyen sayfalar arasından birini canonical seçer. Canonical bir ipucu, direktif değil; sinyaller karışıksa yanlış sayfa seçilebilir.
  • İç linkler kopyada kaybolmuşsa: Kopyada size dönen hiçbir link yoksa Google'ın asıl kaynağı ilişkilendirmesi zorlaşır.

Aşağıdaki savunmaların çoğu tam olarak bu sinyalleri güçlendirmeye yönelik.

Kopyaları tespit etmek

Tırnak içinde benzersiz cümle araması

En basit ve en güvenilir yöntem. Yazınızdan sıradan olmayan, 8-12 kelimelik bir cümle seçin ve Google'da tırnak içinde arayın. Sonuçlarda sizden başka domain varsa kopyayı buldunuz. Bing'de de aynı aramayı yapmak iyi fikir, bazen farklı kopyalar gösteriyor.

Google Alerts

Her yazı için benzersiz bir cümleyi tırnak içinde Google Alerts'e ekleyebilirsiniz. Her şeyi yakalamaz ama düzenli kopyalanan bir blogda erken uyarı işi görür.

Ücretsiz kopya kontrol araçları

Copyscape benzeri araçların ücretsiz sürümleri genellikle sınırlı sayıda URL kontrolüne izin veriyor. Toplu kontrol için yeterli değil ama önemli yazılar için hızlı bir kontrol sağlar.

Sunucu logları

Kopyalayan tarafı bulmanın en somut yolu loglar. Beslemeyi ya da sayfaları olağan dışı sıklıkla çeken IP ve user agent'lar genellikle burada görünüyor. Aşağıdaki komut, standart combined log formatında en çok istek atan IP ve user agent çiftlerini listeliyor:

# En çok istek yapan IP + user agent çiftleri
awk -F'"' '{split($1, a, " "); print a[1] " | " $6}' access.log \
  | sort | uniq -c | sort -rn | head -20

# Sadece RSS beslemesini çekenler
grep ' /feed' access.log \
  | awk -F'"' '{split($1, a, " "); print a[1] " | " $6}' \
  | sort | uniq -c | sort -rn | head -20

Burada dikkat: listede Googlebot, Bingbot ve normal RSS okuyucular da çıkacak. Gerçek Googlebot'u ters DNS ile doğrulamadan hiçbir şeyi engellemeyin. Logları tarayıcıda görsel olarak incelemek isterseniz log analiz aracını kullanabilirsiniz.

Savunmalar

Kendine işaret eden canonical

Her sayfada kendi URL'sine işaret eden mutlak bir canonical etiketi olsun. Tembel scraper'lar HTML'yi olduğu gibi kopyaladığında bu etiket de kopyaya taşınır ve Google'a orijinalin nerede olduğunu söyler. Her scraper bunu yapmaz ama yapanlar için bedava bir sinyal. Canonical'ın neyi garanti edip neyi etmediği için canonical, noindex ve robots.txt yazısına bakabilirsiniz.

Mutlak iç linkler

İç linkleri /yazi-adi yerine https://alanadiniz.com/yazi-adi biçiminde yazarsanız kopyalanan metin size geri link taşır. Kopya dizine girse bile bu linkler asıl kaynağı işaret eder.

RSS'te özet ya da kaynak satırı

WordPress'te Ayarlar > Okuma altında beslemede tam metin yerine özet vermeyi seçebilirsiniz. Tam metin göstermek istiyorsanız, en azından her besleme öğesinin sonuna kaynak satırı eklemek işe yarıyor:

functions.php
<?php
// Besleme içeriğinin sonuna orijinal yazıya dönen bir kaynak satırı ekler
add_filter('the_content_feed', function (string $icerik): string {
    $baglanti = esc_url(get_permalink());
    $baslik = esc_html(get_the_title());

    return $icerik . sprintf(
        '<p>Bu yazı ilk olarak <a href="%s">%s</a> adresinde yayımlandı.</p>',
        $baglanti,
        $baslik
    );
});

Scraper bu satırı silmezse kopya size link verir; silerse bile bir şey kaybetmezsiniz.

Kötü botları Cloudflare'de engellemek

Loglarda aynı IP ya da user agent'ın beslemeyi dakikada onlarca kez çektiğini görürseniz, Cloudflare'de bir WAF özel kuralıyla engelleyebilirsiniz. Örnek ifade:

(http.user_agent contains "python-requests") or (ip.src in {203.0.113.10 198.51.100.0/24})

Kuralın eylemini "Block" ya da önce "Managed Challenge" yapın. Buna ek olarak /feed yoluna makul bir hız sınırlama kuralı koymak hem scraper'ları hem sunucu yükünü azaltır. Yalnız "bilinen botlar"ı engellemediğinizden emin olun; Googlebot'u yanlışlıkla engellemek scraper'dan çok daha pahalıya patlar. Genel ayarlar için Cloudflare SEO ayarları yazısına bakabilirsiniz.

User agent engellemesinin sınırlı olduğunu da bilmek gerekiyor: ciddi bir scraper user agent'ını tarayıcı gibi gösterir. Bu yüzden IP ve hız bazlı kurallar daha kalıcı sonuç verir.

DMCA ile kaldırma talebi

Kopya sizden üstte çıkıyor ve zarar veriyorsa iki kanaldan ilerliyorum.

Google'a telif bildirimi: Google'ın hukuki kaldırma sayfasında (Legal Help) web araması için telif hakkı kaldırma formu var. Formda orijinal içeriğin URL'sini, kopyanın URL'sini ve kısa bir açıklama verirsiniz. Talep kabul edilirse kopya URL arama sonuçlarından kaldırılır. Bilmeniz gereken bir nokta: Google bu bildirimlerin bir kopyasını Lumen veritabanına gönderebiliyor. Google'ın açıklamasına göre gönderenin kişisel iletişim bilgileri çıkarılıyor, ama adınız veya şirket adınız görünebilir. Bunu göze alarak gönderin.

Hosting firmasına bildirim: Kopya sitenin IP adresinden hosting firmasını bulup abuse adresine yazın. Site Cloudflare arkasındaysa, Cloudflare'in kötüye kullanım bildirim formu şikâyeti gerçek hosting firmasına iletebiliyor. Hosting firması içeriği kaldırırsa sorun kaynağında çözülür.

Her iki kanalda da yalın olun: orijinal URL, yayın tarihi, kopya URL, iki sayfanın aynı olduğunu gösteren açık bir ifade. Yayın tarihini kanıtlamak için CMS'nizdeki yayın kayıtları, sunucu logları ve Wayback Machine gibi arşiv kayıtları yardımcı olur.

Ne zaman hiç uğraşmamalı?

Her kopya için DMCA yazmak zaman kaybı. Benim kuralım şu: kopya dizinde değilse ya da ilgili sorgularda benden altta kalıyorsa dokunmuyorum. Yüzlerce otomatik blogun beslemenizi kopyalaması, genellikle Google'ın zaten görmezden geldiği gürültüdür. Bu durumda zamanı yeni içeriğe ve sitenin teknik sağlığına ayırmak daha verimli. Negatif SEO korkusu için de aynı mantık geçerli; negatif SEO yazısında neden spam linklerin çoğunlukla gürültü olduğunu anlattım.

Özetle

DurumYapılacak
Kopya var ama dizinde değil ya da alttaHiçbir şey, sadece not al
Kopya düzenli çıkıyor, besleme kaynaklıRSS'i özete çevir ya da kaynak satırı ekle
Loglarda agresif bir bot beslemeyi çekiyorCloudflare'de IP, user agent veya hız kuralı
Kopya önemli bir sorguda senden üstteGoogle'a telif bildirimi ve hosting'e abuse bildirimi
Canonical ve iç linkler göreliMutlak iç link ve kendine işaret eden canonical kullan

Scraper'ları tamamen durdurmak mümkün değil. Hedef, kopyanın size zarar veremeyeceği kadar güçlü sinyaller bırakmak ve gerçekten zarar veren kopyaları hızlıca kaldırtmak.

Comments / questions

If you have a question about any topic or wish to contact me: Telegram or send an email to [email protected] Thanks!

Related pages