Обмежуємо доступ до сайту від - небажаних - ботів - seo форум

Багато веб-майстри (і я в тому числі) з метою прискорення індексації сторінок пошуковими системами, додають посилання на сторінки своїх сайтів в твіттер і фейсбук. Деякі роблять це вручну, деякі з допомогою програм і сервісів, шляхом додавання RSS-стрічок і т.д.

В результаті виходить реальний міні-ддос, коли протягом буквально кількох секунд цими ботами з вашого сервера запитуються десятки і сотні сторінок. Причому ці боти, хочу зауважити, ніякої користі крім навантаження на ваш сервер не дають.

Але це все, як то кажуть "не головне". Головне, що при детальному моніторингу логів і був виявлений факт великої кількості запитів від "лівих" ботів. Банити їх по IP сенсу не було, тому що у багатьох він часто змінювався. І тоді я знайшов рішення, яке до сих пір вірно і надійно рятує мої сайти від безлічі задалбивают ботів і відповідно набагато знижує навантаження на сервер.

У кореневій папці сайту був створений файл .htaccess з наступним змістом:


order allow, deny
allow from all

# Далі список юзерагентов яким ми забороняємо доступ

SetEnvIfNoCase User-Agent JS-Kit bad_bot
SetEnvIfNoCase User-Agent PostRank bad_bot
SetEnvIfNoCase User-Agent Python-urllib bad_bot
SetEnvIfNoCase User-Agent UnwindFetchor bad_bot
SetEnvIfNoCase User-Agent facebookexternalhit bad_bot
SetEnvIfNoCase User-Agent TweetmemeBot bad_bot
SetEnvIfNoCase User-Agent Butterfly bad_bot
SetEnvIfNoCase User-Agent MFE_expand bad_bot
SetEnvIfNoCase User-Agent Java bad_bot
SetEnvIfNoCase User-Agent Summify bad_bot
SetEnvIfNoCase User-Agent MetaURI bad_bot
SetEnvIfNoCase User-Agent FlipboardProxy bad_bot
SetEnvIfNoCase User-Agent ScribdReader bad_bot
SetEnvIfNoCase User-Agent RockMelt bad_bot
SetEnvIfNoCase User-Agent InAGist bad_bot
SetEnvIfNoCase User-Agent NING bad_bot
SetEnvIfNoCase User-Agent TweetedTimes bad_bot
SetEnvIfNoCase User-Agent PaperLiBot bad_bot
SetEnvIfNoCase User-Agent Library bad_bot
SetEnvIfNoCase User-Agent Ezooms bad_bot
SetEnvIfNoCase User-Agent strawberryj bad_bot
SetEnvIfNoCase User-Agent Scooper bad_bot
SetEnvIfNoCase User-Agent Ahrefs bad_bot
SetEnvIfNoCase User-Agent Spider bad_bot
SetEnvIfNoCase User-Agent None bad_bot
SetEnvIfNoCase User-Agent EventMachine bad_bot
SetEnvIfNoCase User-Agent aiHitBot bad_bot
SetEnvIfNoCase User-Agent SolomonoBot bad_bot
SetEnvIfNoCase User-Agent SearchBot bad_bot
SetEnvIfNoCase User-Agent Wget bad_bot
SetEnvIfNoCase User-Agent Crawler bad_bot

Order Allow, Deny
Allow from all
Deny from env = bad_bot

Просто беремо з цих даних шматок імені бота, у нас це буде "bingbot" і додаємо до нашого списку у файлі .htaccess наступний рядок:

SetEnvIfNoCase User-Agent bingbot bad_bot


Якщо у юзерагента, якому ви хочете заборонити доступ до сайту ім'я складається з двох слів, то їх потрібно просто взяти в ковичкі. Наприклад, сайт задалбивает бот з юзерагентом:

Mozilla / 5.0 (compatible; SISTRIX Crawler; httр: //crawler.sistrix.net/)


Пишемо в .htaccess наступну комбінацію:

Схожі статті