Blokowanie robotów sieciowych
Większość robotów wyszukiwarek akceptuje ustawienia zawarte w pliku o nazwie robots.txt umieszczonym w katalogu public_html danej domeny. Plik blokujący roboty Yandex i Yahoo wygląda następująco:
User-agent: Yandex
Disallow: *
User-agent: Slurp
Disallow: *
Uwaga! Działanie pliku nie jest natychmiastowe, roboty sieciowe pobierają jego zawartość w pewnych odstępach czasu.
Instrukcje dla pozostałych robotów można odnaleźć w sieci, wpisując w wyszukiwarkę "[nazwa robota] robots.txt".
Blokada w pliku .htaccess
Jeżeli robot nie akceptuje zasad zawartych w pliku robots.txt, można włączyć dodatkową blokadę dostępu do hostingu przez dopisanie odpowiednich reguł w pliku .htaccess umieszczonym w katalogu public_html danej domeny. Składnia wygląda następująco:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^Twiceler [OR]
RewriteCond %{HTTP_USER_AGENT} ^Yandex [OR]
RewriteCond %{HTTP_USER_AGENT} ^Yahoo
RewriteRule .* - [F]
Nazwy robotów wpisujemy podając wyrażenie regularne (w powyższym przykładnie blokujemy wszystkie roboty, których user-agent zaczyna się od "Twiceler", "Yandex" i "Yahoo"). Powyższe linie powinny znajdować się przed innymi regułami mod_rewrite w pliku .htaccess.
Żądania zawierające zablokowane user-agent są widoczne w logach ze statusem 403 Forbidden. Dzieje się tak, ponieważ serwer i tak musi obsłużyć żądanie HTTP. Skrypty PHP nie są już wykonywane i nie zużywają zasobów.
Uwaga! Zablokowanie programu wget uniemożliwi wykonywanie zadań Cron na serwerze!
Odblokowanie robotów zablokowanych na serwerze
Niektóre roboty sieciowe, np. MJ12bot zostały odgórnie zablokowane na wszystkich serwerach w ramach naszego hostingu. Aby je odblokować, należy umieścić wpis w pliku .htaccess:
SetEnvIfNoCase user-agent "MJ12bot" !bad_bot
Lista zablokowanych domyślnie robotów
SiteBot, Speedy Spider, MJ12bot, DotBot, AhrefsBot, BLEXBot, Xenu, sistrix, SentiBot, AnoMail, Nekstbot, Httpcomponents, SemrushBot