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

Есть семь простых и надёжных способов, как с помощью волшебного пинка придать скорость вашему проекту на WordPress.

1 Грамотный выбор темы

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

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

Кроме того, обычно такие темы делают на базе встроенного фреймворка. Например, для известной биржи themeforest.net их собственный фреймворк Cherry является практически стандартом – разработчикам, которые его не используют, выложить свои темы для продажи практически невозможно. А это ещё больше грузит бедный сервер.

Поэтому идеальным решением будет либо выбор простой темы, которую можно будет «доработать надфилем», либо разработка под ваш заказ – дизайн в psd, вёрстка и подключение к CMS. Ничего лишнего.

2 Оптимизация медиаресурсов

Частенько мастера бьются за микросекунды и бесконечно оптимизируют код, но при этом спокойно заливают на сайт мегабайтные фотографии. С ожирением у медиафайлов нужно бороться уже на стадии наполнения. Прогоняем фотографии через фотошоп (сохранить для веб и печати), заменяем png на jpg везде, где нам не нужен прозрачный фон, выбираем минимально допустимое качество. Если у вас не специализированный сайт для фотографов или дизайнеров, а фотографии не распадаются на пиксели – никто вас за это не осудит. Если контент уже залит и руками менять его мучительно долго – остаётся только применять плагины. Например, EWWW Image Optimize

3 Кеширование

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

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

Для WP придумано много плагинов кеширования, имеющих разную степень сложности. Вот самые популярные:

WP Super Cache

W3 Total Cache

Batcache

Подробнее про настройку кеширования на основе плагина WP Super Cache смотрите видео.

4 Чистка кода

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

Также к чистке кода можно отнести отключение ненужных плагинов или замену их на более лёгкие.

5 Использование CDN

Рекомендуется по возможности использовать загрузку через CDN для наиболее распространённых ресурсов, таких, как bootstrap или jquery. Звучит странно – почему тянуть код со сторонних серверов выгоднее с точки зрения производительности, чем со своего? На самом деле ларчик открывается просто: во-первых, CDN-серверы обычно быстрее, чем ваш хостинг, на котором развёрнут сайт. А во-вторых, если посетитель уже побывал на сайте, который грузил ресурсы с CDN, то они хранятся в кеше браузера. И значит, будут загружены на клиентской части. О нюансах подключения jquery через CDN читайте здесь.

6 Автооптимизация

Под этим термином понимают несколько достаточно простых операций. Основные из них:

а) минификация кода css и javascript, когда удаляются пробелы и весь код вытягивается в одну строку

б) объединение кода из нескольких маленьких файликов в один файл, что, как правило, радикально ускоряет загрузку

в) первоочередная загрузка ресурсов, необходимых для отрисовки главного экрана

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

7 Смена хостинга

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

Дополнительно, при грамотных настройках самого сервера работу сайта можно ускорить в разы. В частности, речь идёт о настройке PreFork и Worker, отключении лишних модулей, которые не требуются для работы WP, редактирование конфигурационного файла php.ini в части выделяемого объёма памяти и работы с кешем, а также, по желанию, различных акселераторов. Впрочем, это уже тема отдельной статьи.

В завершении хотелось бы коснуться инструментов, с помощью которых можно проверить скорость работы сайта. Обыкновенно заказчики пользуются всем известным GooglePageSpeed. Однако, в последнее время сервис от Гугл иногда демонстрирует очень странные результаты. Например, оптимизированный на 100% сайт по ГПС может резко тормозить по сравнению с нетронутой версией. А некоторые требования сервиса вообще маловыполнимы – например, перенос всех скриптов из шапки в подвал может остановить работу некоторых плагинов.

Мы рекомендуем пользоваться либо инструментами вашего браузера, которых вполне достаточно, чтобы оценить и порядок загрузки каждого ресурса и необходимое для этого время. Либо неплохим сайтом GTmetrix, который даёт адекватные оценки и полезные советы по оптимизации.