Veröffentlichungsdatum: 25. März 2020
Änderungsdatum: 20. September 2024
weblication cms robots bots blocken blockieren webcrawler crawler
Unerwünschte Bots lassen sich in Weblication® direkt über die Projektkonfiguration filtern, um die Serverlast zu reduzieren.
Hierzu tragen Sie in aktuellen BASE Classic bzw. BASE (Mobile First) Projekten einfach die Namen der Robots in der
Projektkonfiguration ein. Projekte, welche diese Möglichkeit noch nicht haben, können manuell nachgerüstet werden.
Über die globale Steuerungsdatei (pre.php), welche die Funktion zum Filtern aufruft (siehe unten), werden auf Grundlage der in der Projektkonfiguration eingetragenen Werte die angegebenen User-Agent Strings beim Aufruf von Seiten gefiltert und entsprechend geblockt (im Standard ein Status 403).
Die Einstellung zum Filtern von unerwünschten Bots erfolgt über den UserAgent String. In aktuellen BASE Classic und BASE (Mobile First) Projekten finden Sie die Einstellung in der Projektkonfiguration (siehe Screen nebenan). Weiter unten finden Sie den Quelltext zum Nachrüsten in älteren Projekten.
Im Feld tragen Sie den eindeutigen String ein, welcher gefiltert werden soll. Meist handelt es sich dabei um unerwünschte Bots.
Ein UserAgent-String kann z.B. so aussehen (MJ12Bot):
Mozilla/5.0 (compatible; MJ12bot/v1.2.4; http://www.majestic12.co.uk/bot.php?+)
Diesen müssen Sie nicht im gesamten eintragen, da die Einträge im Feld über die filterBots() Funktion mit regulären Ausdrücken abgefragt werden. Es reicht somit der kurze, aber eindeutige String, wie z.B. MJ12Bot.
Mehrere Einträge trennen Sie durch das Pipe-Zeichen, was dann z.B. so aussehen kann:
MJ12Bot|AhrefsBot|DomainCrawler|SEOkicks|SEMrushBot|Sogou|BLEXBot|PetalBot|DotBot|SeekportBot|serpstatbot
<headline text="Filter"/> <variable description="Zu blockierende Bots" key="bots_block_regExp" type="char.default">MJ12Bot|AhrefsBot|DomainCrawler|SEOkicks|SEMrushBot|Sogou|BLEXBot|PetalBot|DotBot|SeekportBot|serpstatbot|GPTBot</variable> <info>Beispieleintrag über | getrennt: MJ12Bot|AhrefsBot|DomainCrawler|SEOkicks|SEMrushBot|Sogou|BLEXBot|PetalBot|DotBot|SeekportBot|serpstatbot<br/>Prüfen Sie bei jeder Änderung, ob der Zugriff über einen Standardbrowser noch möglich ist.</info>
Im Global-Projekt wird in der wMyProject.php die filterBots() Funktion definiert.
Aktuelle Projekte haben dies bereits definiert. In älteren Projekten setzen Sie diese Funktion manuel als erste Funktion in der genannten Datei.
Sie finden diese im Projekt unter /[IHR-LAYOUT-PROJEKT]/wGlobal/scripts/php/wMyProject.php.
Im Global-Projekt wird in der pre.php die filterBots() Funktion aufgerufen.
Aktuelle Projekte haben dies bereits definiert. In älteren Projekten
setzen Sie diese Funktion manuel als erste Funktion in der genannten
Datei.
Sie finden diese im Projekt unter /[IHR-LAYOUT-PROJEKT]/wGlobal/scripts/pre.php.
Sollte Ihr Projekt diese Möglichkeit noch nicht vorbereitet haben, können Sie dies aus einem aktuellen Projekt übernehmen.
Gerne kann Ihnen auch der Weblication® CMS Support über eine kostenpflichtige Projektdienstleistung weiterhelfen.
Die Namen der unerwünschten Bots können Sie übrigens im Weblication® Monitoring oder auch direkt in den access-logs auf dem Webserver finden.
Die Blockierung von Bots kann auch manuell direkt über die pre.php umgesetzt werden (nach dem wMyProject.php Include und Error-Handlung Eintrag):
// Bots blockieren (weitere Bots ggf. ergänzen)
if(preg_match('/MJ12Bot|AhrefsBot|DomainCrawler|SEOkicks|SEMrushBot|Sogou|BLEXBot|PetalBot|DotBot|SeekportBot|serpstatbot|GPTBot/i', $_SERVER['HTTP_USER_AGENT'])){
header('HTTP/1.1 403 Forbidden');
header('Status: 403 Forbidden');
exit;
}