Представляю наиболее полную инструкцию с способами по ускорению работы сайта на WordPress. Благодаря описанным ниже способам я ускорил загрузку своего сайта с 24,40 секунд до 1,41 секунды. Увеличил скорость загрузки в 17,3 раза! Хороший результат. Чтобы узнать как — читайте полную статью.

Замеры скорости работы сайта я проводил сервисом Pingdom Speed Test . Тестировал главную страницу сайта. Смотрите ниже показатели сайта «до» и «после» улучшений, и короткую и полную инструкцию по ускорению сайта.

Показатели сокрости загрузки сайта

Скриншот замера скорости ПЕРЕД оптимизацией блога:

Скриншот замера скорости после оптимизации и проведенных ниже рекомендаций.
.

Короткое резюме по ускорению сайта на WordPress

Основное влияние на скорость оказали такие факторы как смена хостинга с использованием SSD дисков, оптимизация изображений, включение плагина кеширования W3 Total Cache, оптимизация БД сайта, удаление старых ревизий, включение сжатия файлов на стороне сервера, включение кеша для статичных файлов на стороне браузера. Далее следует полная развернутая инструкция по ускорению сайта на WordPress.

Полная инструкция как ускорить сайт на WordPress

1. Качественный SSD хостинг, быстрый пинг

Хостинг должен быть на SSD дисках. Желательно чтобы сервера хостинга располагались в вашей географической зоне, на которую ориентирован сайт. Если хостинг будет на SSD, но в США, а ваш блог ориентирован на Россию и страны СНГ, то толку от такого SSD будет мало. Так как будет идти долгий пинг для связи с сервером. Поэтому месторасположение дата центра хостинга также важно. Это важный параметр хостинга — быстрый пинг, отклик серверов. И чтобы хостер не делал оверселлинг услуг. Про тип хостинга — конечно лучше брать как VDS (виртуальный выделенный сервер) с необходимыми для вашего сайта параметрами, вместо обычного shared хостинга. Какую именно конфигурацию VDS выбрать — это зависит от нагрузки которую ваш сайт создает не сервер и от размера его суточной аудитории. Я бы советовал брать минимум 1Gb Ram, 1 ядро процессора и 10 Гб SSD. В начале у меня был VDS на обычных HDD дисках, затем я поменял его на SSD VDS хостинг.

Хостинг «До»:

Запретив индексацию сайта этим способом, вы сможете снизить нагрузку на хостинг, следовательно ускорить загрузку сайта, высвободив ресурсы сервера.

5. Настройка файла.htaccess для снижения нагрузки на сервер.

В файле.htaccess - задаются дополнительные команды для хостинга.С помощью специальных настроек можно убрать лишнюб нагрузку на сервер, и ускорить работу сайта.

Настройка №1. Часто с сайтов копируют информацию вместе с картинками, не изменяя адреса картинок. И когда такое происходит картинки лежащие на нашем хостинге загружаются на других сайтах, и это создает ненужную нагрузку на хостинг.

Следующим кодом можно запретить загружать изображения нашего сайта на сторонних сайтах:

RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+.)?yandex.ru/.*$ RewriteCond %{HTTP_REFERER} !^http://(.+.)?undsoft.com/.*$ RewriteCond %{HTTP_REFERER} !^http://(.+.)?yandex.net/.*$ RewriteCond %{HTTP_REFERER} !^http://(.+.)?feedburner.com/.*$ RewriteCond %{HTTP_REFERER} !^http://(.+.)?mail.ru/.*$ RewriteCond %{HTTP_REFERER} !^http://(.+.)?poisk.ru/.*$ RewriteCond %{HTTP_REFERER} !^http://(.+.)?yourdomain.ru/.*$ RewriteCond %{HTTP_REFERER} !^$ RewriteRule .*.(jpe?g|gif|bmp|png)$ - [F]

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

Настройка №2. В файле.htaccess можно и следует указать кэширование для некоторых объектов сайта (изображений, css и js фалов) чтобы браузер кешировал их на своей стороне и не загружал их каждый раз. Для этого в.htaccess ниже первого кода добавляем следующий код:

FileETag MTime Size ExpiresActive on ExpiresDefault "access plus 1 year"

Настройка №3. Включим gzip сжатие страниц перед отправкой их пользователю. Вставим в.htaccess следующий код:

mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file .(html?|txt|css|js|php)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

Настройка №4. Ограничение спама в комментариях. Большинство спам комментариев отправляются автоматически. Этим кодом мы запретим напрямую отсылать комментарии минуя форму комментирования. Теперь спам боты не смогу отправлять комментарии.

RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post.php* RewriteCond %{HTTP_REFERER} !.*yourdomain.ru.* RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$

Настройка №5. Если вы пользуетесь системой FeedBurner, то у вас явно установлены плагины, которые отправляют RSS-контент на сайт FeedBurner. Сегодня вы можете их удалить, потому что перенаправить контент можно и без плагинов, уменьшив нагрузку на хостинг.

RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !FeedBurner RewriteCond %{HTTP_USER_AGENT} !FeedValidator RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://yourdomain.ru

ВНИМАНИЕ!!! Не забудьте в примерах выше заменить адрес yourdomain.ru на адрес своего сайта.

6. Оптимизация базы данных

Важное значение в скорости работы сайта имеет База Данных. При сохранении постов по нескольку раз WordPress создает ревизии записи — состояния постов в разные моменты их редактирования. В результате со временем база данных содержит большое количество ненужных ревизий постов, и их необходимо очищать и оптимизировать. Сделать это можно с помощью плагина Optimize DB . Установить его можно из админки WordPress. Например запустив его на своем сайте я удалили более 1200 ревизий постов. Что значительно улучшило скорость работы БД.

7. Оптимизация кода шаблона (темы)

Оптимизация кода темы заключается в том чтобы убрать ненужные запросы и/или заменить их на конкретные значения, например название блога.

Настройка №1. Найти код, который отвечает за стили в файле header.php:

" type="text/css" media="screen" />

Заменить на:

Внимание!!! Не забудьте изменить yoursite.ru на ссылку своего сайта.

Настройка №2. Изменить код пинбеков:

" />

Настройка №3. Изменение кода RSS ленты:

RSS Feed" href="" />

Заменить с исправлением yoursite.ru на свою ссылку:

Настройка №4. Довольно часто в подвале сайта (footer.php), разработчики тем оставляют совершенно ненужные запросы к Базе данных. Например:

Данный код просто отображает название сайта, что бы лишний раз не обращаться к базе данных разумнее своими руками один раз написать название и не нагружать сайт. Этот же код можно поискать и в других разделах сайта, но прежде чем удалять, подумайте.

1) Если ваш сайт не использует комментарии, не стоит их скрывать с помощью плагинов, это создает совершенно ненужную нагрузку. Так как вам комментарии совершенно не нужны, просто удалите следующий код из файла темы (single.php):

2) Старайтесь не использовать внешние скрипты, такие как, комментарии от Вконтакте, различные виджеты социальных сетей. Да, это выглядит красиво и эффектно, но создает приличную нагрузку на сайт. Из примеров могу сказать что мой сайт значительно грузил код веб-визора от ЯндексМетрики, виджет Add.This. Кнопки соц сетей я поменял на отельный JS плагин.

3) Почистите весь код вашего сайта от комментариев, данные комментарии вставляются с помощью тегов и /*код/. Оставьте только нужное, так как сайту приходится тратить лишние силы на их загрузку…

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

5) Все дополнительные коды на подобии счетчика сайта от Live Internet, либо Google Analytics стоит размещать в подвале сайта, что бы они так же как и другие скрипты грузились только в самую последнюю очередь.

8. WordPress плагины — для ускорения скорости загрузки сайта

Несколько советов по работе с плагинами, чтобы оптимизировать их нагрузку на сайт.

1) Удалите ненужные плагины. Ненужные плагин Со временем работающие плагины накапливаются, и можно насобирать много ненужных пагинов которые помимо занимаемого места будут создавать ненужную нагрузку на сайт.

2) Деактивируйте ненужные плагины. Постарайтесь использовать как можно меньше Активированных плагинов. Некоторым плагинам не обязательно давать работать постоянно.Например плагин для оптимизации БД можно включать только на период работы с ним.

10. Ускорение сайта с помощью кэширования

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

1) WP Super Cache – лучший и бесплатный плагин для кэширования в WordPress. Рекомендую его установить и использовать. Также хорошие плагины WP Total Cache, WP Rocket.

2) Плагин Autoptimize – рекомендуют использовать вместе с Wp Super Cache. Никаких сверх настроек делать не нужно, просто активируйте плагин, в разделе «Настойки» → «Autoptimize» поставьте галочки, и плагин будет работать. Будьте осторожны, проверьте работоспособность сайта после изменения настроек, что бы предостеречь себя от неприятностей.

3) Плагин WP Widget Cache – позволяет кэшировать виджеты, с чем не справляется плагин Wp Super Cache.

11. Используйте CDN сети для более быстрой загрузки контента

Еще один способ ускорить загрузку сайта — использовать CDN сети, Content Delivery Networks. Каждый раз когда пользователь открывает ваш сайт, он загружает всю информацию с вашего сервера, на котором расположен сайт. Если регион пользователя и регион расположения сервера с вашим сайтом одинаковы, скажем Москва Россия — то все олично. Но если пользователь заходит на Ваш сайт скажем с Азии, или США, то доставка контента к нему уже будет происходить с меньшей скоостью, т.к. тут влияет расстояние. Использование CDN сетей дает возможность загружать файлы вашего сайта (изображения, скрипты, стили) не только с вашего хостинга, а с дата-центров по всему миру. Таким образом заходя на сайт, пользователь автоматически загрузит файлы сайта из наиболее близкой для него точки с серверами CDN сети, что значительно ускорит загрузку сайта.

Можно исюпользовать плагин Jetpack Photon который дает возможность использовать CDN сеть WordPress для загрузки изображений вашего сайта.

Можно использовать другие CDN сети, например MaxCDN, NGENIX или Amazon CloudFront. Я CDN сети не использовал, поэтому в этом пункте ограничися лишь кратким ознакомительным описанием этой технологии.

Подключая свой сайт к CDN сети, все файлы сайта будут загружаться с мощнейших дата-центров по всей планете. Обычно такие услуги платные, стоимость начинается от 9$, и используют их очень популярные сайты с огромной посещаемостью.

Несколько мелочей, которые в также помогут вам ускорить загрузку сайта:

  1. На главной странице сайта выводите только анонсы статей , не нужно выводить полные статьи.
  2. Очень большие статьи разделяйте на страницы с помощью тега .
  3. Не стоит выводить на главной странице больше 5-6 статей.
  4. Не стоит выводить под статьей больше 50 комментариев, пользуйтесь так же переключением страниц между комментариями.
  5. Установите поиск по сайту от Google или Yandex. Сайт будет искать информацию быстрее.

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

От автора: скорость – качество, которым должны обладать все веб-сайты, и WordPress не исключение. У вас не будет второго шанса произвести первое впечатление на пользователя. Очень важно убедиться, что у ваших пользователей нет никаких причин покинуть сайт еще до его полной загрузки или причин, по которым они не захотят возвращаться на ваш веб-сайт.

В этой статье я расскажу, как эффективно ускорить сайт на WordPress при помощи 12 лучших практик, которые помогут вам увеличить производительность вашего сайта.

Выбор хорошего хостинга

Выбор хостинга оказывает огромное влияние на скорость сайта. Хороший веб-хостинг это основа, на которой будет стоять ваш сайт. Если вы работаете над повышением скорости загрузки сайта, первым делом обратите внимание на хостинг (даже если сайт не на WordPress).

Существует несчетное количество хостинг-провайдеров, рынок очень конкурентный. Так что стоит уделить немного времени и выбрать хороший хостинг. Чарльз Коста основательно рассмотрел данный вопрос, приведенный ниже список статей поможет вам двигаться в верном направлении и осознанно подойти к выбору хостинг-провайдера:

CDN

Сеть доставки или дистрибуции контента (CDN) это система распределенных серверов, которые хранят веб-страницы и другие веб-ресурсы на основе географического положения. Обычно, CDN копирует все статичных файлы с вашего сайта (CSS, JavaScript, медиа файлы и т.д.) и доставляет их пользователям с максимально возможной скоростью.

Кэширование

Кэширование это временное хранение контента, такого как страницы, изображения и другие файлы, участвующие в процессе рендеринга страницы. Контент хранится на локальном носителе пользователя в качестве кэша, и при повторном запросе этих файлов страница отрисовывается намного быстрее. На стороне сервера тоже есть кэширование. Вопрос технический, но есть множество популярных WordPress плагинов, помогающих настраивать и управлять кэшированием очень просто. Самые популярные из них это W3 Total Cache и WP Super Cache.

Минификация CSS и JS файлов

В процессе минификации CSS и JS файлы сжимаются до наименьшего размера, повышая тем самым скорость загрузки файлов браузерами. Если вы предпочитаете вручную минифицировать свои CSS и JS файлы, то вам пригодится YUI Compressor. Или можно воспользоваться WP Minify, который сделает всю работу за вас в автоматическом режиме. В некоторых плагинах для кэширования присутствует опция по минификации.

Сжатие изображений

Помимо того, что большие файлы изображений значительно замедляют сайт на WordPress, они еще сильно забивают пропускную способность сети. Изображения это отличный подопытный для оптимизации. Используйте WPMU DEV WordPress Smush API, плагин WP SmushIt поможет уменьшить размер изображений без потери качества. Я сам пользуюсь этим плагином и считаю удивительным то, насколько он снижает размер изображений.

Сжатие сайта

Простыми словами сжатие сайта похоже на запаковку сайта в ZIP архив. И в случае запроса пользователем любой страницы, браузер ведет себя как WinRAR, распаковывает архив и отображает контент. Звучит, как что-то ненужное, что помимо всего прочего еще и замедлит ваш сайт. Поверьте мне, не замедлит.

Плагин W3 Total Cache крайне популярен для кэширования, но с его помощь можно также сжимать сайты. Воспользоваться данной функцией можно, перейдя: admin page -> Performance -> Browser Cache -> Enable HTTP (gzip) Compression.

Оптимизация базы данных

WordPress зачастую сохраняет почти все. Среди этого хлама нежелательные редакции, трекбек, пингбек, удаленные файлы, неодобренные комментарии или комментарии с маркировкой спам.

Также как и ваш жесткий диск может стать фрагментированным, базы данных WordPress страдают от того же недуга. Тем не менее, для оптимизации базы данных можно воспользоваться плагином WP-Optimize или WP-DB Manager. С помощью последнего плагина можно не только оптимизировать базу данных, но и установить расписание для регулярной проверки.

Выбор правильных плагинов

Установка большого количества плагинов может серьезно захламить ваш сайт. Нет смысла ставить или хранить ненужные вам плагины. Проверка плагинов это отличный способ ускорения. Критичные для работы сайта плагины необходимо оставить, а все остальные удалить.

Отключение пингбеков и трекбеков

По умолчанию, когда другой сайт упоминает о вас, ваш сайт получает об этом уведомление. Такие уведомления называются пингбеки и трекбеки. Их можно отключить: admin page -> settings -> discussion снимите две верхние галочки, как на скриншоте ниже.

Отключение данной функции не навредит вашему сайту.

Выбор правильной темы или темы-фреймворка

Одни темы WordPress могут быть очень быстрыми с хорошо написанным кодом, а другие же совсем наоборот.
При выборе темы обращайте внимание на скорость загрузки демо страницы. Это даст вам представление о том, как данная тема повлияет на общую скорость загрузки вашего сайта.

Оптимизация структуры домашней страницы

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

Включение Keep-Alive

HTTP Keep-Alive это идея использования TCP соединения для посылки и получения множественных HTTP запросов вместо открытия нового соединения под каждый запрос. На вашем хостинге данная функция может быть уже включена, так что сначала узнайте у вашего провайдера. Но если у вас самый обычный аккаунт, скопируйте строку кода ниже в файл.htaccess.

Wordpress в стандартной установке довольно медленный. По умолчанию движок не использует некоторые возможности современного Веба для значительного своего ускорения. Существует целая куча плагинов для оптимизации Wordpress"a. Давайте наведем в них порядок и проведем капитальную оптимизацию.

Прежде чем приступить, посмотрим, что показывает голая установка Wordpress по Pagespeed :

Результат 76 из 100 довольно низкий. Посмотрим, насколько можно увеличить этот показатель.

Серверная часть

Nginx
Если Вы еще не используете Nginx, пора переехать на него. Простое и мощное решение. Конфигурация для работы с поддержкой permalinks и кешированием статики:

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 (в ответ получим список настроек APC):

Php -i | grep apc

В версиях PHP после 5.5 есть встроенный модуль opCache, так что APC ставить не прийдется.

Тюнинг Mysql
Wordpress использует InnoDB, а это значит мы можем существенно увеличить производительность MySQL, подстроив ряд параметров (файл my.cnf) под наше железо:

Размер буфера InnoDB лучше поставить в половину доступной оперативной памяти:

Innodb_buffer_pool_size = 256M

Не забываем включить кеширование MySQL:

Query_cache_size = 32M query_cache_limit = 1M

Более расширенная настройка MySQL для Wordpress.

Кеширование

Это наиболее важный пункт. Кеширование может дать значительное ускорение сайта и экономию ресурсов сервера. Для наглядности будем использовать ab от Apache . Проверим стандартную установку Wordpress без кеширования. Запросы направляем через локальную сеть, поэтому задержку ничего, кроме самого Wordpress"a не создает:

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 (mean) Time per request: 56.742 (mean, across all concurrent requests) Transfer rate: 143.98 received

Хром показывает среднее ожидание ответа на уровне 150мс (сервер находится в Нидерландах):

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 (mean) Time per request: 2.004 (mean, across all concurrent requests) Transfer rate: 4184.61 received

Cреднее ожидание ответа в Хроме уменьшилось в 3 раза:

В качестве серверной альтернативы 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; ... }

Оптимизация картинок
Картинки могут составлять очень большую часть общего размера страницы. Lossless сжатие картинок может сэкономить 30...40% их размера. Это умеет делать модуль EWWW Image Optimizer . Для его работы понадобится установить imagemagick и библиотеку gd:

Apt-get install imagemagick php5-gd

Хорошие практики и опыт

  • Лучше всего выбирать VPS для хостинга Wordpress. На Shared хостинге многое из описанного выше сделать невозможно. Кроме этого, VPS сейчас достаточно дешевый.
  • Проверяйте темы с помощью Pagespeed перед использованием
  • Очищайте корзину
  • Удаляйте старые ревизии постов
  • Удаляйте спам-комментарии
  • Отключайте трекбеки в моменты, когда все становится совсем медленно
  • Раздавайте RSS через feedburner

В результате

У нас получилось голую установку Wordpress разогнать почти в 100 раз по времени генерации страницы (мы включили Varnish) и увеличить показатель по Pagespeed с 76 до 93:

  • Перевод

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

1 Тестируем текущую скорость

Чтобы узнать изменилось ли что-нибудь после нашей оптимизации, не помешает замерять для начала текущую скорость загрузки страниц блога, чтоб было с чем сравнивать. Есть несколько инструментов, которые помогут сделать это:

Не забудьте обновить до последней версии PHP и Apache .

3.1 Отключите неиспользуемые сервисы
Вы можете получить больше доступной оперативной памяти, отключив неиспользуемые службы и оптимизировав MySQL и Apache.
  • Удалите ClamD;
  • Настроить SpamD на использование только 1 дочернего процесса;
  • Удалите Mailman, если, конечно, вы не собираетесь запускать почтовый сервис.
3.2 MYSQL Query Cache
Поскольку стабильность и скорость Wordpress довольно сильно зависит от работы БД, стоит убедиться, что настройки в my.cnf соответствуют возможностям сервера. В первую очередь следует установить настройки кэширования запросов, добавив в my.cnf следующие строки:
query_cache_type = 1
query_cache_limit = 2M
query_cache_size = 20M

Чтоб настройки вступили в силу придется перезапустить сервис MySQL сервис.
3.3 Кэш компилятора: XCache или Eaccelerator?
Кэш компилятора увеличивает производительность откомпилированных скриптов на сервере, кэшируя их – это поможет сократить время выполнения PHP скриптов. Стоит попробовать и то и другое решение, однако по результатам опытов увеличение производительности при использовании Xcache на 5% выше, чем с Eaccelerator.
3.4 Увеличьте максимальное число соединений на Apache
Увеличение максимального количества соединений в httpd.conf повысит производительность, т.к. сервер сможет обрабатывать большее количество подключений за раз. Однако, следует изменять этот параметр осторожно, дабы не исчерпать весь объем оперативной памяти и не замедлить работу сервера, потому всегда тестируйте новые настройки прежде чем запускать их в работу. Установим к примеру 150 коннектов:
max_connections = 150

Не забудьте рестартить сервис Apache, чтоб применить настройки.

4 Оптимизация кода и графики

Итак, сервер заработал и теперь настало самое время поиграть с кодом Wordpress.
4.1 Отключите хотлинки
Каждый раз когда вы используете свой сервер для хранения изображений вы существенно больше используете его ресурсов. Довольно часто люди заимствуют ваши изображения, ставя хотлинки на своих серверах. Это не только занимает канал, но и создает определенную нагрузку на сервер.
Добавьте следующий код в .htaccess файл, заменив example.com на имя вашего домена, чтобы отключить использование хотлинков:
< IfModule mod_rewrite .c >
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$
RewriteRule .*\.(gif|jpg|png|ico)$ -
4.2 Используйте внешний хостинг для хранения изображений
Хостинг изображений на внешних серверах поможет значительно снизить нагрузку на сервер. В примере ниже вы можете видеть снижение объема используемой оперативной памяти на одном из блогов после переноса изображений на сервис Amazon S3 .

4.3 Сжимайте java-скрипт код
Сжатие javascript довольно простая задача. Поскольку он выполняется при каждом просмотре страницы, вы можете уменьшить размер Javascript, удалив все незаполненное пространство. Вот простой инструмент, который поможет сделать это за вас - JavaScript Compressor .
4.4 Javascript в начале страницы
Часто случается так, что сайт начинает загружаться медленно или вообще останавливается, т.к. другой ресурс, с которого вызывается javascript(на пример Digg badges, Tweetmeme и т.д.), не доступен или оффлайн. Чтобы избежать этого вынесите весь javascript код в конец страницы, а то что по каким-то причинам вынести не удалось – попробуйте заключить в iFrame.
4.5 Используйте кэш браузера
Сам по себе кэш браузера, конечно не сделает ваш блог быстрее, однако поможет снизить нагрузку на сервер, кэшируя часто загружаемые объекты(стили, элементы интерфейса и т.п.).
Попробуйте вставить следующий код в .htaccess файл:
FileETag MTime Size
< ifmodule mod_expires .c >
< filesmatch "\.(jpg|gif|png|css|js)$" >
ExpiresActive on
ExpiresDefault "access plus 1 year"

4.6 Сжимайте статические данные
Вы можете уменьшить размер загружаемой страницы позволив браузеру принимать и передавать данные в сжатом виде. Это также снизит загрузку канала и количество загружаемых данных.
Следующий код в .htaccess может помочь вам в этом:
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0 no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
4.7 Используйте CDN для статических файлов
Если хранить все изображения на одном и том же домене, то браузер будет ожидать их загрузки одного за другим. Допустим на странице их у вас есть 12 штук, если вы разделите их между тремя поддоменами, они будут загружаться одновременно из трех «разных» источников вместо того, чтоб загружаться браузером по очереди из одного.
Можете попробовать перенести все css & javascript файлы на files.yoursite.com , а изображения и временные файлы на static.yoursite.com . Или же просто использовать CDN (Content Delivery Network) – большая сеть серверов, расположенных по всему миру, которые позволят не только хранить ваши файлы на разных поддоменах, а значит загружать их параллельно, но и доставлять пользователю данные с самого близкого к нему сервера. Все это позволит загружать данные намного быстрее.

5 Wordpress

В этой части статьи мы рассмотрим приемы для улучшения производительности, которые можно применить непосредственно к Wordpress.
5.1 Обновитесь до последней версии
Обновления до более новых версий позволяют не только устранять обнаруженные уязвимости, но и улучшают производительность. Для примера в wordpress 2.8 была существенно оптимизирована работа с БД.
5.2 Отключите Post Revisions
Во всех версиях wordpress, начиная с 2.6, редакции ваших статей каждый раз во время правки автоматически сохранялись. Это замедляет работу БД и увеличивает ее размер без особой надобности.
Чтоб отключить post revisions, добавьте следующую строку в wp-config.php :
define("WP_POST_REVISIONS", false);

Чтобы удалить сохраненные ранее ревизии текста, выполните следующий запрос в PHPmyadmin:
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = "revision"
5.3 Сократите количество запросов
Уберите ненужные запросы, чтоб ускорить генерацию страницы. Например, следующий типичный код, встречающийся во всех темах для wordpress:
< meta http-equiv ="Content-Type" content ="< ?php bloginfo ("html_type" ); ?> ; charset= " />

Мы запросто можем переписать в:
< meta http-equiv ="Content-Type" content ="text/html; charset=UTF-8" />

Уже на два запроса меньше. Довольно просто, не правда ли?
6 Wordpress Plugins
И на последок предлагаю вашему вниманию несколько плагинов, которые могут повысить производительность wordpress. Как только все, описанное выше, будет выполнено, эти плагины помогут добиться еще более высокой производительности.

Всем нужно, чтобы их сайты загружались и работали как можно быстрее. Но это не будет происходить само по себе, особенно если сайт наполнен довольно тяжелым контентом и его посещает огромное количество людей. CMS WordPress — не образец идеально быстрой платформы, но есть способы, которые помогут ускорить загрузку сайта. Помните, что это влияет не только на лояльность посетителей, но и на место вашего сайта в поисковых результатах, так как Google использует время загрузки страниц как один из факторов ранжирования.

Проверить скорость загрузки сайта можно с помощью инструмента Google Page Speed , чтобы отследить степень влияния каждого шага, который мы разберем далее.

Оптимизация изображений WordPress

Без изображений ваш сайт вряд ли обойдется, поэтому важно, чтобы они были оптимизированы.

Используйте изображения соответствующих размеров. Не загружайте большие картинки, чтобы потом масштабировать их под HTML. Убедитесь, что вы загружаете фотографии и другие изображения размером не больше, чем тот, который должен отображаться.

Удаляйте всю лишнюю информацию из фотографий (дата создания, камера, GPS- координаты и прочее, что можно найти в свойствах файла). С этим вам поможет плагин для оптимизации изображений WordPress WP Smush.it.

Ускорить WordPress помогут CSS-спрайты — техника CSS, которая позволяет объединить все элементы дизайна на странице в одно изображение. В результате вместо того, чтобы загружать множество отдельных изображений, каждый раз делая HTTP-запрос, сайт откроет одно изображение. Использовать CSS-спрайты можно в том случае, если текущая тема вашего сайта их поддерживает.

Существует множество плагинов, которые помогут вам уменьшить размер изображений. Например, EWWW Image Optimizer или уже упомянутый WP Smush.it. Можно использовать и сторонние сервисы для уменьшения размера картинок. Например, сервис Tinyjpg отлично уменьшает размер изображений без потери качества.

Покажем, как обработать все ваши изображения С EWWW Image Optimizer всего в несколько кликов:

После того, как вы установили и активировали плагин, зайдите в администраторскую панель WordPress и перейдите в меню Медиафайлы >> Массовая оптимизация:


Вы увидите опцию для оптимизации всех изображений в библиотеке. Нажмите кнопку “Начать оптимизацию”.

Если вам нужно оптимизировать изображение вне библиотеки медиафайлов (например, графические элементы активной темы), воспользуйтесь кнопкой “Сканировать и оптимизировать”.


Важно: плагин позволяет определять степень сжатия изображений. Например, если у вас фотоблог, то очень хорошо оптимизированные изображения потеряют качество.

Сжатие файлов

Оптимизация сайта WordPress возможна и через сжатие файлов. Если вы пользуетесь хостинговой панелью cPanel, то можете воспользоваться меню “Оптимизировать веб-сайт”.


Пользоваться им очень легко: просто выберите опцию “Сжать все содержимое” и нажмите “Обновить параметры”. Таким образом все файлы вашего сайта сожмутся. Если же вы хотите сжать только определенный тип файлов, то воспользуйтесь опцией “Сжать указанные типы MIME”.

Кэширование браузера

Используя.htaccess файл вашего сайта, вы можете настроить период хранения статического контента (CSS, Javascript, изображение и прочее) в браузерах. Это значительно сократит время загрузки вашего сайта для постоянных посетителей.

Откройте.htaccess файл, расположенный в корневой директории сайта, и добавьте следующий код:

ExpiresActive on
ExpiresByType image/jpg "access plus 60 days"
ExpiresByType image/png "access plus 60 days"
ExpiresByType image/gif "access plus 60 days"
ExpiresByType image/jpeg "access plus 60 days"
ExpiresByType text/css "access plus 2 weeks"
ExpiresByType image/x-icon "access plus 2 weeks"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType audio/x-wav "access plus 1 month"
ExpiresByType audio/mpeg "access plus 1 month"
ExpiresByType video/mpeg "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/quicktime "access plus 1 month"
ExpiresByType video/x-ms-wmv "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType text/javascript "access plus 2 weeks"
ExpiresByType application/x-javascript "access plus 2 weeks"
ExpiresByType application/javascript "access plus 2 weeks"

Срок хранения можно изменить в зависимости от ваших требований.

Важно: перед внесением любых правок в.htaccess сделайте бэкап этого файла. Если с файлом.htaccess что-то пойдет не так, сайт не будет работать.

Кэширование WordPress

Такие плагины значительно улучшат скорость загрузки страниц. Самые популярные — W3 Total Cache и WP Super Cache. Главное отличие между ними — это то, что W3 Total Cache поддается более гибкой настройке.

Рассмотрим пример настройки W3 Total Cache:

После того, как вы установили плагин, в панели управления WordPress перейдите в меню Плагины >> Установленные >> W3 Total Cache >> Settings.


Важно: если вы являетесь пользователем виртуального хостинга, помните, что все возможные варианты кэширования не должны быть включены одновременно (избегайте использовать опцию Toggle all caching types on or off (at once)). Если Object caching и Database caching включены, они могут вызвать проблемы с использованием ресурсов вашего хостингового аккаунта без улучшения скорости загрузки страницы. Но если ваш сайт находится на VPS или выделенном сервере, то вас это не коснется.

В меню Settings включите следующие опции:

  • Page Cache
  • Minify
  • Browser Cache

И после этого нажмите на кнопку “Save All Settings”.

Используя плагин кэширования для WordPress, сайт будет загружаться быстрее.

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

CDN — это сеть доставки контента, которая состоит из серверов, копирующих ваш сайт по всем своим локационным пунктам. Когда ваши посетители делают запрос к сайту, ближайший к ним сервер отдает контент, что значительно сокращает скорость ответа в сравнении с обращением к главному датацентру хостинг-провайдера.

Одним из самых популярных сервисов CDN является Cloudflare . Именно его мы и советуем использовать нашим клиентом и предлагаем вместе со всеми пакетами виртуального хостинга.

Все остальные пункты ниже влияют не так влияют на скорость загрузки страницы, как на оптимизацию использования ресурсов и общий пользовательский опыт, поэтому они не менее важны.

Оптимизация домашней страницы

Первое, что люди видят на вашем сайте — это домашняя страница. А если пользователь попал сразу на какую-то другую страницу, то всё равно многие переходят после этого на главную. Несколько советов по оптимизации домашней страницы:

LazyLoad — плагины, которые помогают осуществлять отложенную загрузку изображений. Это актуально для сайтов, на которых изображений очень много. Загрузка изображения начинается только тогда, когда пользователь долистывает до определенного места на странице. Следовательно, если на странице есть изображение в самом конце, а пользователь просто не долистал до этого места, то загрузка изображения не произойдет. Пример такого плагина — jQuery Image Lazy Load.

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

Включение защиты от хотлинкинга

Если прямая ссылка на изображение, которое находится на вашем сервере/сайте, помещается на какой-нибудь другой сайт, то каждый раз, когда кто-то открывает это изображение, запрос будет идти на ваш сервер и потреблять ресурсы вашего аккаунта. Решением этой проблемы станет полная блокировка таких запросов.

Если вы являетесь пользователем cPanel, вы можете воспользоваться встроенной опцией “Защита Hotlink”.


Также вы можете включить защиту от хотлинкинга при помощи.htaccess кода:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yourdomain\.com/ RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

При помощи этого кода ваш сервер проверяет, откуда именно пришел запрос: если со страниц вашего сайта, то он отдаст изображение пользователю без проблем; если же с чужого сайта – то сервер показывает изображение с ошибкой (nohotlink.jpg – любое изображение, которое вы захотите использовать с этой целью).

Вот и все! Это те базовые опции по оптимизации сайта на WordPress, которые не потребуют от вас много времени, но смогут улучшить работу вашего сайта.