Захистіть свої об'єкти - блокування небажаних ботів - Ahrefs, MajesticSEO та інших
- Перш за все: масло robots.txt
- Блокувати мудро - дайте доступ тільки вибраним ботам
- Блокування ботів на серверах nginx
У мережі можна знайти приклади дуже довгих записів htaccess, які містять найпопулярніші сканери та інші. Особисто я вважаю, що створення таких записів не має сенсу, оскільки файл htaccess стає менш читабельним. І в такому файлі можна знайти інші, більш довгі записи, напр. прискорення сторінки ,
Перш за все: масло robots.txt
У файлах robots.txt вона ніколи не блокує роботів. Причина проста. Він не завжди поважається. Ось чому я не витрачаю свого часу на ігри в кішки і миші.
Тому найкращий метод, тому що блокування з сервера - це файл htaccess.
Блокувати мудро - дайте доступ тільки вибраним ботам
Як я писав раніше, немає сенсу створювати довгий список, тому що достатньо представити бота по-іншому (наприклад, інший user-agent) і нам потрібно змінити файл - додавання або редагування відповідного рядка. Я вже не згадую про пошук правильних імен.
Вдома на блозі, як і на інших веб-сайтах, я дозволяю лише три боти: Google, Yahoo, Bing. Решта не можуть отримати доступ до сайту.
Так виглядає файл htaccess:
* Google. * Search_robot SetEnvIfNoCase User-Agent. * Yahoo. * Search_robot SetEnvIfNoCase User-Agent. * BingBot. * Search_robot SetEnvIfNoCase User-Agent. від env = search_robot
Раптом кілька рядків :). Особисто я вважаю, що це дуже акуратне рішення.
Оновлення: Завдяки Даміану, виходить, що ви повинні додати одне правило, щоб дозволити браузерам. На моєму сервері він працює коректно, але на інших він кине 403 помилку.
Звичайно, ми можемо перевірити, чи все працює правильно. Це можна зробити за допомогою скручування. Нижче наведено код для перевірки наявності бота Ahrefs на нашому сайті.
curl -A "AhrefsBot" http://seoninja.pl
Тоді у відповідь ми отримаємо інформацію про відсутність доступу до сторінки - означає помилку 403.
Якщо хтось дивився, то боти Ахрефс і МажестисЕО такі:
Ahrefs: (сумісний; AhrefsBot / 2.0; + http: //ahrefs.com/robot/) MajesticSEO: (сумісний; MJ12bot / v1.4.0; http://www.majestic12.co.uk/bot.php?+)
Блокування ботів на серверах nginx
Оновлення: W коментарі з'явилася версія для nginx. Я його не перевіряв. Нижче наведено красиво відформатований код.
http {карта $ http_user_agent $ bad_bot {за замовчуванням 1; ~ * ^ google 0; ~ * ^ yahoo 0; ~ * ^ BingBot 0; ~ * ^ Mozilla 0; ~ * ^ Googlebot 0; }}
Потім додайте блок сервера - для певних сторінок:
server {if ($ bad_bot) {return 444; }}
Завдяки Piotr за версію для nginx.
Php?