Розганяем WordPress: 6 главных шагов

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

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

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

1.1 Pingdom

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

Бенчмарк одного достаточно знаменитого ресурса.

1.2 YSlow

YSlow– плагин для Firefox, кой встраивается в, наверное наилучший плагин для интернет разработчика, Firebug. Он исследует более 20 причин, которые воздействуют на скорость работы интернет-сайта и оценивает общую продуктивность по 100 бальной системе, а каждый единичный элемент оценкой от A до F.

1.3 Количество запросов и время их выполнения

Вставив небольшой кусок PHP кода, можно вывести в футер количество запросов к БД и время, затраченное на их выполнение.
queries in seconds.

2 Web Hosting

Хостинг 1 из важных деталей, оказывающих большое влияние на продуктивность блога. Не вдаваясь в детали, вот совсем обычная характеристика наиболее фаворитных типов хостинга, коия поможет вам приблизительно оценить нагрузку на сервер:
Shared Hosting – на одном сервере имеет возможность хоститься в среднем возле 100 человек;
VPS – на одном сервере имеет возможность хоститься возле 20 человек;
Dedicated – сервер станет использоваться лишь вами.Чтобы замечать примерную нагрузку на сервер, залогиньтесь чрез ssh и введите в консоли команду top.Это, естественно, не значит, будто вы не сможете убыстрить блог, работающий на виртуальном хостинге(Shared Hosting), но стоит держать в головепродуктивность тем больше, чем большие ресурсы мы владеем в собственном распоряжении.

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

3 Установка и наладка сервера

Убедитесь, намечаемая нагрузка подходит мощности сервера и он сумеет с ней совладать. В первую очередность это будет находиться в зависимости от размера оперативной памяти и процессора. Как правило, WordPress устанавливают на Apache, но немало успешных решений есть и на базе остальных http серверов: nginx, lighttpd и т.д.

Не пренебрегайте обновить до последней версии 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 на имя вашего домена, чтоб выключить внедрение хотлинков:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC]
RewriteRule .*\.(gif|jpg|png|ico)$ — [F,L]

4.2 Применяйте наружный хостинг для сохранения изображений

Хостинг изображений на наружных серверах несомненно поможет существенно понизить нагрузку на сервер. В образце ниже вы сможете видеть понижение размера используемой оперативной памяти на одном из блогов опосля перенесения изображений на сервис Amazon S3.

4.3 Сжимайте java-скрипт код

Сжатие javascript достаточно обычная задачка. Так как он производится при любом просмотре странички, вы сможете убавить размер Javascript, удалив все незаполненное место. Вот обычный аппарат, кой несомненно поможет совершить это за вас — JavaScript Compressor.

4.4 Javascript в истоке странички

Нередко приключается так, что интернет-сайт начинает загружаться медлительно либо вообще останавливается, т.к. иной ресурс, с которого вызывается javascrip, не доступен либо оффлайн. Чтоб избежать данного вынесите целый javascript код в конец странички, а то что сообразно каким-то факторам перенести никак не получилосьпопытайтесь заключить в iFrame.

4.5 Применяйте кэш браузера

Сам сообразно себе кэш браузера, естественно никак не устроит ваш блог, но несомненно поможет понизить нагрузку на сервер, кэшируя нередко загружаемые объекты(стили, составляющие интерфейса и т.п.).
Попытайтесь вделать последующий код в .htaccess файл:
FileETag MTime Size

<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[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

4.7 Применяйте CDN для статических файлов

Ежели беречь все изображения на одном и том же домене, то браузер станет ждать их загрузки 1-го за другим. Предположим на страничке их у вас имеется 12 штук, если вы поделите их меж 3-мя поддоменами, они станут загружаться сразу из 3-х «различных» источников вместо того, чтобы загружаться браузером по очереди из 1-го.
Можете испытать вынести все 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 Сократите численность запросов

Уберите ненужные требования, чтобы убыстрить генерацию странички.

6 WordPress Plugins

И напоследок предлагаю вашему вниманию некоторое количество плагинов, которые имеют все шансы нарастить продуктивность wordpress. Как только все, описанное выше, будет сделано, данные плагины посодействуют достигнуть еще более высочайшей производительности.

WP Super Cache
Наверное, наилучший плагин к WordPress. WP Super Cache творит статические html версии всякой странички и загружает их каждый раз, обходясь тем самым в отсутствии запросов к БД. Это существенно усиливает скорость загрузки страничек и понижает нагрузку на сервер. Строго рекомендовано к установке.

PHP Speedy WP
Данный плагин решает иную проблему, обозначенную в данной заметкеустранение незаполненного места в CSS & javascript. Но имеется некие трудности сопоставимости данного плагина с WP Super Cache, не считая такого он длительное время уже никак не обновлялся, поэтому применяйте на собственный страх и риск.

Optimize DB
Плагин дозволяет улучшить таблицы MySQL без поддержки PHPmyadmin.

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(1 голос, в среднем: 5 из 5)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *