Как оптимизировать использование CPU в WordPress

Обсудить
Как оптимизировать использование CPU в WordPress

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

Понять причину такого явления сложно. Ясно одно: нужна оптимизация использования CPU в WordPress для восстановления производительности ресурса. Проводится она несколькими способами. Какой из них сработает в конкретном случае? Не разобраться без тестирования, поэтому рассмотрим все методики.

Пройдемся по работающим плагинам

Найти проблемные плагины помогает инструмент GTmetrix. Его использование интуитивно понятно: вводим ссылку, получаем анализ.

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

Примеры тяжелых программных модулей:

  • WooCommerce
  • Wordfence
  • Jetpack
  • Gravity Forms
  • Visual Composer

Есть и определенные настройки плагинов, вызывающие нагрузку WordPress на CPU: отчеты о трафике, текущие проверки, которые требуют регулярного сканирования, отправки уведомлений. Некоторые модули включают множество ненужных функций (heartbeat API, Gravatars, Emojis).

Полезно пройтись по каждому плагину и решить, от каких настроек отказаться. Пример: в Yoast к таким опциям относится «Анализ удобочитаемости», а Wordfence продолжит нормально работать без Life traffic. Хорошим подспорьем в процессе станет WP Disable, который определяет ненужные циклы ЦП и бонусом уменьшает количество HTTP-запросов. Или Clearfy Pro.

Yoast SEO

Чтобы снизить нагрузку WordPress, стоит избегать дублирования функций разными модулями. Установленный Yoast делает карту сайта, поэтому Google XML Sitemaps удаляем. Если хостинг предоставляет услугу создания резервных копий, можно отключить в админке бэкап. Или Google Analytics, собирающий мощную статистику, — ему не нужны помощники.

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

Разберемся с установленной темой

В категорию тяжелых модулей попадают и некоторые темы (пример: Divi). Бесплатные шаблоны для сайта целесообразно выбирать в официальном репозитории WordPress.org. Там же присутствует и список компаний, разрабатывающих коммерческие темы под лицензией GPL.

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

Проанализируем настройки самого сервера

Современная, актуальная версия CMS не может корректно работать на PHP с цифровым значением ниже 7. Новые разработки быстрее старых в 4-5 раз.

Перевести сайт на более позднюю версию PHP можно через ISPmanager на хостинге:

  1. Делаем резервную копию сайта.
  2. Обновляем WordPress, темы и плагины — выбираем в админке опцию полного обновления.
  3. Устанавливаем PHP Compatibility Checker и проверяем элементы на совместимость с новой версией PHP.
  4. Запускаем менеджер, отправляемся в раздел WWW-доменов, находим нужный и нажимаем «Изменить».
  5. В разделе дополнительных возможностей выбираем версию PHP.
  6. Соглашаемся на применение новых настроек.

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

Поработаем с изображениями на сайте

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

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

Оптимизация изображений на сайтеЧто нужно знать для оптимизации картинок? Самый удобный формат — JPG. Идеальный ориентир для размера файла — 70 Кб. Можно использовать инструменты для сжатия каждого изображения отдельно или установить специальные плагины: Smush, EWWW, Compress JPEG&PNG.

Защитим админку от вредоносных запросов

Некоторые запросы к сайту вредоносны или просто происходят слишком часто, что не только создает нагрузку WordPress на сервер, но и приводит к утрате доступа.

Чтобы защитить админку, возьмемся за wp-config.php и wp-login.php. Можно сделать к ним доступ только с одного IP. Изменения вносятся в файл .htaccess. Но способ не подходит владельцам с динамическим адресом.

Защитим админку от вредоносных запросов

Еще один вариант — переименовать файл с логином, а потом в самом файле прописать новое имя там, где встречается wp-login.php. Или установить Login LockDown, который блокирует попытки подбора пароля.

О способах предотвращения таких ситуаций более подробно описано в статье: 14 бесплатных инструментов для повышения защищенности сайта

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

Отфильтруем все входящие обращения

Лишнюю нагрузку на ЦП создают и запросы к MySQL длительностью от 0,5 сек. Чтобы их увидеть, нужно запросить у хостера обращения к БД, оптимизировать ее структуру и удалить ненужную информацию.

Сюда же относится и большое количество запросов от роботов. Резкие скачки свидетельствуют о DDOS-, Brute-Force атаке. Раскрыть адресатов поможет User-Agent. В нем видны все обращения к сайту, как поисковых роботов, так и отдельных IP. Подробную информацию о конкретном адресе выдает сервис Whois.

Отфильтруем входящие обращения

Ограничение времени обращения производится в robots.txt. Если останавливаем определенного бота, прописываем так:

User-agent: yandexbot Crawl-delay: 10 #


И поисковый бот не задержится на сайте дольше 10 сек.

Чтобы ограничить сразу всех ботов, имя конкретного агента меняем на *.

Для блокировки запросов от определенного IP прописываем в .htaccess следующее:

Order Allow, Deny Allow from all Deny from 131.158.125.128.


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

И еще одно решение

Проблема может заключаться в WP Cron. Иногда нагрузка WordPress на сервер происходит из-за ошибок в логах, адресованных wp-cron.php. В этом случае нужно установить WP Crontrol и обнулить все связанные события.

Алгоритм следующий:

  1. Заходим в functions.php.
  2. В самое начало файла снизу под >?php вставляем update_option(‘cron', » «).
  3. Сохраняем изменения.
  4. Посещаем сайт, открываем несколько страниц.
  5. Стираем строку.

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

Что еще поможет уменьшить нагрузку WordPress: настройка кэширования посредством WP Super Cache.

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

Комментарии

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