Нагрузка на сайт: снижаем за счет блокировки роботов

Многие сталкивались с проблемой медленной работы блогов или своих сайтов, да нужно оптимизировать скрипты, чтобы сайт работал быстрее, но многие при этом забывают, что даже при не большой посещаемости сайт может создавать большую нагрузку и хостинг не всегда будет адекватно работать.

Как снизить нагрузку на WordPress или любой другой движок?

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

Только нагрузку на сайт создают как роботы поисковых машин, так и простые спамеры. Каждый из которых вкладывает свою частичку в это дело.

Давайте посмотрим статистику, собранную при помощи плагина StatPress для WordPress, который знает не все, но основные поисковые системы и поисковых ботов - точно знает:

Статистика посещаемости сайта SEOM.info

Как мы можем видеть - нагрузку создают не только пользователи, но и огромную долю создают роботы.

Это очень разные боты, вот только верхушка айсберга:

Поисковые роботы на SEOM.info

В плагине много полезных данных. В том числе и по количеству обращений по RSS.

Обращение по RSS

Мы точно можем определить, какие поисковые роботы нам полезны:

Индексация сайта роботом Яндекса

По данным, которые мы видим на скрине, нам понятно, что приходил основной индексатор яндекса (Yandex/1.01.001 (compatible; Win16; I) и робот индексирующий мультимедийный контент (Yandex/1.01.001 (compatible; Win16; m).

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

Также мы видим роботов, которые нам не очень интересны, т.к. они создают нагрузку на сайт, но трафика с них мы не получаем или получаем, но очень не целевой:

Китайская поисковая система индексирует сайт

И тут наступает самый интересный момент, который многие упускают.

ВСЕХ роботов, которые не являются целевыми - нужно блокировать!

Нам виден в этом отчете именно юзерагент, которого можно конечно запретить в файле robots.txt, но эта мера не может быть эффективной, ведь поисковые системы не раз уже доказывали, как они могут игнорировать этот файл и директивы в нем.

Нам нужно отбить роботов посредством файла .htaccess, а именно блокировать их на уровне сервера, даже не давать доступ к сайту. Делать это можно как при помощи юзерагента, так и при помощи IP.

IP адреса и юзерагенты обращающихся к сайту

Естественно, нужно быть четко уверенным в том, что вы заблокируете ненужные элементы, а то по незнанию можно больших дел натворить :) Один только робот гугла приходит как минимум под 6 разными масками.

Также, анализируя логи сайта, Вы сможете понять корректно ли работает хостинг.

Ответ службы поддержки хостинга

Как видим - после ручного запроса по юзерагенту сервер по идее должен отбывать поискового робота Twiceller-0.9, ведь эта директива прописана в .htaccess, но в логах сервера мы видим иную картину:

Робот, все-таки проходит на сервер

В результате - Вы можете обоснованно писать в службу поддержки, чтобы они решали эту проблему, т.к. не блокируется, мы видим код 200, а не код 403, который должен был быть.

Я считаю так, если какой-либо робот мне не приносит пользы - я его блокирую. Если я не знаю цели пребывания какого-либо робота у себя на сайте - я его блокирую.

Блокируя роботов в .htaccess вы снижаете нагрузку на сервер.

Далеко не всегда юзерагент соответствует реальным данным, сюда можно подставить что угодно и представляться хоть самим Яндексом, поэтому страховочный вариант - это блокировка IP адреса. Если 100% нужно кого-то заблокировать - лучше продублировать обе директивы.

Также можно поступать не только с роботами поисковых систем, но и со спамерами. Смотрим кто нас спамит.

Блокируем спамеров

Выявляем закономерности, IP адреса и блокируем их :) Если спамят с серверов Китая, к примеру, можно блокировать даже подсети.

К примеру спам блогов может быть полезен для Вас. Как? - :)

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

В данный момент в файле .htaccess у мена более 300 строк запретов.

Все что выше было сказано - это лирические отступления, а теперь к практике, как мы это делаем.

SetEnvIfNoCase User-Agent "^ia_archiver" search_bot
SetEnvIfNoCase User-Agent "^msnbot" search_bot

<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=search_bot
Deny from 87.118.86.131
Deny from 89.149.241
Deny from 89.149.242
Deny from 89.149.243
Deny from 89.149.244
</Limit>

Поясняю - при этом содержании файла будут блокированы роботы ia_archiver (веб-архив) и msnbot (поисковая система MSN/Bing), а также несколько IP адресов 100% спамеров.

Естественно свой файл .htaccess я полностью не буду выкладывать, но собирая свою статистику вы сможете не только снизить нагрузку, но и убрать нежелательные элементы с сайта, которые анализируют и спамят.

Чаще анализируйте логи сайта - там много полезного можно найти, а сфер применения у этих данных много ;)