Оптимизация нагрузки хостинга. Эксперимент с 50 сайтами
1
Интернет развивается довольно стремительно. Уже нельзя и представить как мы обходились без него раньше. Написать курсовую/реферат/диплом, узнать рецепт приготовления блюда, прочитать про лечение болезни, отыскать нужную фирму — этот список можно продолжать до бесконечности. Поисковые системы помогают найти решение почти любой проблемы! Однако всё чаще мы сталкиваемся с подводными камнями, когда обращаемся к Яндексу, или Google: вирусы, сомнительное содержание контента, назойливая реклама и недоступность сайта. Последняя проблема, как правило, возникает не по вине администратора и способна свисти все усилия по развитию проекта в минимальный результат. Основная причина её возникновения — перегрузка ресурсов хостинга. Другими словам — сайт захлёбывается от потока посетителей, ему не хватает кислорода (оперативной памяти). С этим приходится столкнуться почти каждому — в данной статье мы попробуем найти выход из сложившейся ситуации.
Нагрузка на хостинг
Как я уже говорил в прошлых статьях — я работаю в молодой студии, занимающейся продвижением сайтов. На обслуживании находится около 100 проектов различной сложности, а соответственно и разного потребления ресурсов. Естественно, что проведение SEO мероприятий, которые заказывают у нас клиенты, увеличивает популярность проекта в интернете — т.е. повышают поток привлеченных потенциальных клиентов. С одной стороны — это безусловно здорово, но обратная сторона медали — некоторые сайты стали либо долго загружаться, либо выдавать ошибку (из-за временных пиковых перегрузок). При этом переход на VPS в большинстве случаев не оправдан — как со стороны лишних затрат, так и в связи с сезонной популярности услуг/товаров — т.е. уже осенью ситуацию нормализуется. В общем — нужно искать выход, что бы и заказчик остался довольным, да и нам не пришлось тратить время на объяснения «почему их веб-ресурс плохо работает? Зачем им нужно тратить ещё деньги?» и т.д. Как говорится — все люди разные, у всех различны реакции, но одно неизменно — никто не любит отдавать деньги. Решение проблемы передали мне 🙂
Посовещавшись с программистом мы пришли к выводу — оптимизация кода будет весьма дорогим удовольствием, да и особого эффекта не будет. В связи с разностью используемых CMS систем также не существовало универсального решения. Пришлось обратиться к SEO науки и изучать историю обращений, которая размещена на каждом сервере. Логи дали понять, где затаилась беда — поисковые системы слишком часто и довольно назойливо изучали страницы сайтов. Яндекс не вылезал с некоторых крупных проектов часами!
SEO оптимизация нагрузки на хостинг
Итак, я выбрал 50 веб-проектов, которые работали на максимальной мощности.
Дополнительные данные:
Используемые на ресурсах CMS:
Joomla, NetCat, UmiCMS, WordPress, Drupal, OpenCart
Оперативная память на каждый сайт: 192 mb.
Дисковое пространство на каждый ресурс: 12 gb.
Прочтения мануала поисковых систем дало понять одно — можно заставить роботов снизить частоту обращений к сайту используя указания в файле robots.txt. Я уже упомянул про его необходимость и принцип работы в статье внутренняя оптимизация страниц.
Существуют условия, которые повлияют на активность пауков Яндекса и Гугла:
User-agent: * Disallow: Crawl-delay: 10 |
Где:
User-agent: * — указание, которое говорит о том, что все поисковые системы должны руководствоваться ниже описанными правилами.
Disallow: — запрещает к индексации какую-либо папку, файл или страницу. Важно заметить, что если вам нечего скрывать, все равно нужно написать Disallow, после которого поставить двоеточие и пробел.
Crawl-delay: 10 — говорит о том, что между запросами должно проходить 10 секунд. Мы можем поменять значение вплоть до десятых, к примеру 3.5 (разделителем служит точка).
Не лишним будет сказать, что директиву «Crawl-delay» нужно ставить после «Disallow». Если у вас проблема только с каким-либо одним поисковиков, тогда уточните это в поле «User-agent», где вместо звездочки напишите Yandex или другого поставщика.
Нагрузка на хостинг в цифрах
Что бы было более наглядно — привожу графики, по которым можно сделать вывод — метод показал себя довольно хорошо на проектах, которые содержали более 500 страниц:
Статистика за месяц
Годовалый график
Из предоставленных изображений видно, что нагрузка резко уменьшилась с конца мая, начала июня.
Если же взять небольшие (1-150 стр.) сайты, посещаемость на уровне «средняя», то результат мало ощутим:
В целом весьма неплохие данные. Если же рассматривать эффект после проведенных манипуляций: интернет-ресурсы стали открываться намного быстрее, пиковые нагрузки ушли в прошлое, при этом индексация со стороны поисковиков снизилась, но буквально на доли — новые страницы выходят в индекс с такой же скорость.
Бонус оптимизации
На CMS WordPress возможна дополнительная «подкрутка гаек» потребляемых ресурсов! Для этого можно установить плагин Pure PHP Localization. Также не лишним будет привести настройку постоянных ссылок к виду: «/web/%category%/%postname%.php» Дело в том, что переменные, которые находятся в первой позиции увеличивают в несколько десятков раз кол-во запросов! Это довольно интересная техническая деталь, которая присуща только Вордпрессу. Если у вас сайт работает уже давно, то я бы не стал менять эти настройки — ведь в данном случае возможен провал по позициям — в связи с долгой переиндексацией.
Подытожим
Развивайте и совершенствуйте свой сайт без боязни возникновения перегрузок со стороны хостинга — их всегда можно решить будь то «допиливанием» кода, настройками хостинга или переходом на VPS. Думайте в первую очередь о читателях — страшнее писать ненужный материал или только рекламные статьи!
Tweet |
Опа, никогда не задумывался о том, насколько пауки способны загрузить сайт, впечатляет! Надо будет поискать, есть ли какой-нибудь рецепт для связки Varnish+Nginx. Пользователей может и миллион держать за счет кэширования, а с ботами такой финт вряд ли прокатит… А как по ощущениям, crawl-delaвернуться (ну, то есть, просканировать через несколько часов вместо нескольких минут).