Купить Корзина
Логотип REG.RU
  • Вход
  • Помощь
  • Классические VPS
  • Проблемы с VPS
  • Как снизить число запросов, ограничив доступ роботам на VPS

Как снизить число запросов, ограничив доступ роботам на VPS

Индексация сайта — важный элемент продвижения в поисковых системах. Индексируются сайты с помощью поисковых роботов (ботов), которые обращаются ко всем страницам ресурса и тем самым создают нагрузку на сервер.

Кроме поисковых роботов существуют спам-боты, которые публикуют спам на сайте или собирают открытые данные (напр. email`ы пользователей) для спам-рассылки. Чем популярнее ваш сайт, тем больше поисковых ботов его посещают.

Есть несколько способов как снизить нагрузку от поисковых ботов:

С помощью файла robots.txt

Файл robots.txt содержит в себе правила для поисковых роботов, с помощью которых можно ограничить количество и промежуток времени между индексациями сайта или вовсе её запретить. Как настроить robots.txt

С помощью тега robots

Тег robots управляет индексацией конкретной страницы. Данный тег необходимо добавить в разметку самой страницы с необходимыми параметрами:

страница индексируется, робот идёт по ссылкам с этой страницы:
<meta name="robots" content="index, follow"/>
страница не индексируется, но робот идет дальше по ссылкам.
<meta name="robots" content="noindex, follow"/>
страница индексируется, но робот не идёт по ссылкам на другие страницы, т.е. он их не индексирует.
<meta name="robots" content="index, nofollow"/>
страница не индексируется, робот по ссылкам не идёт. Если поместить такой код на все страницы сайта, он не проиндексируется.
<meta name="robots" content="noindex, nofollow"/>

С помощью .htaccess или nginx

Если ваш сервер работает в связке apache + nginx, рекомендуем использовать блокировку через htaccess. Для сервера, который использует nginx + php-fpm, блокировку необходимо произвести с помощью nginx. Чтобы настроить блокировку с помощью .htaccess или nginx, необходимо выяснить *User-Agent`ов*, которые создают нагрузку на сервер. Преимущества .htaccess и nginx в том, что блокировка происходит на уровне сервера и данное ограничение срабатывает во всех случаях, в отличии от robots.txt, который многие роботы игнорируют.

Получить список запросов можно с помощью скрипта, который отсортирует их, начиная с самых частых.

Вывести список User-Agent`ов по названию:

cat /var/www/httpd-logs/faq-reg.ru.access.log |/usr/bin/awk {'print $12'} | sort -n | uniq -c | sort -rn | head -20

Вывести список IP-адресов, с которых поступают запросы:

cat /var/www/httpd-logs/faq-reg.ru.access.log |/usr/bin/awk {'print $1'} | sort -n | uniq -c | sort -rn | head -20

Вместо faq-reg.ru.access.log укажите вашего файла с логами.

Внимание
Расположение логов зависит от настроек вашего сервера. Для пользователей с панелью управления ISPmanager файлы располагаются в директории: /var/www/httpd-logs/

Блокировка через .htaccess

Для блокировки с помощью .htaccess необходимо добавить правила в файл. В случае отсутствия вы также можете создать его, воспользовавшись инструкцией: У меня нет файла .htaccess, что делать.

Для каждого бота, который необходимо заблокировать, добавьте в файле .htaccess строки:

SetEnvIfNoCase User-Agent "^Name_of_bot_1" bad_bot

SetEnvIfNoCase User-Agent "^Name_of_bot_2" bad_bot

<Limit GET POST HEAD> 
Order Allow,Deny 
Allow from all
Deny from env=bad_bot
Deny from 123.123.123.123
</Limit>

где на место Name_of_bot_1 и Name_of_bot_2 подставлены названия User-Agent`ов, а для блокировки по IP-адресу в строке «Deny from 123.123.123.123» указан нужный IP.

Сохраните изменения.

Блокировка через nginx

Для блокировки с помощью nginx необходимо добавить правила в файл конфигурации виртуального хоста faq-reg.ru.conf, где faq-reg.ru — имя вашего домена.

Внимание
Расположение файла конфигурации зависит от настройки вашего сервера. Если у вас заказана панель управления ISPmanager, конфигурационные файлы находятся в директории: /etc/nginx/vhosts/username/

Данные правила можно добавить в любую часть конфигурационного файла начиная с http {}. Добавьте в файл конфигурации следующие строки:

if ($http_user_agent ~* (AhrefsBot|majestic) ) {

    return 403;
}

Вместо AhrefsBot|majestic укажите названия User-Agent`ов.

Чтобы заблокировать определенный IP-адрес, необходимо добавить:

deny 123.123.123.123;

Вместо 123.123.123.123 укажите IP-адрес блокируемого хоста.

Для блокировки локальных IP-адресов:

location / {
  # блокировка одного локального адреса
  deny    192.168.1.1;
  # блокировка всех адресов подсети 192.168.1.0/24
  allow   192.168.1.0/24;
  # блокировка всех IP адресов
  deny    all;
}
Помогла ли вам статья?
ДаНет
раз уже
помогла

Спасибо за оценку!
Как мы можем улучшить статью?

Нужна помощь?
Напишите в службу поддержки!

Рассылка REG.RU

Лайфхаки, скидки и новости об IT

Подписываясь, вы принимаете правила рассылок

Услуги
  • Стоимость услуг
  • Хостинг
  • Зарегистрировать домен
  • Создание сайтов
  • REG.Site
  • VPS
  • Серверы и ДЦ
  • SSL-сертификат
Помощь
  • База знаний
  • Шаблоны заявлений
  • Оставить отзыв, предложение
  • Сообщить о нарушении
Партнерам
  • Партнерские программы
  • Профессионалам IT
  • Бонусная программа
  • REG.API
  • Промоматериалы
Полезное
  • Акции и скидки
  • Мероприятия
  • Юридические услуги
  • Юридическим лицам
  • ЭДО
  • Whois
REG.RU
  • О компании
  • Контакты и офисы
  • Новости
  • Отзывы клиентов
+7 495 580-11-11

Телефон в Москве

8 800 555-34-78

Бесплатный звонок по России

  • vk
  • telegram
  • ok
  • moikrug
  • youtube
  • twitter

Нашли опечатку?
Выделите и нажмите
Ctrl+Enter

  • mir
  • sbp
  • sberbank
  • qiwi
  • yamoney
  • visa
  • mastercard
Все способы оплаты Все способы оплаты
  • REG.RU
  • © ООО «Регистратор доменных имен РЕГ.РУ»

    Правовая информация и правила пользования

  • shop.reg.ru Магазин доменов
  • statonline.ru Доменная статистика
  • reg.ru/blog Мы пишем
  • Мы используем файлы cookie. Продолжив работу с сайтом, вы соглашаетесь с Политикой обработки персональных данных и Правилами пользования сайтом.