webCONSUL

the best webCONSUL(ting)

Böser Bot! Scraper aus Deinem Blog ausschließen

Sie sind hier: Startseite » Archiv für content

Seit einiger Zeit tummeln sich diverse Crawler auf meinem Blog, die meine Inhalte übernehmen und auf anderen Seiten veröffentlichen.
Das wäre ja kein Problem, wenn man das entsprechend mit angibt.

Daher habe ich nun folgende drei Schritte unternommen um automatisches Scrapen zu erschweren:

  1. RSS-Feed auf Kurzfassung umgestellt: Admin-Panel -> Einstellungen -> Lesen -> Newsfeed Kurzfassung
  2. Yoasts RSS Footer Plugin um einen Link und eine Ursprungsnotiz hinzuzufügen
  3. Die index.php von WordPress folgendermaßen modifiziert:


<?php
// Bots und Scraper ausschliessen:
function botcheck($ua) {
  $matches = array("java", "libwww", "perl", "curl");
  for($i=0; $i<sizeof($matches); $i++)
    if(stristr($ua, $matches[$i])) {
      return true;
    } else {
      return false;
    }
}

if(botcheck($_SERVER['HTTP_USER_AGENT'])) {
  echo "Böser Bot: geh weg!<br/>Falls Du doch kein Bot bist, überprüfe bitte deinen User-Agent.";
} else {
  define('WP_USE_THEMES', true);
  require('./wp-blog-header.php');
}
?>

Ist zwar im Sinne der Rechenleistung und Website-Geschwindigkeit nicht optimal, aber zumindest werden alle Bots die sich im User-Agent mit Java, Perl und vielem mehr ausgeben entsprechend mit einer Meldung abserviert.
Die Modifizierung muss direkt in der Index-Datei im WordPress-Root-Verzeichnis gemacht werden, da diese die restliche Auslieferung vorantreibt. Im WordPress Theme selbst funktioniert das nicht.

Klar, das löst nicht alle Probleme, aber zumindest erschwert es die Sache etwas und plumpes Content-Scraping funktioniert damit nun nicht mehr.

Schauen wir mal, welcher Bot zuerst seinen User-Agent umstellt ;-)

PS: Natürlich werden einige Bots auch über die robots.txt blockiert, aber Scraper halten sich leider nicht daran ;-)

Update auf WordPress 3.0

Sie sind hier: Startseite » Archiv für content

Soeben habe ich eine menge Blogs auf das neue WordPress 3.0 mit dem Releasenamen “Thelonious” in der de_DE-Version portiert.

Bei den meisten Blogs hat das Upgrade problemlos funktioniert, nur bei einem leider nicht.
Der Blog zeigt an sich nur statische Seiten an, weswegen ich mein Template so umgebogen habe, dass es keine weiteren Funktionen gibt und lediglich eine Theme-Datei geladen werden muss.

Um möglichst viele Rechenoperationen zu sparen hatte ich im Design für die Anzeige des Contents lediglich geschrieben:

Das führte dazu, dass nach dem Update der gesamte Content nicht angezeigt wurde.

Das Problem lässt sich einfach lösen, wenn man den Inhalt mit folgendem Code anzeigt:

Rechnet zwar ein paar Millisekunden länger aber das sollte keine Probleme machen.

Daher noch ein paar Empfehlungen für eine schnelle Auslieferung:

  • Fasst so viele Dateien zusammen, wie möglich. Dies sowohl bei den CSS- als auch JS-Files aber auch unbedingt die internen PHP-Aufrufe minimieren.
  • Installiert das WP-Cache-Plugin um möglichst viele Seiten statisch auszuliefern
  • Komprimiert euren Code
  • Optimiert eure Datenbank und euren Webserver auf minimale Timeouts, sodass diese lediglich so lange laufen wie nötig, aber so kurz wie möglicht.

    Hat jemand noch mehr Tips dazu?

    Beste Grüße!
    Peter