Robotların sayfanın belirli bir bölümünü taramasını önleme


28

Forumu olan küçük bir siteden sorumlu bir web yöneticisi olarak, kullanıcılardan düzenli olarak hem dahili arama motorunun hem de harici aramaların (Google kullanırken olduğu gibi) kullanıcılarımın imzaları tarafından tamamen kirlendiğinden şikayet ediyorlar (uzun kullanıyorlar. imzalar ve bu forumun deneyiminin bir parçası çünkü imzalar forumumda çok anlamlı.

Yani temelde şu an itibariyle iki seçenek görüyorum:

  1. İmzayı resim olarak oluşturma ve bir kullanıcı "imza resmini" tıkladığında, gerçek imzayı içeren bir sayfaya (imzanın içindeki bağlantılar vb.) Alınır ve bu sayfa arama tarafından taranamaz olarak ayarlanır motor örümcekleri). Bu, biraz bant genişliği tüketir ve biraz çalışmaya ihtiyaç duyar (çünkü resmi üreten bir HTML oluşturucusuna ihtiyacım var vs.) ancak açık bir şekilde sorunu çözerdi (imzanın yazı tipine / renk düzenine saygı göstermeyeceği konusunda ufak tefek şeyler var. Kullanıcılar, ancak benim kullanıcılar, yine de, özel yazı tipleri / renkler / boyut vb. kullanarak imzaları ile çok yaratıcılar.

  2. Web sayfasının imza içeren her bölümünü taranamayan olarak işaretleme.

Ancak sonradan emin değilim: Bu yapılabilecek bir şey mi? Bir web sayfasının belirli bölümlerini taranamayan olarak işaretleyebilir misiniz?

Yanıtlar:


8

İşte Stack Overflow'ta google için noindex etiketine verdiğim cevap :

Google’ın sayfanın bölümlerini görmesini engelleyebilirsiniz; bu kısımları robots.txt tarafından engellenen iframe'lere yerleştirin.

robots.txt

Disallow: /iframes/

index.html

This text is crawlable, but now you'll see 
text that search engines can't see:
<iframe src="/iframes/hidden.html" width="100%" height=300 scrolling=no>

/iframes/hidden.html

Search engines cannot see this text.

İframe kullanmak yerine, AJAX kullanarak gizli dosyanın içeriğini yükleyebilirsiniz. İşte bunu yapmak için jquery ajax kullanan bir örnek:

his text is crawlable, but now you'll see 
text that search engines can't see:
<div id="hidden"></div>
<script>
    $.get(
        "/iframes/hidden.html",
        function(data){$('#hidden').html(data)},
    );
</script>

AJAX kullanarak kontrol eklemek / enjekte etmek, aynı şekilde taramaya izin vermemek ve taramasını engellemeye yardımcı olur mu?
Pranav Bilurkar

AJAX'ın konum aldığı konum robots.txt tarafından engellenir.
Stephen Ostermiller

Lütfen bu webmasters.stackexchange.com/questions/108169/… adresini kontrol edip varsa öneriniz.
Pranav Bilurkar

AJAX'ın aldığı konum, robots.txt tarafından engellendiği sürece - Lütfen bu konuda ayrıntılı bilgi verin.
Pranav Bilurkar

2
Google, kötüye kullanımı önlemek için javascriptlerini taramasını engelleyenlere ceza verir. Aynı iframe'ler için de geçerli midir?
Jonathan

7

Başka bir çözüm, sig'ı stil ayarlı bir yayılma alanına veya div'ye sarmak display:noneve sonra onu almak için Javascript kullanmaktır; böylece metin Javascript açık olan tarayıcılar için görüntülenir. Arama motorları, gösterilmeyeceğini biliyor bu yüzden dizine eklememelisiniz.

Bu HTML, CSS ve javascript bitinin yapması gerekenler:

HTML:

<span class="sig">signature goes here</span>

CSS:

.sig {
display:none;
}

javascript:

<script type="text/javascript"> 
$(document).ready(function()
  {
      $(".sig").show();
  }
</script>

Bir jquery kütüphanesi eklemeniz gerekir .


4
+1 ve bunu düşündüm ama bu, çeşitli örümcekler tarafından bir "gizlenme" biçimi olarak düşünülmez mi?
WebbyTheWebbor


1
Oldukça temiz olduğunu düşünüyorum :-)
paulmorriss

Bu, en katı tanımda, gizleme olarak kabul edilebilir. Ancak tüm imzayı bir document.write (""); kullanarak javascript ile yazdırabilir. Google, javascript içindeki hiçbir şeyi endekslemez. support.google.com/customsearch/bin/…
Athoxx

Google’ın, CSS kullanarak gizlenmiş olsalar bile bu paragrafları endeksleyebileceğini düşünüyorum. En güvenli seçenek, metni HTML'ye hiç dahil etmemektir. (Çalışma zamanında metni enjekte etmek için JavaScript kullanabiliriz.)
wrygiel

3

Ben de benzer bir problem yaşadım, css ile çözdüm ama javascript ve jquery ile de yapılabilir.

1 - " disallowed-for-crawlers" olarak adlandıracağım bir sınıf oluşturdum ve o sınıfı Google botunun görmesini istemediğim her şeye ya da o sınıfla bir yayılma alanına yerleştirdim.

2 - Sayfanın ana CSS'sinde gibi bir şey olacak

.disallowed-for-crawlers {
    display:none;
}

3- disallow.css adlı bir CSS dosyası oluşturun ve bu dosyaların taranmasına izin verilmeyen robots.txt dosyasına ekleyin, böylece tarayıcılar bu dosyaya erişemez, ancak ana css'den sonra sayfanıza referans olarak ekler.

4- disallow.csskodunu girdim:

.disallowed-for-crawlers {
    display:block !important;
}

Javascript veya css ile oynayabilirsiniz. Sadece izin verme ve css sınıflarından yararlandım. :) Birisi yardımcı olur umarım.


Bunun, tarayıcıların .css dosyasına erişememesi nedeniyle çalıştığından emin değilim (bu bir şey mi? Tarayıcılar ne zamandan beri belirli css dosyalarına erişip tararlar?) Ve yalnızca görüntülenmeleri nedeniyle değil: hiçbiri ve tarayıcılar bunu anlamayacaklar endekslemiyorlar. Bu durumda bile, içeriği insan kullanıcılarına göstermek için ne yaparsınız?
Γρος Γούλας

İçerik, kullanıcı adı için 4. adımı yüklediğinde, bu dosyayı görmelerine izin verildiğinden (disallow.css) görüntülenir. Ve bugünlerde saygın arama motorlarının yaptığı CSS'yi yükleyen robotlar hakkında, bir web sitesinin ne zaman mobil dostu olup olmadığını, kaygı duymaya değmeyecek tarayıcılar, büyük arama motorlarının css ve javascript'i taramak için okuduklarını belirler. sayfaları, yaklaşık 6 yıldır ... neredeyse 6 senedir yapıyorlar. belki daha fazla.
Rolando Retana

Bu iddiayı destekleyen kaynaklar sağlayabilir misiniz? Bakınız webmasters.stackexchange.com/questions/71546/... ve yoast.com/dont-block-css-and-js-files ve en önemlisi burada webmasters.googleblog.com/2014/10/... ne anlatmak tasvir nerede Kötü bir uygulama olarak.
Γρος Γούλας

Web sitemi normal bir şekilde Google’ın görmesini istiyorsam ve tüm CSS’leri engelliyorum ve bu, CSS’yi yorumladıkları için kötü bir uygulama, ancak bu özel durumda, css’in tamamını değil, sadece belirli bir dosyayı engelliyorum, OP sor Google’ın sayfanın bir bölümünü okumasını engelleme hakkında. ancak Google’ın bu bölümleri taramasını istemiyorum bu yüzden tek bir CSS’yi engelliyorum (hepsi değil, yalnızca bir tane). Ve söylediğin iddiayı yedeklemek için? Tarayıcıların JS ve CSS okudukları? Google Web Yöneticisi Araçları’nıza gitmek kadar kolay ve "Bir robot olarak al" a bir göz atın. Orada css ve js öğelerini nasıl okuduklarını göreceksiniz.
Rolando Retana

Ayrıca, benim özel durumumda Google Paletli ile gölgeli bir şey yapmak istediğimden değil, google’ın tüm sayfalarda tekrarlayan görünebilecek bir bilgi bölümünü okumasını istemiyorum. Telefon numaraları, adresler, ilgili ürünler veya Google'ın taramasıyla alakalı olmayan bilgiler gibi.
Rolando Retana

2

Bunu yapmanın bir yolu, düz metin yerine bir metin görüntüsünü kullanmaktır .

Google’ın, görüntüdeki metni okuyacak kadar akıllı olması muhtemeldir, bu nedenle geleceğe yönelik bir kanıt olmayabilir, ancak en azından bir süre daha iyi çalışması gerekir.

Bu yaklaşımın bir sürü dezavantajı var. Bir insan görme engelli ise, kötüdür. İçeriğinizin masaüstü bilgisayarlara karşı mobil cihazlara uyum sağlamasını istiyorsanız, bu kötüdür. (ve bunun gibi)

Ancak şu anda (biraz) çalışan bir yöntemdir.


alt & title tage'ı uygun şekilde kullanırsanız bu ne kadar işe yarar?
Jayen

Denemedi, ancak Google’ın tarama yapması muhtemel görünüyor. Bu yaklaşımın büyük bir sınırlamasıdır.
James Foster

1

Bu kolay.

Sayfanızı sunmadan önce bir botta, bilgisayarda mı yoksa telefonda mı olduğunu bilmeniz gerekir. Daha sonra içeriği buna göre ayarlamanız gerekir. Bu, günümüzde standart bir uygulamadır ve bazı CMS'lerin yaş ve temel işlevleri.

SE'de, htaccess'inize yerleştirilebilecek USER AJAN'a dayalı yeniden yönlendirme yapmak için birçok çözüm vardır. Bu, forum yazılımınıza uygunsa, Google’ın ihtiyaç duymadan ve kırpmadan istediklerini sunmak için aynı DB’den farklı bir kod çalıştırabilirsiniz.

Alternatif olarak, 'eğer USER AGENT == Googlebot sonra imza göstermiyorsa' yazan PHP kodunuza küçük bir satır koyabilirsiniz.

Bunu gerçekten yapamazsanız, bot_a hizmet etmek için mod_proxy alabilirsiniz ve php kodunuzun botun görmesi gerekmeyeceği bir şey çıkarması için kullanabilirsiniz.

Teknik olarak Google, arama motorlarının normal site ziyaretçisinin gördüklerinden farklı bir sayfa gösterildiğini onaylamaz, ancak bugüne kadar BBC’yi ve tarayıcı / IP / ziyaretçiye özel içeriği arama motoru sonuçlarından temin eden diğerlerini almadılar. . Ayrıca botlarının 'bağlanmış olup olmadığını' görmek için sınırlı imkânları var.

Bir komut dosyası tarafından yeniden etkinleştirilebilmesi için içeriği CSS ile gizleme alternatif çözümü de biraz gri bir alandır. 20/6 / 11'deki kendi Web Yöneticisi Araçları kurallarına göre bu iyi bir fikir değildir:

http://www.google.com/support/webmasters/bin/answer.py?answer=66353

Bu taş dökülmüş bir tablet olmayabilir, ancak güncel ve Google tarafından hazırlanmıştır.

İçerik gizlemesini gizlemek, javascript'e sahip olmayan kişilerin azınlığı ile çalışmayacak, bu çok büyük bir endişe kaynağı olmayabilir, ancak belgenin yüklenmesini beklemek ve sonra imzaları göstermek sizin gibi tatmin edici bir görüntüleme deneyimi olmayacak sayfanın yüklendiğini düşünün, ardından gizli imzalar göründüğü gibi atlayarak içeriği aşağıya doğru itin. Bu tür bir sayfa yükleme işlemi, düşük netlikte bir ağ bağlantınız varsa tahriş edici olabilir, ancak hızlı bir internet bağlantısına sahip hızlı bir geliştirici makineniz varsa fark edilmeyebilir.


6
@ ʍǝɥʇɐɯ: sayfaya kimlerin girdiğine bağlı olarak farklı içerikler sunmak hoşunuza gider ve sizi arama motorunda anlayabildiğim kadar cezalandırabilir. Paulmorris'in JavaScript çözümünü çok tercih ederim.
WebbyTheWebbor

@ ʍǝɥʇɐɯ: erf, eğer kişiselleştirilmiş içerik sunuyorsanız oyunun adı da, JavaScript de öyle. Son olarak, genel olarak Web’in JavaScript’i yüklemeden artık iyi çalışmadığını kontrol ettim (GMail, FaceBook, Google Dokümanlar, yığın taşması, Google+ - yup zaten aldım;) - vs.). Paulmorris'in çözümünü, JavaScript kullanılamayacağının yanlış bir öncül olduğuna dayanarak eleştirmeye gerek görmüyorum.
WebbyTheWebbor 4:11

@ ʍǝɥʇɐɯ: Bu konuyu Matt Cutts'tan (Google'da SEO’nun sorumlusu) bu konuda beğenebilirsin : theseonewsblog.com/3383/google-hidden-text Bu, Paulmorris tarafından mükemmel cevabına yorum yapan mükemmel bir yorumdu . Üzgünüm ama böyle bir forumda JavaScript "aptallığı" aramak trolling'e yakın.
WebbyTheWebbor 4:11

... ve sonra şu soruyu alıyoruz: webmasters.stackexchange.com/questions/16398/… - 'anahtar kelime doldurma' aptalca. Bunun için üzgünüm.
20

Bunun “gizlenme” altına girdiğine inanıyorum ve bu yüzden iyi bir uygulama değil.
Γρος Γούλας

0

Hayır, robotların sayfa parçalarını taramasını engellemenin yolu yoktur. Tüm sayfa ya da hiçbir şey.

Google’ın arama sonuçlarındaki snippet'ler genellikle sayfadaki meta açıklamadan alınır . Böylece Google’ı meta açıklama etiketine koyarak sayfanın belirli bir bölümünü göstermesini sağlayabilirsiniz. Kullanıcı tarafından oluşturulan içerikle iyi snippet'ler elde etmek zor, ancak iş parçacığının ilk bölümünü almak muhtemelen işe yarayacaktı.

Düşünebilmemin tek yolu Javascript kullanmak. Paulmorriss gibi bir şey önerdi mayıs işi, ama arama motorları endeksi HTML eğer içerik hala olur düşünüyorum. HTML'den kaldırabilir, Javascript dizesinde saklayabilir, ardından sayfa yüküne geri ekleyebilirsiniz. Yine de bu biraz karmaşıklaşıyor.

Son olarak, akılda tutulması gereken bir şey: Google, kullanıcının snippet'lerinde imzalarını gösteriyorsa, kullanıcının sorgusuyla en alakalı bölüm olduğuna karar vermiştir.


1
Buradaki sorun Google’ın kullanıcının snippet’indeki işaretlerini göstermesi o kadar da değil. Buradaki sorun, kesin olarak Google’ın, sigların aslında olmadıklarında alakalı olduklarını düşündüğünü düşünebilir: Yani, tam olarak benim sorum budur.
WebbyTheWebbor

@Webby, anlamıyorum, neden sayfalarınızın yüksek sıralarda olmasını istemiyorsunuz? Neden bahsettiğinizi görebilmemiz için bazı örnek sayfa ve sorgularınız var mı? Google arama sonuçlarında bir sig gösteriyor Ve eğer, o zaman olduğu o sayfanın kendisine alakalı olmasa bile söz konusu arama sorgusuyla alakalı.
DisgruntledGoat

1
Ben örnek veremem ama do yüksek rütbesine sitem / forum istiyoruz ve bunu çok güzel bir şekilde yapar. Sorun şu ki arama sonuçları arasında (bunlar çoğunlukla benim sitem / forumum için zaten, çünkü esasen konuyla ilgili site), gerçek giriş sayfalarının imzalar arasında su basması ne olması gerektiğidir. Yani, Ben do gerçekten söz konusu sorulan olanı yapmak istiyorum. Ve resimler veya JavaScript olacak.
WebbyTheWebbor

@Webby, cevaplarınız biraz kafa karıştırıcıydı, ancak kullanıcı imzalarınızın tümünün ayrı sayfalar (URL'ler) olduğunu ve dolayısıyla SERP'lerde ayrı sonuçlar olarak göründüğünü ima ediyor gibi görünüyorsunuz. Bu durumda, bu sayfaları robots.txt ile engelleyebilirsiniz. Aksi halde, yukarıda yayınladığım meta açıklama çözümünü deneyin, çünkü bu sorunu neredeyse kesinlikle azaltacaktır.
DisgruntledGoat

0

Sayfayı bir PHP'ye "if" yazıyorsa, if bölümü için anahtar veren bir captcha'ya yol açabilirsiniz.

Gerçekten umrumda değil çünkü kullanıcı kimlik bilgisi sayfamda uyuşmuyorsa boş bir sayfa alıyor veya giriş sayfasına gönderiliyor.

<?php
session_start();

if(empty($_SESSION['captcha']) or $_SESSION['captcha'] != $key){
    header("Location: captcha.php");
}

if(!empty($_SESSION['captcha']) and $_SESSION['captcha'] == $key){

"the page"

}
?>

$key mevcut günün bir karması veya değişen bir şey olmalıdır, bu nedenle oturuma değer eklemek yeterli değildir.

Şu anda üzerimde olmadığı için örnek bir captcha eklememi istiyorsan yorum yaz.


Bu cevap, web sitelerinin kullandığını veya geliştiricinin PHP'nin doğru olmayabileceğini bildiğini varsayar. Ayrıca, iyi bir şey olmayan kullanıcılar için içeriği zorlaştırıyor.
John Conde

Her birinin PHP bilmediğini ancak bir captcha'nın "çimlerin rengi nedir" olabileceğini, hatta kör pepole bile bildiğini satın alabilirim.
Alfons Marklén

-3

4
Hayır. Googleoff ve Googleon yalnızca Google Arama Cihazı tarafından desteklenir. Googlebot, web araması için onları görmezden gelir. Referans: Googlebot’un bir sayfanın bölümünü endekslemesini önlemek için googleon ve googleoff yorumlarını kullanabilir misiniz? Google Arama Cihazı dokümantasyonuna bağlandınız ve bağlantı verdiğiniz makaleyle ilgili bir yorum da Googlebot için çalışmadığını söylüyor.
Stephen Ostermiller

@StephenOstermiller oh doğru! Kahretsin
Luke Madhanga,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.