К содержимому
WordPress и техника

Как ускорить WordPress-блог без дорогого сервера

Как ускорить WordPress-блог без дорогого сервера

Медленный WordPress-блог редко упирается в сервер. У автора на тарифе Beget за триста рублей в месяц страница открывается пять секунд не потому, что хостинг слабый, а потому, что на ней сорок запросов к базе, три мегабайта картинок и восемь плагинов, каждый со своим скриптом. Ускорить WordPress без переезда на VPS реально за один вечер, и обычно это даёт больше, чем удвоение тарифа. Ниже — порядок, который работает на любом виртуальном хостинге: сначала измерить, потом обновить PHP и включить кэш, потом сжать картинки и убрать лишнее, и только в конце думать, нужен ли сервер дороже.

Сначала измерить: где именно тормозит

Без замера ускорение превращается в гадание. Откройте PageSpeed Insights, вставьте адрес главной и адрес типичной записи и смотрите мобильную вкладку — Google и Яндекс оценивают сайт прежде всего с телефона. Важны не баллы, а три показателя: LCP (за сколько появился крупнейший элемент, норма до 2,5 секунды), INP (задержка отклика на нажатие, до 200 миллисекунд) и CLS (прыжки вёрстки, до 0,1). Если сайт уже посещают, у вас есть полевые данные из Метрики: отчёт «Стандартные отчёты → Технологии → Время загрузки страниц» показывает, что видят реальные люди, а не тестовый робот из европейского дата-центра. Цифры запишите.

Вторая точка измерения — внутри WordPress. Поставьте плагин Query Monitor: он показывает в панели, сколько запросов к базе делает страница, какие плагины съедают время и какие скрипты подключены. Типичная картина на блоге двухлетней давности: время ответа сервера полторы секунды, потому что кэша нет и PHP старый; сорок запросов на странице, половина — от виджета «похожие записи»; тридцать файлов скриптов и стилей, из них десять от плагина соцкнопок, которыми никто не пользуется. Каждый пункт лечится отдельно, и Query Monitor после каждого шага покажет, стало ли легче.

PHP и кэш страниц: половина результата за полчаса

Первое, что стоит сделать в панели хостинга, — переключить версию PHP. На Beget, Timeweb и reg.ru это выпадающий список в настройках сайта, переключение занимает минуту. Многие блоги до сих пор живут на PHP 7.4, а WordPress на PHP 8.3 собирает ту же страницу заметно быстрее. Перед переключением обновите плагины и посмотрите у каждого в каталоге строку «Requires PHP»; после — откройте десять разных страниц и админку. Если что-то упало, вернуться можно тем же списком.

Второе — кэш страниц. Без него WordPress на каждый визит собирает страницу заново из базы; с кэшем отдаёт готовый HTML-файл. Автору-одиночке достаточно WP Super Cache: включить, выбрать режим «Expert» (отдача через правила в .htaccess), поставить срок жизни кэша в сутки и галочку «очищать при публикации». LiteSpeed Cache полноценно работает только на серверах LiteSpeed, которых у российских массовых хостингов почти нет, — на обычном Apache он превращается в простой файловый кэш. У Beget есть ещё кэширование на уровне Nginx прямо в панели, его можно включить вместе с плагином. Проверить работу кэша просто: откройте страницу в режиме инкогнито дважды — во второй раз она должна прилететь за доли секунды, а в исходном коде внизу появится комментарий плагина о времени сборки.

Инфографика: семь шагов, чтобы ускорить WordPress-блог без дорогого сервера — измерить, обновить PHP, включить кэш, сжать картинки, убрать плагины и скрипты, перемерить
Инфографика: семь шагов, чтобы ускорить WordPress-блог без дорогого сервера — измерить, обновить PHP, включить кэш, сжать картинки, убрать плагины и скрипты, перемерить

Картинки: где лежит три четверти веса страницы

На блогах с фотографиями картинки — это две трети, а то и три четверти всего, что скачивает браузер. Первая ошибка — заливать снимок с камеры как есть: шесть тысяч пикселей по ширине и четыре мегабайта, тогда как колонка текста в теме шириной 800–1200 пикселей. Перед загрузкой уменьшайте до ширины макета, максимум до 1600 пикселей с расчётом на экраны высокой плотности. Вторая ошибка — формат. WordPress с версии 5.8 принимает WebP, а плагины Converter for Media, EWWW Image Optimizer или ShortPixel конвертируют уже загруженную библиотеку автоматически; WebP весит на треть-половину меньше JPEG при том же качестве. Бесплатный лимит у ShortPixel — сто картинок в месяц, у Converter for Media лимита нет.

Отложенная загрузка встроена в WordPress с версии 5.5: картинки ниже экрана грузятся, когда до них долистали. Но обложку записи, которая видна сразу, откладывать нельзя — это ухудшает LCP. Свежие версии ставят ей приоритет сами, а в старой теме проверьте, нет ли у первой картинки атрибута loading=lazy. Ещё одна мелочь, которую видно в CLS: у каждой картинки должны быть указаны ширина и высота, иначе текст прыгает, пока она грузится. И если вы когда-то меняли тему, прогоните Regenerate Thumbnails: старые миниатюры нарезаны под другие размеры, и браузер получает картинку крупнее, чем нужно.

  • Перед загрузкой уменьшать до ширины колонки: 1200 пикселей хватает почти любой теме, 1600 — с запасом.
  • Формат WebP для фотографий, PNG только для схем с прозрачностью, GIF — никогда, вместо него короткое видео.
  • Обложка записи без отложенной загрузки, всё остальное — с ней; ширина и высота проставлены у каждой картинки.
  • Одна конвертация библиотеки после установки плагина и автоматическая для новых загрузок.

Плагины, шрифты и внешние скрипты

Плагины замедляют не числом, а тем, что делают на каждой странице. Двадцать служебных плагинов, работающих только в админке, безвредны; один слайдер Revolution или конструктор страниц с сотней скриптов — нет. Пройдитесь по списку и у каждого спросите, что он добавляет посетителю. Кандидаты на удаление: соцкнопки с подгрузкой внешних библиотек (замените простыми ссылками с иконками), виджеты «похожие записи» с картинками (YARPP и подобные тяжело нагружают базу), второй SEO-плагин с прошлой жизни. Google Fonts из России грузятся медленно и не всегда: либо перенесите шрифты к себе плагином OMGF, либо оставьте системную гарнитуру — читатель разницы не заметит.

Внешние скрипты — Метрика, Вебвизор, виджеты Телеграма и ВКонтакте, сторонние комментарии — должны грузиться асинхронно и после основного содержимого. Код Метрики уже асинхронный, но Вебвизор и карту кликов включайте только на время исследования. Плагин Autoptimize объединяет и минифицирует стили и скрипты и умеет откладывать JavaScript; включайте опции по одной и после каждой проверяйте меню, формы и галереи — отложенный скрипт иногда ломает то, что от него зависит. На этом этапе оценка PageSpeed обычно поднимается с сорока до семидесяти баллов на мобильных, а LCP уходит ниже 2,5 секунды.

  1. Выписать все плагины и у каждого отметить: работает в админке или на странице для посетителя.
  2. Отключить кандидатов по одному, после каждого — PageSpeed и обход пяти страниц.
  3. Перенести шрифты на свой сервер или заменить на системные.
  4. Включить Autoptimize и отложенный JavaScript, проверить формы и меню.

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

Когда всё-таки нужен сервер дороже

Есть три признака, что виртуальный хостинг исчерпан. Первый: на закэшированной странице время ответа сервера всё равно выше 600–800 миллисекунд — значит, дело уже не в WordPress. Второй: в панели хостинга регулярно горит превышение лимита процессорного времени, а посетители в пиковые часы видят ошибку 503 или 508. Третий: у вас больше десяти-пятнадцати тысяч посетителей в сутки и живой раздел комментариев, который кэш не спасает. Тогда следующая ступень — старший тариф того же хостинга или VPS за 500–800 рублей в месяц, который придётся администрировать самому. До этих признаков ускорить WordPress получается настройками, и повторять аудит стоит раз в полгода. Если на техническую часть нет сил, а трафик ждать не хочет, настройку сайта и продвижение можно отдать целиком — этим занимается агентство «Креатифф».

Вопрос — ответ

С чего начать ускорение WordPress-блога?

Сначала измерьте: откройте PageSpeed Insights, смотрите мобильную вкладку и показатели LCP, INP и CLS. Затем поставьте Query Monitor, он покажет, сколько запросов к базе делает страница и какие плагины съедают время.

Как включить кэш страниц?

Для одиночного автора достаточно WP Super Cache: выберите режим «Expert», поставьте срок жизни кэша в сутки и включите очистку при публикации.

Какую версию PHP выбрать для блога?

WordPress на PHP 8.3 собирает ту же страницу заметно быстрее, чем на PHP 7.4. Перед переключением посмотрите у каждого плагина строку «Requires PHP».

Как сжать картинки для блога?

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

Читайте также