В первой части статьи мы рассказали об оптимизации WordPress. Наши читатели продолжили эксперименты и составили расширенный набор рекомендаций, результаты которых опубликованы в этой статье. За это время мы добавили шаблоны для WordPress и Joomla в облачные VPS, позволяющие быстро развернуть нужную CMS на мощных и быстрых облачных серверах.
Спасибо всем, принявшим участие в конкурсе. Лучшему автору мы подарим год VPS 1024 от Infobox. Кому из участников конкурса подарить
Под катом советы читателей по оптимизации WordPress (без изменений), ссылка на бесплатное тестирование облачных
Советы от пользователя Александра
1. Используем хороший хостинг (а лучше впс купить, тем более в последнее время появились очень дешевые тарифы)
2. Отключаем неиспользуемые плагины, по возможности заменяем их кодами.
3. Оптимизируем код, оптимизируем скрипты, оптимизируем изображения.
4. Оптимизируем базу данных плагином Optimize DB.
Можно использовать запросы:
DELETE FROM wp_posts WHERE post_type = "revision" - очистка ревизий постов
DELETE FROM wp_posts WHERE post_status = 'trash' - очистка корзины
5. Удаляем, а также исправляем битые ссылки — плагином Broken Link Checker
6. Отключаем ревизии постов. Для этого в корне движка найдите файл wp-config.php, откройте его на редактирование и в самое начало, обязательно после тега <?php, вставьте следующую строку:
define('WP_POST_REVISIONS', false);
Или другой вариант отключения ревизий. Необходимо изменить одно из значений с «true» на «0» или «false» в функции wp_functionality_constants(), которая находится в файле /wp-includes/default-constants.php
if ( !defined('WP_POST_REVISIONS') )
define('WP_POST_REVISIONS', false);
7. Отключаем руссификацию админки, путем удаления из файла wp-config.php строки:
define ('WPLANG', 'ru_RU');
Руссификация админки вордпресса использует около 7MB памяти.
8. Отключаем корзину:
wp-config.php. В самое начало, обязательно после тега <?php, вставьте следующую строку:
define('EMPTY_TRASH_DAYS', 0);
9. Обязательно используем плагин кэширования. Рекомендую W3 Total Cache.
10. Также, можно отключить проверку обновлений, установив плагин — Disable WordPress Updates
(осторожно, отключение обновлений может крайне негативно сказаться на безопасности сайта)
Дополнения
1. Чтобы узнать нагрузку, которую создает сайт, можно вставить в шаблон следующий код (вставляем в файл темы footer.php)
<?php
echo "Статистика:" . get_num_queries() . "/ "; timer_stop(1);
echo "s/ ". round(memory_get_usage()/1024/1024, 2) . " MB ";
?>
2. Увеличить скорость загрузки большой страницы (с графикой) можно плагином BJ Lazy Load
Данный плагин выполняет загрузку только тех картинок, которые видны на экране. Когда быстро скролишь страницу, то можно будет увидеть, как постепенно загружаются и появляются изображения. Плагин будет постепенно загружать картинки по мере пролистывания страницы, что в свою степень будет сохранять трафик и ускорять загрузку страницы.
3. Очень настоятельно рекомендую создать мобильную версию портала.
4. Рекомендую протестировать сайт вот этим сервисом: http://developers.google.com/speed/pagespeed/insights/
Данным сервисом можно узнать проблемные места на блоге, которые снижают скорость работы сайта. А также сервис предоставляет рекомендации, и их желательно выполнить.
Советы от пользователя Rail
Клиентская оптимизация
Kартинки можно ужимать до публикации, а верстать шаблон для сайта с применением удобных инструментов как Yeoman/Grunt/Gulp — в таком случае картинки, js и css будут уже изначально ужаты и оптимизированы.
Также рекомендую проанализировать сайт встроенным аудитом в Chrome — F12 -> Audits -> Run
Этот инструмент локальный аналог Google Insights. Например в нем можно увидеть процент неиспользованного css дабы выпилить его.Если на сайте используются сложные JS-эффекты то можно пройтись до вкладки Profiles и нажать Start. В профилировщике можно увидеть сколько % времени отняла каждая js-функция и замерить fps на сайте.
Полезные ссылки:
https://developer.chrome.com/devtools/docs/cpu-profiling
https://developer.chrome.com/devtools/docs/javascript-memory-profiling
CSS в шаблоне стоит размещать ближе к верху страницы, а JS желательно в самом низу.
Серверная оптимизация
Если на сервере крутится небольшое количество сайтов, то есть смысл исключить из стека Apache заменив его на Nginx. Хороший док по настройке Nginx для WP есть в кодексе — http://codex.wordpress.org/Nginx
Для PHP < 5.5 лучше поставить опкешер APC или Xcache. В 5.5 есть уже встроенный опкэшер. У APC и у Xcache в дистрибутиве имеются панели для отображения статуса кэша в реальном в времени (% попадания данных в кэш). Согласно этим данным можно подкрутить настройки кэширования для оптимальной работы.
Также полезным делом будет запустить mysqltuner.pl и подкрутить настройки MySQL-сервера согласно рекомендациям утилиты.
Для ускорения самого WordPress я бы посоветовал немного подкрутить wp-config.php — http://codex.wordpress.org/Editing_wp-config.php. Так к примеру есть возможность прописать название и слоган сайта прямо в конфиге и сэкономить на паре запросов к БД или же включить режим дебага.
Для тестов рекомендую еще вот эти сервисы:
http://tools.pingdom.com/fpt/ — тестирование скорости загрузки
http://loadimpact.com — нагрузочное тестирование
Пробная версия Cloud VPS от Infobox
Для того, чтобы вы смогли попробовать установить и оптимизировать WordPress, мы предоставляем пробную версию Cloud VPS на 15 дней бесплатно. Регистрируйтесь по ссылке.
Успешных оптимизаций WordPress!
Автор: infobox