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

Простая возможность для неопытного пользователя вклчить кеширование.  Это плагин с большим количеством настрек для тюнинга кеша. Скачиваем плагин, включаем

image

Результаты 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 в комментариях.