Бесплатный и недорогой хостинг и лучший VPS hosting

Проект "Хостинг Обыкновенный" успешно работает с августа 2005 года

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

Индексация в поисковиках - важная часть продвижения (раскрутки) сайта. По мере развития сайта увеличивается его посещаемость, увеличивается также и количество поисковых роботов (сокращенно - ботов), посещающих сайт, чтобы проиндексировать новые или изменившиеся страницы сайта и добавить в свою базу данных. Это хорошо для владельцев сайтов, т.к. хорошая индексация в поисковиках в результате повышает посещаемость сайта. Но это может также стать причиной проблем с хостером. Почему? Объясняем. Если на вашем сайте 5 страниц, то индексация проходит быстро и безболезненно. А если сотни или тысячи? Если посмотреть статистику сайтов наших пользователей, видно, что большинство сайтов в сутки посещают более тысячи роботов. То есть, нагрузку на сервер создают не только пользователи (которых может быть и не много у недавно созданного сайта), но и роботы.

Но не все поисковые роботы одинаково полезны. Известны случая "атак" сайтов роботами, которые зачем-то считывают главную страницу каждые несколько секунд. Нередко жалуются на робота Yahoo - индексирует часто и помногу, а для продвижения сайта (с русскоязычным контентом, предназназченным для жителей определенного города) он может быть совершенно неинтересен, т.к. от него нет целевых посетителей. Помимо роботов известных поисковых систем сайт посещают "левые" боты, среди которых много сборщиков e-mail для спама. Главная проблема состоит в том, что все эти визитеры создают трафик, а главное - бесполезную нагрузку на сервер, из-за которой Ваш аккаунт на хостинге может быть закрыт.

Не так давно сайт, расположенный на нашем хостинге, был заблокирован за нагрузку на сервер. Создавали ее спам-роботы, которые постоянно пытались добавить комментарии в формы на сайте. Формы были защищены "капчей", и добавить комментарий роботам не удавалось. Тем не менее попытки их добавить создавали нагрузку.

При продвижении сайта очень полезно анализировать, как и что индексируют поисковые системы, а также с какой периодичностью, тогда прогнозирование будет более точным, после внесения каких-либо изменений на сайт. На многих сайтах, особенно если они созданы c помощью различных CMS, присутствует информация, которую вовсе не обязательно индексировать. Хороший пример - форумы. Не всем понятно, каким образом небольшой форум с несколько сотнями посетителей в сутки вдруг начинает создавать не 2%, а 30-60% серверной нагрузки. Однако причина этого явления проста. В отличии от обычного посетителя, поисковый бот способен просмотреть 10.000-20.000 страниц за несколько часов своего посещения. Это на несколько порядков выше, чем нагрузка на сервер от реального посетителя. Запрет индексации отдельных частей сайта избавит ваш сайт (и наш сервер хостинга) от излишней нагрузки. Мы настоятельно рекомендуем выполнять хоть частичный запрет индексации динамических частей сайта (форумы, доски объявлений и т.п.).

Существует несколько способов снизить бесполезную нагрузку от поисковых ботов.

Способ 1. Файл robots.txt

Файл robots.txt - файл, в котором содержатся указания для поисковых систем. Это обычный текстовый файл с командами, оформленными особым образом. Он размещается в корневой папке вашего сайта. Подробнее - wikipedia.org/wiki/Robots.txt

Пустой файл robots.txt предполагает разрешение на индексирование всего сайта, точно так же происходит, если поисковый робот увидел ошибки в файле.

Директива User-agent указывает, на то какому именно роботу относятся нижеследующие предписания. У каждого поискового бота есть свое уникальное имя. Список наиболее часто встречаемых поисковых роботов, самых известных поисковиков:

  • Google (www.google.com) - Googlebot
  • Yahoo! (www.yahoo.com) - Slurp (или Yahoo! Slurp)
  • MSN (www.msn.com) - MSNBot
  • AOL (www.aol.com) - Slurp
  • Live (www.live.com) - MSNBot
  • Ask (www.ask.com) - Teoma
  • Alexa (www.alexa.com) - ia_archiver
  • AltaVista (www.altavista.com) - Scooter
  • Lycos (www.lycos.com) - Lycos
  • Яндекс (www.ya.ru) - Yandex
  • Мэйл.ру (mail.ru) - Mail.Ru
  • Рамблер (www.rambler.ru) - StackRambler
  • Aport (www.aport.ru) - Aport
  • Вебальта (www.webalta.ru) - WebAlta (WebAlta Crawler/2.0)

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

Директива "User-agent: *" адресована всем ботам, зашедшим на Ваш сайт.

Disallow - понятная всем без исключения ботам команда, запрещающая индексировать ту или иную директорию сайта (файл, группу файлов). Директива Allow - разрешает индексирования сайта (каталога).

Параметры команды Disallow задаются в виде масок. Несколько простейших примеров:

  1. Допустим, на сайте имеется форум, который размещен в директории phpbb. Следующие директивы запрещают индексацию форума для всех поисковиков:
    User-Agent: *
    Disallow: /phpbb
  2. Следующий код для файла robots.txt запрещает роботу Yahoo индексировать сайт:
    User-Agent: Slurp
    Disallow:
  3. Можно использовать связку Allow-Disallow для включения в индекс контента в закрытых для индексации каталогах. В следующем примере, будет открыта для индексации лишь одна директория "forindex" из всех, что находятся в папке "img": User-agent: *
    Disallow: /img/
    Allow: /img/forindex/
  4. Параметр Crawl-delay указывает поисковому роботу чтобы он загружал страницы вашего сайта с интервалом не менее 10 секунд, другими словами просто выдерживал паузу во время индексации страниц вашего сайта. И ваш сайт спокойно индексируется в пределах допустимой нагрузки. Вы можете менять интервал по своему усмотрению, делая его больше или меньше.
    User-agent: *
    Crawl-delay: 10

С рекомендуемыми robots.txt вы всегда можете ознакомиться на сайтах разработчиков своей CMS, а также на форумах пользователей этих CMS. Можно также забить в Гугле поисковый запрос "снизить нагрузку" и посмотреть результаты.

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

Способ 2. Мета тег robots

Мета тег robots - управляет индексацией конкретной web-страницы.

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

Способ 3. Файл .htaccess

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

    Пример:
    В последнее время участились случаи, когда у сайтов на CMS Joomla резко возрастает нагрузка на CPU сервера. Ее создают автоматические подборщики пароля к административному разделу CMS. Поэтому в каталоге /administrator/ обязательно должен быть файл .htaccess в котором должна быть запись вида:
    Allow from 31.24.208.11
    Deny from all
    где вместо 31.24.208.11 должен быть IP-адрес, с которого администрируется сайт. Строк "Allow from ..." может быть несколько с разными IP-адресами.
    Deny from all - обязательно одна и последняя.

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

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