Как снизить нагрузку на сервер хостинга от сайта WordPress

20 Сен 2019

В этой статье мы поговорим о том, как снизить нагрузку на сервер хостинга на примере сайта, работающего на WordPress. Тарифные планы хостингов имеют определенные ограничения по нагрузке, превысив которые нужно увеличивать лимит. Само собой разумеющееся увеличение лимита означает переход на более дорогой тарифный план или увеличение стоимости текущего тарифа. Я решил разобраться с этой проблемой собственными силами и попытаться снизить нагрузку путем оптимизации работы сайта. Если вы хотите создать собственный сайт на WordPress, я рекомендую воспользоваться услугами хостинга TimeWeb:

Как снизить нагрузку на сервер хостинга

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

Хостинг предложил два варианта решения проблемы: уменьшить нагрузку или увеличить лимит нагрузки (платная функция). И тут я стал разбираться, чем может быть вызвана чрезмерная нагрузка на сервер, и каким образом можно ее снизить. Чтобы снизить нагрузку на сервер, нам нужно уменьшить количество ресурсов, потребляемых сайтом.

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

Как считается нагрузка

Нагрузка исчисляется в CP (cpu points). Нагрузка на CPU равна количеству минут, потраченных процессором на выполнение запросов пользователя. Стандартный лимит нагрузки на хостинге TimeWeb – 50 CP.Если происходит одноразовое превышение нагрузки, ничего делать не нужно. Если превышения многократные, хостинг предупреждает пользователя о том, что нужно принять меры. Увеличение лимита до 80 CP стоит 50 рублей в месяц, до 110 CP – 100 рублей в месяц. Если сайт превышает лимит в 110 CP, поможет только аренда выделенного сервера, на котором отсутствуют ограничения по нагрузке.

Далее представлена инструкция по снижению нагрузки на сервер, протестированная на моем сайте. Результат – нагрузка на сервер упала с 70 CP до 15 CP (усредненные показатели).

Снижение нагрузки на сервер хостинга пошаговые рекомендации

1) Использование последней версии PHP. В моем случае после того, как я перевел сайт на последнюю версию PHP, нагрузка на сервер хостинга снизилась более чем в 3 раза (приблизительно с 50 cp до 15 cp). По умолчанию все сайты, расположенные на моем хостинге (TimeWeb), используют старую и устаревшую версию PHP 5.3. Хостинговые компании не будут автоматически обновлять вашу версию PHP из-за потенциальных проблем совместимости. Поэтому вы должны обновиться до последней версии вручную.

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

Поэтому всегда используйте последнюю версию PHP, доступную на вашем хостинге. Версия PHP 7.2 – последняя на момент написания статьи. Она быстрее и производительнее всех других версий. Представляю вашему вниманию тест производительности WordPress на разных версиях PHP:Как установить последнюю версию PHP на сайт. Установка происходит из панели управления хостингом. Поскольку я работаю на хостинге TimeWeb, я покажу вам пример установки последней версии PHP именно на этом хостинге. Перейдите в панель управления хостингом, затем в раздел «Сайты», нажмите на зеленую кнопку «Настройки сайта», в поле «Версия PHP» выберите «PHP 7.2» и сохраните настройки.Вполне возможно, что после сохранения настроек нагрузка на сервер упадет до некритичных значений. Если этого не произойдет или ваш сайт и так использует последнюю версию PHP, приступайте к реализации следующих рекомендаций по снижению нагрузки на сервер.

2) Изменить страницу входа в административную панель WordPress. Страница входа – самое распространенное место атаки на сайт. Боты и хакеры чаще всего атакуют именно эту страницу. У всех сайтов вход в WordPress происходит через страницу wp-login.php (https://адрес-вашего-сайта/wp-login.php/). Злоумышленники используют эту уязвимость, чтобы взломать сайт или сделать его недоступным.

Увеличение нагрузки происходит за счет того, что на странице входа в поля для авторизации беспрерывно вводятся данные. Вследствие чего идет огромная нагрузка на базу данных и, соответственно, на сервер хостинга. Чтобы избежать подобных атак, достаточно изменить страницу для входа. Как это сделать, читай в статье «Как изменить страницу входа в WordPress». Если вкратце, нужно установить плагин WPS Hide Login и прописать новую страницу для входа.

После изменения страницы входа злоумышленники будут перенаправляться на страницу ошибки 404, где просто физически нет возможности вводить какие-либо данные. Соответственно, все атаки на страницу входа не будут вызывать увеличение нагрузки на сервер хостинга.

3) Плагин кэширования. Использование плагина кэширования – один из лучших способов обеспечить более быструю загрузку сайта. Зачем вам нужен плагин кеширования WordPress? Плагин генерирует статические HTML-страницы вашего сайта и сохраняет их на сервере.

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

Соответственно, плагин кэширования решает две проблемы одновременно: ускоряет загрузку сайта и уменьшает нагрузку на сервер. Мы рекомендуем установить плагин «WP Super Cache». В статье «Настройка плагина WP Super Cache» вы можете прочитать подробный обзор плагина.

4) Удаление неиспользуемых плагинов. Плагины создают дополнительную нагрузку даже в отключенном состоянии. Поэтому обязательно удалите все плагины, которые не используются на сайте. Если вы знаете, как вручную заменить функционал того или иного плагина, сделайте это. Также старайтесь не устанавливать плагины, если их можно заменить ручной правкой кода.

Отдельно хотелось бы выделить плагин WooCommerce. Это один из самых ресурсоемких плагинов. Если вам все необходим этот плагин для работы, отключите абсолютно все функции, которые не используете (скрипты, стили, фрагменты корзины, виджеты WooCommerce и так далее).

5) Регулярная очистка базы данных. Ревизии постов, черновики постов, спам и не одобренные комментарии, переходные процессы, различный мусор, остающийся после удаления плагинов, делают ваш сайт медленнее и увеличивают нагрузку на сервер. WP-Optimize – лучший плагин для отчистки WordPress от мусора. Помимо функций отчистки плагин выполняет оптимизацию таблиц базы данных.

Вы должны чистить сайт с помощью данного плагина по крайней мере один раз в месяц. Желательно настроить автоматическую отчистку раз в неделю. Обзор плагина читай в статье «Оптимизация базы данных WordPess. Плагин WP-Optimize».

6) Плагин Akismet. Лучший плагин для защиты от спама в комментариях. Akismet автоматически определяет спам ботов и блокирует их работу. Боты способны создать огромную нагрузку на сервер, так как они отправляют огромное количество автоматизированных запросов, нагружая базу данных. Просто активируйте плагин и вы забудете о спаме и о нагрузке, вызванной спам ботами. Обзор плагина читай здесь.

7) Блокировка плохих ботов. Боты – одна из самых главных причин повышенной нагрузки. Если рекомендации выше не привели к снижению нагрузки, ваш сайт однозначно грузят боты. Чтобы понять, какие именно боты нагружают сервер, нужно через панель хостинга установить AWStats (программа, предоставляющая отчеты по статистике сайта). На хостинге TimeWeb прейдите в раздел «Логи» и включите введение логов:После установки AWStats, в домашнюю директорию вашего сайта будут попадать документы в формате «gz» с логами. Этот формат удобнее всего изучать при помощи программы «Notepad++». Вам нужно внимательно просмотреть логи и выписать всех ботов, которые часто встречаются в логах и заблокировать их в файле «.htaccess».

Очевидно, что мы не хотим блокировать роботу поисковых роботов от Google (Googlebot), Яндекс (YandexBot) и других легальных сканеров, но мы хотим заблокировать спам.

При проведении анализа логов я заметил, что бот «dotbot» ежедневно делал огромное количество запросов каждые пару секунд. Я погуглил и, конечно же, «dotbot» оказался плохим ботом, который увеличивает нагрузку на сервер. В общем, я внимательно изучил логи, выписал всех плохих ботов, плюс погуглил информацию по ботам, которые увеличивают нагрузку, и забанил их всех.

Вот такой код, добавленный в файл «.htaccess» (перейдите в панель управления хостингом ⇒ «Файловый менеджер» ⇒ «wordpress» ⇒ «public_html» и откройте файл «.htaccess»), банит всех плохих ботов (можете использовать этот код, чтобы забанить плохих ботов на вашем сайте):

RewriteCond %{HTTP_USER_AGENT} Exabot [OR]
RewriteCond %{HTTP_USER_AGENT} IDBot [OR]
RewriteCond %{HTTP_USER_AGENT} Wotbox [OR]
RewriteCond %{HTTP_USER_AGENT} Baiduspider [OR]
RewriteCond %{HTTP_USER_AGENT} Baiduspider-image [OR]
RewriteCond %{HTTP_USER_AGENT} Baiduspider-video [OR]
RewriteCond %{HTTP_USER_AGENT} Baiduspider-news [OR]
RewriteCond %{HTTP_USER_AGENT} Baiduspider-favo [OR]
RewriteCond %{HTTP_USER_AGENT} Baiduspider-cpro [OR]
RewriteCond %{HTTP_USER_AGENT} Baiduspider-ads [OR]
RewriteCond %{HTTP_USER_AGENT} AhrefsBot [OR]
RewriteCond %{HTTP_USER_AGENT} MJ12bot [OR]
RewriteCond %{HTTP_USER_AGENT} Detectify [OR]
RewriteCond %{HTTP_USER_AGENT} dotbot [OR]
RewriteCond %{HTTP_USER_AGENT} Riddler [OR]
RewriteCond %{HTTP_USER_AGENT} SemrushBot [OR]
RewriteCond %{HTTP_USER_AGENT} LinkpadBot [OR]
RewriteCond %{HTTP_USER_AGENT} BLEXBot [OR]
RewriteCond %{HTTP_USER_AGENT} FlipboardProxy [OR]
RewriteCond %{HTTP_USER_AGENT} aiHitBot [OR]
RewriteCond %{HTTP_USER_AGENT} trovitBot [OR]
RewriteCond %{HTTP_USER_AGENT} BUbiNG [OR]
RewriteCond %{HTTP_USER_AGENT} MauiBot [OR]
RewriteCond %{HTTP_USER_AGENT} DomainCrawler [OR]
RewriteCond %{HTTP_USER_AGENT} IstellaBot [OR]
RewriteCond %{HTTP_USER_AGENT} Alexa [OR]
RewriteCond %{HTTP_USER_AGENT} SMTBot [OR]
RewriteCond %{HTTP_USER_AGENT} Scrapy [OR]
RewriteCond %{HTTP_USER_AGENT} trendictionbot [OR]
RewriteCond %{HTTP_USER_AGENT} MegaIndex [OR]
RewriteCond %{HTTP_USER_AGENT} MegaIndex.ru/2.0 [OR]
RewriteCond %{HTTP_USER_AGENT} MegaIndex.ru [OR]
RewriteCond %{HTTP_USER_AGENT} spbot [OR]
RewriteCond %{HTTP_USER_AGENT} Zeus
RewriteRule ^(.*)$ – [F,L]

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

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

Итак, я перечисли семь рекомендаций, которые помогли мне значительно уменьшить нагрузку на сервер хостинга, плюс сайт стал работать быстрее. Простейшие способы уменьшить нагрузку: обновление до PHP 7+, изменение страницы входа, установка специальных плагинов (WP Super Cache, WP-Optimize, Akismet), удаление неиспользуемых плагинов и блокировка плохих ботов.

Надеюсь, статья поможет вам снизить нагрузку до приемлемых значений. Если у вас есть опыт в данной сфере, обязательно поделитесь дельными советами в комментариях под этой статьей. Думаете о том, чтобы создать свой сайт, я могу порекомендовать хостинг TimeWeb:Опубликовано в Как создать сайт. Пошаговая инструкция
Советую посетить следующие страницы:
Обзор плагина Max Mega Menu
Обзор хостинга TimeWeb
Плагин TinyMCE Advanced. Редактор WordPress
Обзор плагина All In One SEO Pack
Необходимые плагины для WordPress

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

© 2015-2019 Busines-Expert.com. Все права защищены. Все о заработке в интернете
Яндекс.Метрика
Рейтинг@Mail.ru