“?ref=” nedir, nasıl kurtulunur?

____________________________________________________________________

Belirtiler

1 – İstatistiklerinizi incelerken www.sitenizinadresi.com/?ref=yabancısiteadresi.com gibi sitenizde olmayan sayfalara ziyaretçi geldiğini mi görüyorsunuz.

2 – Bu adresi kendiniz girdiğinizde 404 gönderen bir hata sayfası çıkmıyor veya bir yönlendirme yapılmıyor.

3 – Google’da “site:sitenizinadresi.com ref” şeklinde arama yapınca ?ref= ile biten birçok indeksli sayfa görüyorsunuz.

Teşhis

Sitenizin sağlığı biraz tehlikede. Siteniz üzerinden yaşayan ciddi asalaklar var.

Bunun temel zararı arama motorlarını siteniz üzerinde bir sayfanın farklı kopyalarının bulunduğuna ikna edebilmesidir. Bundan sonra da Google gibi arama motorları sitenizin değeriyle ilgili sorgulamalara başlar, ve ?ref= şeklinde sayfalar biraz fazla ise sitenize kötü bir değer biçebilir. En kötü sonucu da kopya içerik yasağı ihlali sebebiyle sıralamalarda düşmenizdir.

Tam olarak ?ref= ile ilgili değil ama kopya içerik yüzünden sıralaması düşen bir ticari site biliyorum. Bir terimde devamlı olarak 5. sırada görünürken yaptığı ufak bir yanlış sonucu 30. sıraya fırladı ve ne yaptıysak da düzelmedi. En sonunda da 2000 Euro gibi bir fiyata yabancı bir SEO uzmanıyla anlaşıldı ve site ile ilgili herşey yenilendi, yeni linkler vs. alındı ve Google’a yeniden eklenme isteği ile uzman yaklaşık 5 ay sonra siteyi eski haline getirebildi. Bu örnek nedeniyle ?ref= konusu biraz tahlikeli.

Bu ?ref= in tam olarak ne mantıkla kullanıldığını bilmiyorum ama çeşitli kötü amaçları var. Öncelikle dikkat ederseniz ?ref= kısmından sonra yazan adresler hiçbir zaman kaliteli hitli sitelerden biri olmaz. Örneğin: Ali‘nin bana gönderdiği örnekteki site Alexa sıralamasında 21 milyondu. Sitemin 100’den az ziyaretçi aldığı günlerde bile 1 milyon 200’den aşağı düşmemiştim. Anlayın artık o sitelerin durumlarını. Sitenize bu şekilde link vererek vs. bir şekilde sitenizden prim yapıyorlar. Sanki size ziyaretçiyi onlar göndermiş gibi davranıyor ama sizin bununla ilgili bir çözümünüz olmadığı için siteniz buna hazırlıksız yakalanıyor.

Mesela sitenizde son ziyaretçilerinizin geldikleri siteleri gösteren bir yapı olabilir. Bildiğim kadarıyla ?ref= bu tür yapılarda sitenize ziyaretçi gelen adresi belirtmek için kullanılabiliyor. Sistem bu adresi alıp örneğin sayfanıza koyup bir de linkini koyuyor. Bu tabi mantıklı bir kullanım, bunun dışında Google’a daha ne kadar kötü etkileri olabilir bilmiyorum ama kesinlikle var.

Zaten Google’da ilgili aramalar yaparsanız da hakkında fazla bilgi bulamayacaksınız, çünkü kendileri BlackHat SEO denen hileli işlerin en derinlerinde olanlarındandır.

Tedavi

Bu durumdan kurtulmak basit. Tek yapmanız gereken böyle bir ?ref= ile sitenize gelindiğinde bu sayfayı iyi bir yere 301 ile yönlendirmek veya 404 gönderilmesini sağlamak. İlk yöntem daha iyidir.

Yönlendirmede özellikle PHP siteli blogcular .htaccess dosyası ile yönlendirmeyi tercih etmeli. Çünkü blogcular sık tema değiştirdiklerinden sunucularında kalıcı bir çözümlerinin olması daha iyi olur. ?ref= ile gelen ziyaretçileri ana sayfanıza yönlendirmek için şu kodu .htaccess dosyanıza yapıştırabilirsiniz.

RewriteCond %{THE_REQUEST} \?(ref=.*)?\ HTTP [NC]
RewriteRule .? http://www.siteadresi.com/%{REQUEST_URI}? [R=301,L]

Eğer blogumun temasını sık değiştirmem, .htaccess dosyasından korkarım vs. diyorsanız şu alttaki kodu sitenizin sayfalarının en üst kısmında çalışacak şekilde bir yere koymalısınız. Örneğin; WordPress’te temanızın header.php dosyasına. Kodda başlangıçtaki “?php” kısmını sadece ?php olarak değiştirin.

<"?php" if(strpos($_SERVER['REQUEST_URI'], "?ref=") ) { header( "Location: index.php" );die(); } ?>

Benzeri şekilde ASP, JSP gibi sistemlerde de bir yönlendirme kodu hazırlayarak bu hastalıktan kurtulabilirsiniz. ( Denedim ama pek bilgim olmadığından emin birşeyler çıkaramadım ortaya. 🙂 ) Yapmanız gereken ziyaretçinin geldiği adres içinde ?ref= var ise bu ziyaretçiyi 301 ile ana sayfanıza veya ?ref= öncesi sayfaya yönlendirmek.

İşe yarar mı diyorsanız, yaramaz ya diyorsanız BURAYA TIKLAYIN, size canlı kanıt. 😀

34 Yorum

  • Yazan: ferdem, 17 Aralık 2008 @ 10:54 am

    3. maddede belirtilen aramayı site:sitenizinadresi.com ref şeklindemi yapıyoruz yani com ile ref arasında boşlukmu var?

  • Yazan: FeRHaD, 17 Aralık 2008 @ 2:38 pm

    Evet, mesela sen aramanı “site:karaklavye.com ref” şeklinde yapacaksın. Aslında farklı şekillerde de yapılabilir ama önemli olan sonuca içinde ref kelimesi geçen bağlantılara sahip sayfaların getirilmesi. Senin sitene baktım ben, sende bir hastalık göremedim. Sanırım .htaccess dosyanda yukarıdaki kod var ya da sitene henüz bu şekilde bağlantı veren bir site yok.

  • Yazan: E. Ali, 17 Aralık 2008 @ 3:11 pm

    Son kodu header kısmına ekledim. Ama galiba bu tam bir çözüm değil. Yani bundan sonra ref yapamayacaklar anlamına gelmez. öyle midir? Eğer öyle ise birileri yine bazı sayfalarıma ref yapacak ve google aramalarından o sayfamın refli linkine tıklayan insanlar o yazıma değil ana sayfaya gelebilecek demektir. bu ise başka bir sorun teşkil edecek.

    İkinci sorum – Yabancı bir siteden bir uyarı okumuştum:
    Olur olmaz her sitenin kodlarını sayfalarınıza koymayın deniyordu. Yani mesela ziyaretçi sayısını, online ziyaretçi saysını gösteren kodlar var. bazı siteler ücretsiz veriyor. Böyle şeyler kastedilmiş olabilir. Uyarıda deniyordu ki ücretsiz hizmet veriyor gibi görünüyorlar ama bunlar anahtar kelimelerinizi satıyor.
    O halde ref ile bu şeylerin bağlantısı var. -mıdır?

  • Yazan: FeRHaD, 17 Aralık 2008 @ 3:25 pm

    Ref yapabilecekler ama sitene GoogleBot girdiğinde 301 ile ana sayfaya yönleneceği için seni kopya içerik derdinden koruyacak. Bundan sonra da Google sonuçlarında ?ref= kısmına sahip olan bağlantılar olmayacak, çünkü Google bu sayfalara geldiğinde ana sayfaya gideceği için bu tür sayfaları indekslememiş olacak.

    Yabancı sitede okuduğun o uyarı doğrudur. Her beleş kodu nerede beleş orada yerleş mantığıyla siteye koymamak gerekli. Çünkü bu kodun tam olarak tarayıcıdan hangi verileri aldığını bilmek zor. Dediğin gibi kod Google’dan ziyaretçinin geldiği anahtar kelimeleri alıp bu bilgiyi kendi emelleri için kullanmak isteyen birilerine teslim ediyor olabilir.
    Ref ile bunların bağlantısı olabilir mi bilmiyorum ama mümkün değil değil, yani yapılabilir veya olabilir. En iyisi her ücretsiz kodu kullanmamak.

    Ücretsiz kodlar kodu aldığınız sitedeki bir JS dosyasına bağlantı verir. Tarayıcıda siteniz açıldığında bu JS dosyası da siteniz ile birlikte çalıştırılır. Bundan sonra o kod içinde ne yazılmışsa tarayıcı onu yapar. Bu tür JS dosyalarını ayrı olarak açıp içlerindeki verileri kontrol etmek gerekli. Ancak bu sayede iyi mi kötü niyetli mi oldukları anlaşılabilir. Tabi en iyisi gerekli olmadıkça çok fazla kod kullanmamak.

  • Yazan: Mert, 17 Aralık 2008 @ 4:12 pm

    Ref olayından haberim vardı da, bana bulaşacaklarını hiç düşünmemiştim. Öncelikle düşünmem gerektiğini hatırlattığın için teşekkürler. 128 sonuç çıkıyordu. Şimdi düzelttim, iş Google Amca’nın hızına kalmış 🙂

  • Yazan: ferdem, 17 Aralık 2008 @ 5:07 pm

    Şimdilik bende böyle bir sorun yok ama Google’da Mert’in blogunu ref’li şekilde arattırınca durumu daha iyi anladım 🙂 ve hemen htaccess dosyasına kodu ekledim.

  • Yazan: FeRHaD, 17 Aralık 2008 @ 5:14 pm

    Kendinde göremedin diye o boşluk sorusunu sormuştun değil mi! 😀
    Olsun olmadığı olmayacağı anlamına gelmez, önlem almış oldun.

  • Yazan: ferdem, 17 Aralık 2008 @ 7:32 pm

    Evet o yüzden sormuştum:D

  • Yazan: cocuklacocuk, 18 Aralık 2008 @ 12:14 am

    yazınız için teşekkürler. Bizim sorunumuz var bu konuda, hemen deneyeceğiz.

  • Yazan: FeRHaD, 18 Aralık 2008 @ 2:27 am

    Birşey değil, bir teşekkür de E.Ali’ye gitsin lütfen. Fikri o verdi. 🙂

  • Yazan: E. Ali, 18 Aralık 2008 @ 3:38 am

    Cevabına göre, bazı yazılarımız o refler yüzünden google arşivlemelerine geçirilmeyecek!
    Yok mu başka çözümü bunun?

    Bu arada IP şeyleri için teşekkür ederim. artık herhalde bu sayede yasaklı youtube sitesine de girebilirim. gerçi benim işime yaramıyor ama bazı bloglar youtube videoları koyuyor ne olduğunu göremiyorum.

  • Yazan: FeRHaD, 18 Aralık 2008 @ 12:52 pm

    Hayır, tüm sayfaların Google’da indekslenebilecek. Sadece alivesitesi.com/page/42/?ref=GoogleYuz.Com şeklinde olan sayfalar indekslenmeyecek. Ancak alivesitesi.com/page/42/ sayfası yine indekslenecek. Zaten ref içeren sayfa senin istediğin sayfa olmadığından Google’da indekslenmeyecek, bu sayede de orjinal sayfanın bir başka kopyası oluşmamış olacak.
    Yani bu teknik sadece ?ref= içeren sayfaları etkiliyor. Diğerleri yine normal şekilde indekslenecek, gayet iyi bir çözüm bence. 😀

  • Yazan: E. Ali, 31 Aralık 2008 @ 2:03 pm

    Verdiğin kodlardan ikincisini başka bir siteme daha koyarken dikkatimi çekti: başta sivri uçlu parantez var ama kodun herhangi bir yerinde bunun tersi yani > şeklinde olanı yok. Böyle mi olması gerekiyor?

  • Yazan: FeRHaD, 31 Aralık 2008 @ 5:57 pm

    @Ali
    Kodu doğru olarak yazıya koyabilmem için biraz kırpıyorum, yukarıda kodu yeniledim, tabi başına dikkat et.

  • Yazan: E. Ali, 31 Aralık 2008 @ 7:05 pm

    Şimdi bunu alıp diğerlerinin yerine bunu koyuyorum. Peki eski şekli işe yaramaz mıydı?

  • Yazan: E. Ali, 31 Aralık 2008 @ 7:10 pm

    ikinci soru(n):
    yeni şeklini koydum kayıt ettim ama normal sayfada aynen görünür oldu. silmek zorunda kaldım.
    “başına dikkat et” demişsin. anlamadım. belki bir değişiklik yapmam gerekiyordu ise bilmiyorum. 🙁

  • Yazan: FeRHaD, 1 Ocak 2009 @ 1:45 am

    Orjinal kodu bozmuştum, kurcalarken yukarıdakini çıkardım, ancak bende çalışıyordu.
    Başındaki şu kısımda ?php ifadesinin önündeki ve sonundaki ” işaretlerini kaldır, bundan sonra çalışmalı.
    <"?php" ifÖnceki kodda da böyle bir sakatlık vardı.

  • Yazan: E. Ali, 1 Ocak 2009 @ 1:56 am

    Tamam öyle yaptım şimdi sorun görünmüyor. Peki sondaki sivri kapatma parantezi olmayan eski hali dursaydı işe yarar mıydı?

  • Yazan: FeRHaD, 1 Ocak 2009 @ 2:06 am

    Eski halinde php ifadesinden önce soru işareti (?) koymak gerekirdi, sanırım WordPress kodun sonunu yutmuş veya ben koymamışım. O haliyle denediğimde sayfanın kaynak kodunda kod olduğu gibi görünüyordu, yani HTML kısmına geçmiş oluyor, bunun olmaması gerekli. Yani normal koşullarda bir fonksiyon veya metod tarafından birşey dönülmedikçe ?php ifadesinden sonraki kısım sayfanın kaynak kodunda görünmez. Yukarıdaki kod ? eksikliğinden vs. görünüyordu ve çalışmıyordu. Aslında .htaccess yönlendirmesi yapsan daha iyi olur. Bir de ana sayfaya değilde yazının esas sayfasına yönlendirme yapacak kodu hazırlamaya çalışıyordum ama .htaccess kuralları biraz karışık geldi, pek anlamıyorum, yapınca onu da ekleyeceğim.

  • Yazan: murat, 1 Haziran 2009 @ 6:27 pm

    User-agent: *
    Disallow: /*ref=*

    sitenizin robots txt dosyasını yukardaki gibi oluşturun kurtulun 🙂
    Ben denedim ana sayfa linki google den silinmiş siteyi tekrar indexe aldırdım.
    sadece sabır edin bekleyin.
    Çözüm Garanti. Bu txt i yazanlarada hiç bi şey olmaz.

  • Yazan: FeRHaD, 1 Haziran 2009 @ 7:11 pm

    Murat, evet senin dediğin de oldukça iyi bir yöntem.

  • Yazan: E. Ali, 1 Haziran 2009 @ 7:27 pm

    Ferhad ne senin “canlı kanıt”ını gösterdiğin ne de Murat’ınki yüzde yüz işe yarıyor. Ben robots txt’yi de muratın dediği şekilde denemiştim bekledim baktım evet engellenen URL’ler çok.. webmaster hesabımda gösterilmiş iyi güzel ama sonuç yüzde yüz değildi…
    sonunda aşağıdakini denedim şimdi aradan birkaç ay geçmiş durumda sonuç yine pek iç açıcı değil. istersen bir de sen bak refler yine var.

    User-agent: *
    Disallow: /*ref*
    Disallow: /?ref*
    Disallow: /?ref=*

  • Yazan: FeRHaD, 1 Haziran 2009 @ 7:45 pm

    Linkler yine var fakat gördüğüm kadarıyla yazılarda yok, kategori ve etiketlerde var.
    Sanırım yazılarda görünmelerini robots.txt ile engelledin ama kategorilerde işe yaramıyor. Bunları farklı bir sayfaya yönlendirmeyi deneyebilirsin, yani GoogleBot o link üzerinden sayfana girdiğinde başka bir yere gitsin ki orada birşey olmadığını düşünsün ve o bağlantıyı arşivlemesin.
    Google eski bir yazını indekslemeyebilir, indekste refli olarak kalabilir, yani %100 hiç olmayabilir.

  • Yazan: E. Ali, 1 Haziran 2009 @ 7:56 pm

    Canlı kanıtı dediğin yere tıklayınca sende de çok fazla ref görünüyor. Eskiden hiç yoktu diye hatırlıyorum.

  • Yazan: FeRHaD, 1 Haziran 2009 @ 7:59 pm

    Bende “ref” göremedim ben! Bende canlı kanıt kısmında sonuç olarak çok fazla görünüyor, onun nedeni de bu yazı. 🙂 Bu yazıya bağlantı vs. olan heryer görünüyor. Ancak bağlantısının sonunda ?ref içeren sonuç göremedim ben.

  • Yazan: E. Ali, 1 Haziran 2009 @ 8:07 pm

    Tekrar baktım ben kategori göremedim ama çoğu üç ay önce silip yok ettiğim yazıların linkleri!!

    Belki bu txt yüzde yüz işe yarıyabiliyor ama google çok eskileri gösteriyor. Bu durumda kesin durum nedir anlayamayız sanıyorum.

  • Yazan: FeRHaD, 1 Haziran 2009 @ 8:12 pm

    Ben de tam onu diyecektim sana, şimdi aklıma geldi. 🙂
    Temanda sanırım 404 ayfası yok veya WordPress sitende olmayan bir yazıya girince sayfa başlığına 404 kodu yani sayfa yok kodu eklemiyor. Böyle olunca da Google sayfa varmış gibi onu indeksliyor, bu da gördüğün gibi iyi birşey değil. Aynı içerik farklı adreslerde olduğundan kötü bir muamele de yapabilir.

  • Yazan: E. Ali, 1 Haziran 2009 @ 8:23 pm

    404 sayfaları yapmıştım ama farklı kod filan mı ekleyecektim bilmiyorum. vaktin varsa mesela tekil bir sayfanın url’sinden bir harf bozup deneyebilirsin kendi yaptığım 404 sayfası çıkacak. Sayfa yok kodu nasıl yapılır? bilmiyorum. yalnız webmaster tools’da olmayan veya sildiğim sayfalar zaman zaman belirtiliyor ulaşılamadı erişilemedi bulunamadı gibi.

  • Yazan: FeRHaD, 1 Haziran 2009 @ 8:43 pm

    Sende olmayan bir sayfaya girdiğimde dönen başlık:
    HTTP/1.1 200 OK
    Bende ise:
    HTTP/1.1 404 Not Found.
    Yani HTTP başlığını olmayan sayfalarda 404 olarak dönecek şekilde değiştirmelisin. Tabi bunu temada mı yaparsın nerede bilmiyorum!

  • Yazan: E. Ali, 1 Haziran 2009 @ 9:10 pm

    bunun nasıl yapılacağını hiç bilmiyorum.

    plesk’e benzeyen helm’de şu var:

    Error Code: 404 (Not Found)
    Error Page URL:
    e.g. ‘/HTTPErrors/404page.asp’
    *Leave blank to set to default location

    ikinci satıra o dediğin şeyi mi (HTTP/1.1 404 Not Found) yazmalıyım acaba? şu an orası boş. Böylece default oluyormuş.

    Sonra sen nedenen gördün HTTP/1.1 200 OK yazdığını?

  • Yazan: FeRHaD, 1 Haziran 2009 @ 9:19 pm

    Şurada Header Check yapabilirsin. Opera’da Seobar3 ile bakardım normalde ama Opera 10 Bta’ya güncelleyince çalışmaz oldu. Firefox için de Seobar eklentisinde olması lazım benzer bir özellik.
    Bence o Error Page URL kısmına birşey yazmamalısın, yazarsan kişisel bir 404 sayfan olmuş olur. Aslında belki öyle de olabilir ama çalışır mı bilmem.

    Sayfa başlığında şu aşağıdakilerden birini kullanabilirsin:

    ya da
    header(“Status: 404 Not Found”);

    ama bunlar için önce o sayfanın hatalı sayfa olduğunu bilmemiz gerek, onu nasıl yaparız bilmiyorum.

  • Yazan: E. Ali, 1 Haziran 2009 @ 10:52 pm

    ikisini de denedim olmadı. neyse böyle kalsın bir ara araştırırım.

  • Yazan: xboss, 12 Eylül 2009 @ 11:35 am

    yaw ferhat kardes yaptıgın ingilizce sozlugun hakkım da bolumunu okuduk cok hosumuza gitti sana inşallah dua ederiz :D:D:D aynen devam et senın geleceğin parlak dostm

  • Yazan: Siberman, 1 Aralık 2012 @ 2:54 am

    teşekkürler

Bu yazıya bağlantılar

Bu yazıdaki yorumlar için RSS beslemesi. Geri izleme URI

Yorum yaz