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:
- RSS-Feed auf Kurzfassung umgestellt: Admin-Panel -> Einstellungen -> Lesen -> Newsfeed Kurzfassung
- Yoasts RSS Footer Plugin um einen Link und eine Ursprungsnotiz hinzuzufügen
- 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