Verhindern, dass Roboter bestimmte Teile einer Seite crawlen


28

Als Webmaster, der für eine winzige Website mit einem Forum zuständig ist, erhalte ich regelmäßig Beschwerden von Nutzern, dass sowohl die interne Suchmaschine als auch die externen Suchanfragen (wie bei Google) durch die Signaturen meiner Nutzer (die sie lange verwenden) vollständig verschmutzt sind Unterschriften und das ist ein Teil der Erfahrung des Forums, weil Unterschriften in meinem Forum sehr sinnvoll sind.

Im Grunde sehe ich ab sofort zwei Möglichkeiten:

  1. Das Rendern der Signatur als Bild und das Klicken auf das "Signaturbild" führt zu einer Seite, die die echte Signatur enthält (mit den Links in der Signatur usw.), und diese Seite wird für die Suche als nicht durchsuchbar festgelegt Motorspinnen). Dies würde etwas Bandbreite verbrauchen und etwas Arbeit erfordern (weil ich einen HTML-Renderer benötigen würde, der das Bild usw. erzeugt), aber offensichtlich würde es das Problem lösen (es gibt winzige Probleme, da die Signatur das Schrift- / Farbschema von nicht respektiert Die Benutzer, aber meine Benutzer sind sowieso sehr kreativ mit ihren Signaturen, verwenden benutzerdefinierte Schriftarten / Farben / Größen usw., es ist also kein so großes Problem.

  2. Markieren Sie jeden Teil der Webseite, der eine Signatur enthält, als nicht durchsuchbar.

Ich bin mir jedoch nicht sicher, ob das später getan werden kann. Können Sie bestimmte Teile einer Webseite einfach als nicht durchsuchbar markieren?

Antworten:


8

Hier ist die gleiche Antwort, die ich auf das noindex-Tag für Google bei Stack Overflow gegeben habe:

Sie können verhindern, dass Google Teile der Seite sieht, indem Sie diese Teile in iFrames einfügen, die von robots.txt blockiert werden.

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.

Anstatt iframes zu verwenden, können Sie den Inhalt der versteckten Datei mit AJAX laden. Hier ist ein Beispiel, das dazu jquery ajax verwendet:

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>

Hilft das Hinzufügen / Injizieren von Steuerelementen mithilfe von AJAX, das Crawlen derselben zu unterbinden und zu verhindern?
Pranav Bilurkar

Solange der Ort, von dem der AJAX abruft, von robots.txt blockiert ist.
Stephen Ostermiller

Bitte überprüfen Sie diese webmasters.stackexchange.com/questions/108169/… und schlagen Sie gegebenenfalls vor.
Pranav Bilurkar

Solange der Ort, von dem der AJAX abruft, von robots.txt blockiert ist - Bitte erläutern Sie dies.
Pranav Bilurkar

2
Google bestraft diejenigen, die ihr Javascript vor dem Crawlen verbergen, um Missbrauch zu verhindern. Gilt das auch für iframes?
Jonathan

7

Eine andere Lösung besteht darin, das Sig in einen Span oder Div mit dem eingestellten Stil einzuwickeln display:noneund das dann mit Javascript zu entfernen, damit der Text für Browser mit eingeschaltetem Javascript angezeigt wird. Suchmaschinen wissen, dass es nicht angezeigt wird und sollten es daher nicht indizieren.

Dieses bisschen HTML, CSS und Javascript sollte es tun:

HTML:

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

CSS:

.sig {
display:none;
}

Javascript:

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

Sie müssen eine JQuery- Bibliothek einbinden .


4
+1 und ich habe darüber nachgedacht, aber würde das nicht von verschiedenen Spinnen als eine Art "Tarnung" angesehen werden?
WebbyTheWebbor


1
Ich finde es ganz ordentlich :-)
paulmorriss

Dies könnte im engeren Sinne als Verschleierung angesehen werden. Er konnte jedoch die gesamte Signatur mit einem document.write (""); mit Javascript drucken. Google indiziert nichts innerhalb von Javascript. support.google.com/customsearch/bin/…
Athoxx

Ich glaube, Google könnte solche Absätze indizieren, auch wenn sie mit CSS ausgeblendet werden. Am sichersten ist es, den Text überhaupt nicht in den HTML-Code aufzunehmen. (Wir können JavaScript verwenden, um den Text zur Laufzeit
einzufügen

3

Ich hatte ein ähnliches Problem, ich habe es mit CSS gelöst, aber es kann auch mit Javascript und jQuery gemacht werden.

1 - Ich habe eine Klasse erstellt, die ich " disallowed-for-crawlers" nennen werde, und diese Klasse in alles eingefügt, was der Google-Bot nicht sehen soll, oder in einen Bereich mit dieser Klasse.

2 - Im Haupt-CSS der Seite werde ich so etwas haben

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

3- Erstellen Sie eine CSS-Datei mit dem Namen disallow.css und fügen Sie diese zur robots.txt hinzu, damit sie nicht gecrawlt werden kann. Crawler greifen also nicht auf diese Datei zu, sondern fügen sie als Verweis auf Ihre Seite nach der Haupt-CSS hinzu.

4- disallow.cssIch habe den Code eingegeben:

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

Sie können mit Javascript oder CSS spielen. Ich habe gerade die Disallow- und die CSS-Klasse ausgenutzt. :) hoffe es hilft jemandem.


Ich bin mir nicht sicher, ob dies funktioniert, weil Crawler nicht auf die CSS-Datei zugreifen (ist das eine Sache? Seit wann greifen Crawler auf bestimmte CSS-Dateien zu und crawlen sie?) Und nicht einfach, weil Folgendes angezeigt wird: Keine und Crawler, die dies verstehen, werden nicht angezeigt sie indizieren es nicht. Selbst wenn dies der Fall ist, was tun Sie, um den Inhalt menschlichen Benutzern tatsächlich anzuzeigen?
Σπύρος ΓοΓλας

Der Inhalt wird angezeigt, wenn Schritt 4 für den menschlichen Benutzer geladen wird, da er diese Datei sehen darf (disallow.css). Und was die Roboter angeht, die CSS laden, wie es respektable Suchmaschinen heutzutage tun, so bestimmen sie, ob eine Website für Handys geeignet ist oder nicht. Crawler, die es nicht respektieren, sind es nicht wert, sich Sorgen zu machen. Wichtige Suchmaschinen lesen CSS und Javascript, um zu crawlen Seiten, machen sie das schon seit ungefähr ... fast 6 Jahren? vielleicht mehr.
Rolando Retana

Können Sie Quellen angeben, die diese Behauptung stützen? Bitte beachten Sie webmasters.stackexchange.com/questions/71546/... und yoast.com/dont-block-css-and-js-files und was am wichtigsten ist hier webmasters.googleblog.com/2014/10/... wo , was Sie beschreiben , porträtiert als schlechte Praxis.
Σπύρος ΓοΓλας

Es ist eine schlechte Praxis, wenn ich möchte, dass Google meine Website normal anzeigt und ich das gesamte CSS blockiere, und es ist eine schlechte Praxis, weil sie das CSS interpretiert. In diesem speziellen Fall blockiere ich jedoch eine bestimmte Datei, nicht die gesamte CSS Informationen zum Verhindern, dass Google einen Abschnitt der Seite liest. Ich möchte jedoch nicht, dass Google diese Abschnitte crawlt, sodass ich nur einen einzigen CSS-Code blockiere (nicht alle, nur einen). Und um Ihre Behauptung zu bestätigen? die, die Crawler JS und CSS lesen? Gehen Sie einfach zu Ihren Google Webmaster-Tools und schauen Sie sich "Fetch as a robot" an. Dort sehen Sie, wie sie CSS und JS lesen.
Rolando Retana

Außerdem möchte ich in meinem speziellen Fall nicht, dass ich etwas Schattiges mit dem Google Crawler mache. Ich möchte nur nicht, dass Google einen Informationsabschnitt liest, der sich auf allen Seiten wiederholt. Wie Telefonnummern, Adressen, verwandte Produkte oder Informationen, die für das Crawlen durch Google nicht relevant sind.
Rolando Retana

2

Eine Möglichkeit, dies zu tun, ist die Verwendung eines Textbilds anstelle von einfachem Text.

Es ist möglich, dass Google irgendwann schlau genug sein wird, um den Text aus dem Bild herauszulesen, so dass es möglicherweise nicht vollständig zukunftssicher ist, aber es sollte für mindestens eine Weile gut funktionieren.

Dieser Ansatz hat eine Reihe von Nachteilen. Wenn eine Person sehbehindert ist, ist es schlecht. Wenn Sie möchten, dass sich Ihr Inhalt an mobile Geräte und nicht an Desktop-Computer anpasst, ist dies schlecht. (und so weiter)

Aber es ist eine Methode, die derzeit (etwas) funktioniert.


Wie gut funktioniert das, wenn Sie alt & title tage entsprechend verwenden?
Jayen

Ich habe es nicht versucht, aber es scheint wahrscheinlich, dass Google diese crawlen würde. Dies ist eine wesentliche Einschränkung dieses Ansatzes.
James Foster

1

Das ist einfach.

Bevor Sie Ihre Seite bereitstellen, müssen Sie wissen, ob es sich um einen Bot, einen Computer oder ein Telefon handelt. Sie müssen dann den Inhalt entsprechend einstellen. Dies ist heutzutage die Standardpraxis und die Kernfunktionalität einiger CMS.

Es gibt auf SE viele Lösungen für die Weiterleitung basierend auf USER AGENT, die in Ihren htaccess eingefügt werden können. Wenn dies für Ihre Forensoftware geeignet ist, können Sie verschiedene Codes aus derselben Datenbank ausführen, um die von Google benötigten Informationen ohne Spreu und Schnipsel bereitzustellen.

Alternativ können Sie eine kleine Zeile in Ihren PHP-Code einfügen, die ein 'wenn USER AGENT == Googlebot dann keine Signaturen zeigt'.

Wenn Sie das wirklich nicht können, können Sie mod_proxy dazu bringen, dem Bot zu dienen und damit alles zu entfernen, was Ihr PHP-Code generiert, das der Bot nicht sehen muss.

Technisch gesehen ist Google nicht damit einverstanden, dass in der Suchmaschine eine andere Seite angezeigt wird als beim normalen Website-Besucher. Bisher hat Google jedoch die BBC und andere Anbieter von browserspezifischen / IP- / besucherspezifischen Inhalten nicht aus den Suchmaschinenergebnissen entfernt . Sie haben auch nur begrenzte Möglichkeiten, um festzustellen, ob ihr Bot "betrogen" wurde.

Die alternative Lösung, Inhalte mit CSS auszublenden, damit sie durch ein Skript wieder aktiviert werden können, ist ebenfalls eine Grauzone. Nach den eigenen Richtlinien für Webmaster-Tools vom 20.6.11 ist dies keine gute Idee:

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

Das ist vielleicht keine in Stein gemeißelte Tablette, aber es ist auf dem neuesten Stand und von Google.

Das Ausblenden des Inhaltstricks funktioniert nicht bei einer Minderheit von Personen, die kein Javascript haben. Dies ist möglicherweise kein großes Problem. Das Warten auf das Laden des Dokuments und das Anzeigen der Signaturen ist jedoch kein zufriedenstellendes Anzeigeerlebnis Denke, die Seite wurde geladen, dann springt sie herum, während die verborgenen Signaturen auftauchen, um dann den Inhalt auf der Seite nach unten zu verschieben. Diese Art des Ladens von Seiten kann irritierend sein, wenn Sie ein Low-End-Netztop haben, ist jedoch möglicherweise nicht erkennbar, wenn Sie einen schnellen Entwicklercomputer mit einer schnellen Internetverbindung haben.


6
@ ʍǝɥʇɐɯ: Je nachdem, wer auf die Seite zugreift, werden unterschiedliche Inhalte angezeigt. Soweit ich das verstehe, werden Sie möglicherweise in Suchmaschinen bestraft. Ich bevorzuge die JavaScript-Lösung von Paulmorris.
WebbyTheWebbor

@ ʍǝɥʇɐɯ: erf, wenn personalisierte Inhalte bereitgestellt werden, ist dies auch bei JavaScript der Fall. Zuletzt habe ich überprüft, dass das Web insgesamt ohne JavaScript nicht mehr so ​​gut funktioniert (GMail, FaceBook, Google Docs, Stapelüberlauf, Google+ - ja, ich habe es schon;) - usw.). Ich sehe keinen Grund, die Lösung von paulmorris zu kritisieren, die auf der falschen Annahme basiert, dass JavaScript nicht verfügbar sein könnte.
WebbyTheWebbor

@ ʍǝɥʇɐɯ: Das könnte dir von Matt Cutts (verantwortlich für SEO bei Google) zu diesem Thema gefallen : theseonewsblog.com/3383/google-hidden-text Das war der ausgezeichnete Kommentar von paulmorris, der in einem Kommentar zu seiner ausgezeichneten Antwort gepostet wurde. Es tut mir leid, aber wenn ich JavaScript in einem solchen Forum als "albern" bezeichne, kommt das einem Trolling gleich.
WebbyTheWebbor

... und dann bekommen wir diese Frage: webmasters.stackexchange.com/questions/16398/… - 'Keyword Stuffing' ist albern. Das tut mir leid.
4.

Ich glaube, dies fällt unter "Tarnung" und ist daher keine gute Praxis.
Σπύρος ΓοΓλας

0

Nein, es gibt keine Möglichkeit, das Crawlen von Seitenteilen durch Roboter zu verhindern. Es ist eine ganze Seite oder nichts.

Die Snippets in den Suchergebnissen von Google stammen normalerweise aus der Meta-Beschreibung auf der Seite. Sie können also festlegen, dass Google einen bestimmten Teil der Seite anzeigt, indem Sie diesen in das Meta-Description-Tag einfügen. Bei benutzergenerierten Inhalten ist es schwierig, gute Snippets zu erhalten, aber es würde wahrscheinlich funktionieren, den ersten Beitrag des Threads zu schreiben.

Die einzige andere Möglichkeit, die ich mir vorstellen kann, ist die Verwendung von Javascript. So etwas wie das von Paulmorriss vorgeschlagene könnte funktionieren, aber ich denke, Suchmaschinen würden den Inhalt immer noch indizieren, wenn er im HTML ist. Sie können es aus dem HTML-Code entfernen, in der Javascript-Zeichenfolge speichern und dann beim Laden der Seite wieder hinzufügen. Das wird allerdings etwas komplex.

Abschließend ist Folgendes zu beachten: Wenn Google die Signaturen der Benutzer in ihren Snippets anzeigt, hat Google entschieden, dass dies der Teil ist, der für die Abfrage des Benutzers am relevantesten ist.


1
Das Problem ist nicht so sehr, dass Google die Sigs der Nutzer in ihren Snippets anzeigt, sondern vielmehr, dass diese spezifischen Seiten in erster Linie einen so hohen Rang bei Google erhalten. Das Problem hierbei ist genau, dass Google vielleicht denkt, dass die Zeichen relevant sind, wenn sie nicht relevant sind: Ich meine, genau darum geht es in meiner Frage.
WebbyTheWebbor

@Webby, ich verstehe nicht, warum möchten Sie nicht, dass Ihre Seiten ein hohes Ranking haben? Haben Sie Beispielseiten und Fragen, damit wir sehen können, wovon Sie sprechen? Und wenn Google eine sig in den Suchergebnissen zeigt, dann ist relevant für die Suchabfrage, auch wenn es auf der Seite selbst nicht relevant ist.
DisgruntledGoat

1
Ich kann keine Beispiele nennen, aber ich möchte, dass meine Site / mein Forum einen hohen Rang einnimmt, und das ist auch sehr gut so. Das Problem ist, dass bei den Suchergebnissen (die sowieso alle hauptsächlich für meine Site / mein Forum sind, da es sich im Grunde um die Site zum Thema handelt) die eigentlichen Einstiegsseiten zwischen den Signaturen überflutet werden sollten. Ich meine, ich möchte wirklich das tun, was ich in der Frage gefragt habe. Und Bilder oder JavaScript wird es sein.
WebbyTheWebbor

@Webby, Ihre Antworten waren ein wenig verwirrend, aber Sie scheinen zu implizieren, dass Ihre Benutzersignaturen alle separate Seiten (URLs) sind und daher in SERPs als separate Ergebnisse angezeigt werden. In diesem Fall können Sie diese Seiten über robots.txt blockieren. Andernfalls versuchen Sie es mit der oben angegebenen Meta-Beschreibungslösung, da dies mit ziemlicher Sicherheit das Problem lindern wird.
DisgruntledGoat

0

Sie können die Seite in ein PHP-if mit einem "else" einfügen, das zu einem Captcha führt, das den Schlüssel für den if-Teil enthält.

Es ist mir egal, denn wenn die Benutzeranmeldeinformationen auf meiner Seite nicht übereinstimmen, erhalten sie eine leere Seite oder werden an die Anmeldeseite gesendet.

<?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 sollte ein Hash des aktuellen Tages sein oder sich ändern, sodass es nicht ausreicht, den Wert der Sitzung hinzuzufügen.

Schreiben Sie in den Kommentar, ob ich ein Beispiel-Captcha hinzufügen soll, da ich noch keines habe.


Diese Antwort setzt voraus, dass die Websites PHP verwenden oder der Entwickler PHP kennt, was möglicherweise nicht stimmt. Außerdem wird es für Benutzer schwierig, zu den Inhalten zu gelangen, was keine gute Sache ist.
John Conde

Ich kann kaufen, dass nicht jeder PHP kann, aber ein Captcha kann "was ist die Farbe des Grases" sein, selbst blinde Leute wissen das.
Alfons Marklén

-3

4
Googleoff und Googleon werden nur von der Google Search Appliance unterstützt. Googlebot ignoriert sie für die Websuche. Referenz: Können Sie Googleon- und Googleoff-Kommentare verwenden, um zu verhindern, dass Googlebot einen Teil einer Seite indiziert? Sie haben auf die Dokumentation zur Google Search Appliance verwiesen und in einem Kommentar zu dem Artikel, auf den Sie verwiesen haben, heißt es, dass er für Googlebot nicht funktioniert.
Stephen Ostermiller

@StephenOstermiller oh richtig! Darn
Luke Madhanga
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.