Na naszym hostingu SEO są domyślnie blokowane roboty analizujące zaplecze: Majestic SEO, ahrefs, SeoMoz itp. Możesz jednak chcieć zablokować inne boty lub posiadasz inny rodzaj hostingu i chcesz dokonać blokady. Poniższy poradnik pokaże Ci jak to zrobić.
Wszystkie poniższe reguły blokowania należy dodać w pliku .htaccess w katalogu public_html dla danej domeny.
Na naszych serwerach hostingowych zainstalowany jest LiteSpeed. Aby zablokować boty, należy użyć wpisu do pliku .htaccess:.
RewriteCond %{HTTP_USER_AGENT} ^(nazwa_bota|nazwa_innego_bota) [NC]
RewriteRule .* - [F]
Fragmenty wpisów "nazwa_bota" lub "nazwa_innego_bota" należy zamienić na faktyczne nazwy botów, lub fragmenty tych nazw.
Korzystają z takiego zapisu, przy połączeniu serwer sprawdzi zawartość nagłówka User-Agent, jeśli jakiś jego fragment pasuje do ciągu znaków spisanych w powyższych formułach, do serwera odpytującego zostanie zwrócony błąd 403.
Powyższy zapis może być oczywiście dłuższy (posiadać więcej wierszy) lub więcej nazw botów w nawiasach, w zależności do potrzeb.
Innym sposobem poza modułem mod_setenvif jest wykorzystanie RewriteCond i RewriteRule.
RewriteRule to reguły przepisywania adresów URL, są one wykonywane jedna po drugiej. Jest jednak możliwość umieszczenia L w nawiasach kwadratowych na końcu wiersza [L], oznacza to daną regułę jako ostatnią i kolejnie nie będą wykonywane.
RewriteCond to opcjonalny warunek, który musi być spełniony, aby zostały wykonane reguły zawarte w RewriteRule. Warunki umieszczane są przed RewriteRule i sprawdzane są jeden po drugim. RewriteRule jest wykonywane, jeśli wszystkie warunki zostały spełnione. Tak, jak w przypadku RewriteRule powyżej i tutaj można umieścić na końcu linii dodatkowe zapisy. Warunki zawarte w RewriteCond dotyczą tylko pierwszej reguły zapisanej w RewriteRule, zaraz po warunkach.
W przypadku RewriteRule i RewriteCond w nawisach kwadratowych mogą znajdować się oznaczenia:
Przykładowy zapis w .htaccess przy wykorzystaniu RewriteCond i RewriteRule będzie wyglądał następująco.
RewriteEngineOnRewriteCond %{HTTP_USER_AGENT} .*nazwa_bota* [NC,OR]RewriteCond %{HTTP_USER_AGENT} .*nazwa_innego_bota* [NC]RewriteRule ^.* - [F,L]
Oznacza to: jeśli nazwa user agenta zawiera "nazwa_bota" lub [OR] "nazwa_innego_bota" (wielkość znaków nie ma znaczenia [NC]), zwróć błąd 403 [F] i zakończ wykonywanie RewriteRule [L].
Niekiedy roboty nie mają uzupełnionego User-Agent, dzięki czemu nie będą blokowane przez poprzednie wpisy. Aby takie boty zablokować, należy do pliku .htaccess dodać następujący wpis.
RewriteEngineOnRewriteCond %{HTTP_REFERER} ^-?$ [NC]RewriteCond %{HTTP_USER_AGENT} ^-?$ [NC]RewriteRule .* - [F,L]
Wpis blokuje roboty z pustym User-Agent i User-Refferer, dzięki temu nie będą blokowani użytkownicy korzystający ze starych programów antywirusowych. Niektóre mogą blokować User-Agent użytkownika.
Część robotów podszywa się pod przeglądarki internetowe, takie jak: Mozilla Firefox, Opera, czy Google Chrome. Całego ruchu z danej przeglądarki nie powinno się blokować, z oczywistej przyczyny - zablokowani zostaną również odwiedzający stronę, korzystający z danej przeglądarki.
W takim wypadku można zablokować adres IPv4 lub IPv6, z którego łączy się dany bot. Można to osiągnąć poprzez dodanie poniższego wpisu do .htaccess.
Deny from "Adres IPv4"Deny from "Adres IPv6"
Oczywiście "Adres IPv4" lub "Adres IPv6" należy zamienić na faktyczny adres IP.
Dodatkowo do .htaccess można również w głównym katalogu domeny dodać plik robots.txt, dzięki temu plikowi można zezwolić lub zablokować dostęp robotom do danej strony, lub konkretnych plików czy katalogów.
Ten zapis zezwala wszystkim robotom na dostęp do całej strony, tak samo byłoby w przypadku braku pliku robots.txt.
User-agent: *Allow:
Poniższy wpis działa całkowicie przeciwnie do poprzedniego. Blokuje wszystkim robotom dostęp do całej strony.
User-agent: *Disallow: /
Poniższy wpis blokuje dostęp do katalogów "pliki" oraz "zdjecia" w głównym katalogu domeny.
User-agent: *Disallow: /pliki/Disallow: /zdjecia/
Ostatnim przedstawionym w tym tekście przykładów, jest blokada dostępu do danego pliku na domenie. Jako przykład podałem plik "strona.html" w katalogu "pliki".
User-agent: *Disallow: /pliki/strona.html
Powyższe przykłady można rozszerzać o kolejne katalogi czy pliki, do których chcesz zablokować dostęp. Nie ma tutaj limitu na ilość zablokowanych elementów.