Снижение нагрузки на сервер WordPress

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

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

screenshot 2021 08 16 at 19 52 58 statistika panel upravleniya hostingom

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

Порядок действий при понижении нагрузки на сервер

Если у вас несколько сайтов, то выясняем какой именно создает чрезмерную нагрузку. Это очень просто сделать, достаточно открыть более подробную статистику.screenshot 2021 08 16 at 19 53 26 statistika panel upravleniya hostingom

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

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

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

Максимально частые причины повышенной нагрузки CMS WordPress

HeartBeat API

HeartBeat API — функционал WordPress, который обеспечивает такие вещи, как:

  • Автосохранение;
  • Блокировка записи или страницы для других редакторов сайта, пока запись или страницу редактирует один человек;
  • Обновление информации о том, что пользователь всё ещё находится в административной части (консоли).

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

Выражается в постоянных запросах с интервалом в 15-30 секунд к одному конкретному файлу admin-ajax.php практически с любой страницы административной панели. Ситуация усугубляется, если вы держите при работе с сайтом открытыми сразу несколько вкладок консоли: запросы отправляются автономно из каждой вкладки. HeartBeat API является самым ресурсоёмким из всех стандартных механизмов WordPress.

Снижение нагрузки от HeartBeat API

Для снижения нагрузки HeartBeat API нам понадобится плагин Heartbeat Control by WP Rocket (Ссылка на плагин https://wordpress.org/plugins/heartbeat-control/). С помощью данного плагина мы можем увеличить интервал между запросами, чтобы снизить количество обращений к серверу, или же вообще отключить ее.

screenshot 2021 08 16 at 20 29 25 heartbeat control ‹ ddr5 ru — wordpress

WordPress Dashboard отвечает за проверку авторизации и внесение изменений в административной панели WordPress, что наверное итак понятно из названия. Если вы обслуживаете сайт самостоятельно без сторонней помощи, то можно смело выключать данный пункт, выбрав : "Disable HeartBeat ". Если же обслуживает несколько человек, то нужно выбрать "Modify HeartBeat" и увеличить значение до максимума, подвинув ползунок вправо.

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

Post Editor - это проверка именно редактора написания контента в админ панели. Нужна она для блокировка записи или страницы для других редакторов и авторов сайта, пока ее кто-то уже редактирует. Но так же эта проверка отвечает и за автоматическое сохранение ревизий. Если вы пользуетесь сайтом один и желаете сохранить функцию автосохранения, то просто увеличьте интервал запроса. Если готовы пожертвовать авто сохранением, то смело выключайте это пункт. Но не забывайте почаще сохраняться после отключения)

Отсутствие кеширования

Если у вас отсутствует кеширование, то будьте уверены без всяких логов, что расходуется очень много ресурсов сервера на построение страницы. Чтобы вам было понятнее: "Каждая страница сайта на вордпресс загружается динамически, отправляя запросы и получая информацию для построение из различных папок, файлов и базы данных, при этом количество запросов может достигать нескольких десятков и сотен, в зависимости от от сложности функционала настроенного на вашем сайте. Плагины кеширования же создают из каждой построенной динамически страницы HTML слепок, после чего отдает HTML странички посетителям и главное роботам, которых может быть в сотни раз больше за сутки на странице, чем реальных людей.

Включая кеширование нагрузка на сервер снижается в несколько раз. Для включения кеширования вы можете использовать любой понравившийся вам плагин: WP Super Cache, W3 Total Cache, WP Fastest Cache, LiteSpeed Cache или любой другой. Лично я использую плагин Cache Enabler - он очень прост в настройке, и по скорости в связке с подобранными мною плагинами для ускорения, он подходит мне больше других.

screenshot 2021 08 16 at 21 40 01 cache enabler ‹ ddr5 ru — wordpress

Плагин Яндекс Турбо

Если предыдущие варианты подходили для любого сайта, то вычисление нагрузки Яндекс Турбо только по логам хостинга. Но есть и косвенный признак - это ошибка обновления RSS в Вебмастре, если вы неоднократно видели это сообщение в вебмастере, то будьте уверены, что робот Яндекса будет проверять исправление ошибки, создавая при этом очень значительную нагрузку.

Однозначного совета по решению нет.

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

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

Важно! Если вы надумаете отключать, то отключение должно происходить через тот же плагин ленты, никаким другим способом избавиться у вас от них не выйдет!Удаление страниц может занимать от 3-х до 7-ми дней...

screenshot 2021 08 16 at 21 55 28 yandeks turbo ‹ ddr5 ru — wordpress

 

Выполнение запланированных задач WP-CRON

WP-CRON - это своеобразный таймер запуска различных процессов и проверок. Например, поиск обновлений темы или плагинов, очищение мусора если установлен плагин очистки, различные процессы отслеживания и прочие. Как правило он не создает в изначальном виде особых нагрузок, если вы едино-разово поставили набор плагинов и успокоились. Но если вы периодически ставите плагины и удаляете какие-то из них, то в расписании WP-CRON иногда остаются процессы, которые уже не нужны. Нагрузка же создаваемая такими мусорными процессорами может значительно разнится в зависимости от того, как часто запускается процесс. Если процесс по расписанию запускается раз-два в неделю, то скорее всего вы никакой нагрузки и не заметите, а вот если он должен запускаться каждые 15-30 секунд, раз в минуту, например, то это уже совсем другое дело.

Чтобы избавиться от ненужных процессов из расписания понадобится плагин WP Crontrol. С помощью него вы можете увидеть все записи в расписании, изменить периодичность запуска или же удалить ненужное. Но к удалению стоит подходить очень внимательно, чтобы не удалить что-то необходимое.

screenshot 2021 08 16 at 22 01 32 sobytiya cron ‹ ddr5 ru — wordpress

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

Агрессивное поведение поисковых роботов

Поисковые роботы Яндекса, Google и другие так же могут стать причиной роста нагрузки. Когда на вашем сайте резко участилось добавление материалов, то роботы поисковых машин начинают более часто заходить и проверять ваш ресурс на обновления, при этом роботы не обязательно могут проверять поштучно, под проверку за один раз могут попасть и несколько десятков страниц. Когда такие проверки начинают граничить с фанатизмом, начинают затруднять работу сайта или же перегружать сервер, то их стоит замедлять, используя правило рекомендации в файле Robots.txt

User-agent: *
Crawl-delay: 120

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

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

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

screenshot 2021 08 21 at 08 19 35 statistika panel upravleniya hostingom

На этом пока все.

Удачи!

Вас могут заинтересовать:

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии