WordPress c настройками по умолчанию не очень шустрый. CMS не пытается использовать все возможности для быстрой работы. Однако стоит отметить, что есть плагины для ускорения WordPress. Давайте разберемся как оптимизировать работу вордпреса.
В самом начале рассмотрим какая производительность WordPress сразу после установки показатели будем смотреть на Pagespeed:
Показатель 76 из 100 не высокий. Попробуем поднять этот показатель.
Настройка сервера
Nginx
Вы не используете Nginx, тогда вам точно нужно это сделать. Обязательно используйте нжинкс в качестве фронтенда. Простой пример конфигурации для кеширования статики:
server { server_name wp.com; root /var/www/wp; # путь к WP index index.php; location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { access_log off; log_not_found off; expires max; # кеширование статики } location / { try_files $uri $uri/ /index.php?$args; # permalinks } location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
PHP кеш
В качестве кэша можно использовать различное ПО, в данном примере мы рассмотрим APC. Проверяем установлен ли у нас APC (если установлен получим список настроек):
php -i | grep apc
PHP выше 5.5 есть встроенный модуль opCache, так что APC ставить нет необходимости.
Тюнинг Mysql
WordPress устанавливает таблицы InnoDB, параметры MySQL должны соответствовать параметрам сервера, настроить их нужно в файле my.cnf:
Буфер InnoDB рекоммендовано установить в значение половины RAM:
innodb_buffer_pool_size = 256M
Необходимо включить кэш для MySQL:
query_cache_size = 32M query_cache_limit = 1M
Параметров достаточно много, правильную настройку MySQL для WordPress, могут произвести наши сотрудники, обращайтесь в контакты.
Кеширование
Кэширование очень важно для оптимизации производительности. Оно может дать значительный прирост скорости работы сервера. Проверим на ab от Apache, что бы продемострировать это. Сначала проверим первоначальную установку WordPress.
ab -c 10 -n 500 http://wordpress/
Время получили в среднем 50мс:
Total transferred: 4183000 bytes
HTML transferred: 4074500 bytes
Requests per second: 17.62 [#/sec] (mean)
Time per request: 567.421 [ms] (mean)
Time per request: 56.742 [ms] (mean, across all concurrent requests)
Transfer rate: 143.98 [Kbytes/sec] received
WP Super Cache
Простая возможность для неопытного пользователя вклчить кеширование. Это плагин с большим количеством настрек для тюнинга кеша. Скачиваем плагин, включаем
Результаты WP Super Cache время ответа на запрос уменьшилось в 25 раз:
Total transferred: 4293500 bytes
HTML transferred: 4146500 bytes
Requests per second: 499.01 [#/sec] (mean)
Time per request: 20.040 [ms] (mean)
Time per request: 2.004 [ms] (mean, across all concurrent requests)
Transfer rate: 4184.61 [Kbytes/sec] received
Не обязательно использоватьWP Super Cache можно воспользоваться Varnish. Так же уменьшает время ответа.
Стили, скрипты и картинки
Минификация и сжатие
Минификация CSS/JS поможе уменьшить 10…15% их размера. Для этого можно использовать модуль WP Minify. Его нужно скачать, и активировать. Gzip может уменьшить размер файлов в несколько раз. Включаем его в Nginx’e :
server { ... gzip on; gzip_disable "msie6"; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript; ... }
Оптимизация картинок
Картинки зачастую тяжеловестные и занимают большой объем страницы. Благодаря сжатию картинок экономим 30…40% их размера. Можно использовать плагин WWW Image Optimizer. Что бы он работал на сервере должны быть установлены imagemagick и gd:
apt-get install imagemagick php5-gd
Хорошие практики и опыт
- Стоит отдать предпочтение VPS для хостинга WordPress. Shared хостинг не позволяет выполнения некоторых настроек.
- Лучше проверять темы Pagespeed и выбирать более быстрые
- Чистите корзину
- Чистите ревизии постов
- Удаляйте спам
В результате
В результате мы получили ускорение работы WordPress (мы включили Varnish) и увеличение показателя Pagespeed с 76 до 93:
Полезные инструменты и ресурсы
P3 profiller плагин определит узкие места Вашего WordPress.
Предлагаем поделиться опытом и инструментами которые Вы используете для ускорения WordPress в комментариях.