Простые способы ускорения сайта на WordPress

Простые способы ускорения сайта на WordPress

В этой статье я расскажу про несколько простых, но неочевидных способов ускорения сайта на WordPress.

Конвертирование логотипа в формат SVG

Замечания в тесте PageSpeed типа "Используйте современные форматы изображений" говорят о том, что нужно или конвертировать изображения в webp, или делать для них отложенную загрузку на JS (не атрибут loading="lazy"). Но это хорошо работает с изображениями ниже первого экрана. Для изображений на первом экране, например логотипа, это не подходит (читайте Как правильно применять атрибут loading="lazy" для оптимизации LCP). Можно конечно вручную переконвертировать картинку в WebP, загрузить в какую-то папку, сделать разметку <picture> для поддержки в устаревших браузерах.... Но есть другой путь - конвертировать ваш логотип из формата PNG в SVG ( SVG поддерживается бОльшим количеством браузеров). Конвертировать можно в каком-нибудь графическом редакторе или онлайн-сервисе.

К сожалению WordPress по-умолчанию не поддерживает загрузку SVG в медиабиблиотеку. Чтобы решить эту проблему можно установить бесплатный плагин SVG Support или же приобрести лицензию на наш True Image & Lazy Load, где эта функция уже встроена.

Дальше просто загружаете ваш логотип в формате SVG стандартным способом.

Отключение задач CRON

Эффективным способом оптимизации сайта является отключение задач CRON (если wp-cron.php грузит сервер). Такая нагрузка может приводить к к увеличению Time to First Bite (или сокращенно TTFB, оно же – время ответа сервера) – характеристика, которая обозначает временной интервал до получения самого первого байта страницы, сразу после отправки соответствующего запроса. Я столкнулся с этой проблемой на своих сайтах, когда попросил техническую поддержку Бегет дать информацию по нагрузке на процессор. Оказалось что нагрузка создаётся работой скриптов CronTab и на выполнение задач cron отводится более 50% процессорного времени. У меня нагрузка CP ежедневно превышалась и даже пришлось взять тариф подороже.
Причина такой большой нагрузки - это cron-задания давно деактивированных и удалённых плагинов. Например у меня до сих пор висели задачи wpseo_permalink_structure_check, wpseo-reindex-links от Yoast и mwp_update_public_keys (от ManageWP Worker). При этом плагин ManageWP Worker я давно удалил! То есть разработчики плагинов элементарно не предусмотрели удаления задач cron после деактивации их плагинов. И чем старше сайт, тем больше проблем.

Чтобы проверить как много таких зависших заданий cron можно установить плагин WP Cron Cleaner или любой аналогичный. Смотри количество заданий (у меня их было 45). В PRO версии плагина можно автоматически найти зависшие задания, но покупать платную версию необязательно. Если вы уверены у вас нет каких-то особенных, вручную добавленных заданий, то просто выделяем все и удаляем.

Простые способы ускорения сайта на WordPress

После этого достаточно обновить любую страницу сайта и все нужные задания опять запустятся. У меня после это операции осталось лишь 25 заданий. То есть было 20 зависших лишних заданий!
Плагин WP Cron Cleaner после этого можно удалить.
Чтобы убрать лишнюю нагрузку навсегда, а wp_cron при этом функционировал, мы его отключим и будем обращаться к файлу wp-cron.php через cron на сервере.

  1. В файле wp-config.php прописать следующую строчку
define('DISABLE_WP_CRON', true);

Сделать это можно скачав файл wp-config.php  по FTP или через встроенный Файловый менеджер (если у вас Бегет )

2. В Меню CronTab на хостинге мы создадим cron задачу на обращение к wp-cron.php каждый час:

Простые способы ускорения сайта на WordPress

Вот строка которую нужно ввести:

/usr/local/bin/php7.4 /usr/local/bin/wp cron event run --due-now --path=/home/k/youraccountname/yoursitename.com/public_html > /dev/null 2>&1

Здесь:

  • /usr/local/bin/php7.4 на Бегете - это последняя стабильная версия РНР для консоли (на момент написания статьи)
  • /usr/local/bin/wp это путь к wp-cli серверной утилите wordpress
  • wp cron event run --due-now это запуск wp-cli через РНР и говорит что надо выполнить подходящие задачи
  • youraccountname - имя вашего аккаунта
  • yoursitename.com - ваш домен
  • /dev/null 2>&1 это чтобы крон не отсылал результаты выполнения на email и вывод в пустоту

Чтобы правильно получить фрагмент /home/k/youraccountname/yoursitename.com/public_html нужно в корень вашего сайта загрузить по FTP небольшой PHP файлик (например test_my_path.php) с такой строкой: <?php echo DIR;

Далее обращаемся по адресу http://yoursitename.com/test_my_path.php и видим точный путь на вашем хостинге

После проведенной оптимизации нагрузка упала в 2 раза и я смог перейти на более дешёвый тариф на Бегет.

Похожие записи

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

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