Ускорение wordpress. Ускоряем Wordpress. Минификация и объединение CSS и Javascript файлов

  • Перевод

Скорость и отказоустойчивость – одни из тех факторов, что неизменно влияют на популярность вашего ресурса, ведь даже с лучшим в мире контентом медленно работающий сайт будет раздражать читателей и рано или поздно вы их потеряете. В этой статье мы будем оптимизировать самый популярный блоговый движок - 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. Как только все, описанное выше, будет выполнено, эти плагины помогут добиться еще более высокой производительности.

От автора: скорость – качество, которым должны обладать все веб-сайты, и 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.

Скорость работы сайта очень важна не только для пользователей, но и для поисковых систем, которые в свои алгоритмы включили и данный показатель. Если ваш ресурс грузится, к примеру, секунд 10 и страница «весит» много, есть все шансы, что сайт или определенная продвигаемая страница не попадет в ТОП-10. По мнению Googleи любых других крупных поисковых систем этот показатель очень важен, особенно сейчас – в 2014 году, когда у вебмастеров имеется куча инструментов для «облегчения» сайта в пару кликов и быстрый интернет повсюду.

Самыми легкими являются сайты на голом HTML, но их функциональность оставляет желать лучшего. Используются ресурсы подобного рода уж в очень специфических ситуациях, когда предполагается, что контент менять в ближайшие годы не придется. Например – сайт какой-то фирмы с описанием услуг и телефоном, сдает хозяин 3 квартиры, их фото поместил на 1-2 страницы и оставил свои телефоны. Что ещё нужно потенциальному клиенту, особенно, если речь идет о небольшом городе…

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

Эта CMS полностью бесплатна и имеет огромное сообщество, сможет любой человек, даже если ранее HTML в глаза не видел. Инструкция проста до безобразия, а некоторые хостинг-провайдеры и вовсе устанавливают этот и другие CMSв один клик из панели управления хостингом. При должной настройке WordPress-ресурс будет просто летать, но у большинства людей с этим возникает проблема. Казалось бы – сайт выглядит совершенно обычно и ничего сверхъестественного на его просторах не происходит, а грузятся страницы долго, причем с любой точки мира.

С этой проблемой сталкивался и я. Сегодня расскажу вам, каким образом можно настроить и ускорить WordPress для того, чтобы страницы «весили» минимально и открывались практически моментально. Эта статья по ускорению ВордПресса рассчитана на новичков, есть методы с копанием в коде, настройкой баз данных и отдельных элементов, но люди, разбирающиеся в этом, не нуждаются обычно в наглядных инструкциях. Я расскажу все поэтапно для тех, кто только-только начал осваивать WordPress.

Начнем с «проверки» ресурса. Для начала я определю – сколько времени требуется «в среднем» для загрузки главной страницы. Если у вас есть необходимость проверить другую страницу на скорость загрузки – это тоже можно сделать без проблем.

Проверка скорости работы сайта сервисом WebWait

Адрес сервиса webwait.com

Этот сервис делает определенное количество «посещений» указанной страницы за указанное время, по умолчанию стоит 5 в обоих полях, этого хватает. После чего выдает «среднее» значение.

Как видите, я проверил 2 ресурса. Первый – известный в кругах «вордпрессеров» ресурс, на котором распространяют модули, темы и многие другие полезные «плюшки» для данной CMS, второй сайт – одностраничный сайт на WordPress с минимумом графики и текстом. Показатели хорошие у двоих – 2.45 считается нормальным временем, если у вас 3-4 и более секунды, тогда читайте далее, на что же обратить внимание и как ускорить WordPress с помощью специальных инструментов.

Переходим к «ускорению» WordPress:

Для начала просто посмотрите, какие у вас установлены плагины на данный момент. Есть сборки, идущие с набором плагинов, которые вам не нужны, но они активированы и «тянут» ресурсы. Их, естественно, следует отключить или вовсе удалить. В случае, если позже один из них вам понадобится, на его установку уйдет несколько минут времени, так что не критично!

Больше всего «грузят» систему всевозможные эффекты и «бирюльки» у шаблонов, иногда эти самые эффекты просто выполнены «кривым» способом, так что обратите свое внимание на то, чтобы шаблон был с минимумом таких элементов, а за большую часть «красоты» отвечал CSS. В случае с моим «пациентом», которого я привел выше, можно заметить – просто «левый» сайт на этой CMSс минималистичным шаблоном грузится куда быстрее, чем «папа» wordpress.org, вы можете добиться того же с минимальными усилиями, просто скачав подходящий шаблон и вырезав из него все лишнее.

Мой данный сайт грузится вот так

Как видите меньше двух секунд это хороший показатель и советую вам стремится к нему.

Представляю наиболее полную инструкцию с способами по ускорению работы сайта на 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 для создания своих сайтов совершенно разных тематик и направлений. В результате, на этой системе управления контентом работает практически половина сайтов, в основе которых лежит какая-либо CMS вообще. Сегодня это около 74 млн. сайтов (статистика). И конечно, вопрос о том, как правильно, безопасно и максимально ускорить свой сайт на WordPress является чрезвычайно актуальным для многих.

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

Итак, разгоняем наш любимый WordPress в 2017 году. Поехали!

1. Используйте надежный фреймворк/тему

За каждым WordPress-сайтом лежит тема или фреймворк, и это иногда может приводить к проблемам. Каждая тема написана по-разному, и потому одни зачастую темы лучше, чем другие. Дефолтные WordPress-темы типа Twenty Fifteen, очень быстрые, потому что легковесные.

Будьте осторожны, когда покупаете темы на таких мега популярных сайтах, как ThemeForest и Creative Market. Несмотря на то, что там много великолепных тем, вы должны понимать, что разработчики часто добавляете функции просто, чтоб увеличить продажи. Так что главное — найти правильных разработчиков. И именно о таких мы не раз на страницах этого сайта.

Так же, такие легкие фреймворки, как Thesis Theme framework и Genesis также известны тем, что на их основе разрабатываются быстрые и хорошо написанные темы.

2. Использование кэширования

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

Плагины кэширования

Вот несколько лучших бесплатных и платных плагинов кэширования:

Установка и правильная настройка плагина кэширования может привести к увеличению производительности в 200-300%!

Обход PHP для кэшируемых страниц

Ниже представлена более продвинутая конфигурация Nginx обхода PHP для кэширования страниц. Этот пример оптимизирован для плагина Cache Enabler.

Пример конфигурации Nginx

Set $cache_path $request_uri; # bypass cache if query string not empty if ($query_string) { set $cache_path "nocache"; } # bypass cache for POST requests if ($request_method = POST) { set $cache_path "nocache"; } # bypass cache for admin area if ($request_uri ~ /wp-admin/) { set $cache_path "nocache"; } # bypass cache for logged in users if ($http_cookie ~ (wp-postpass|wordpress_logged_in|comment_author)_) { set $cache_path "nocache"; } location / { try_files /wp-content/cache/cache-enabler/${http_host}${cache_path}index.html $uri $uri/ /index.php?$args; }

Кэширование браузера – добавьте заголовки Expires к WordPress

Вы также можете добавить кэширование браузера, добавив заголовки expires. Заголовки Expires говорят браузеру, должны kb они запросить определенный файл с сервера или они должны захватить их из кэша браузера. Добавляя их, вы можете уменьшить количество HTTP-запросов, которые им нужны. Некоторые плагины кэширования для WordPress позволяют добавить их, но вы также можете просто добавить код в ваш файл .htaccess

# Enable expirations ExpiresActive On # Default directive ExpiresDefault "access plus 1 month" # My favicon ExpiresByType image/x-icon "access plus 1 year" # Images ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" # CSS ExpiresByType text/css "access plus 1 month" # Javascript ExpiresByType application/javascript "access plus 1 year"

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

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

Prefetch обычно используемых доменов

Prefetching – это нечто сходное кэшированию в том смысле, что вы тоже говорите браузеру, типа Chrome, что нужно найти DNS-настройки перед тем, как они на самом деле понадобятся. Благодаря этому «прошиваются» страницы и запросы любых prefetched-доменов, которые еще не кэшируются, и они начинают работать быстрее.

Вы можете использовать prefetch для доменов в WordPress, добавив синтаксис домена в ваш файл header.php между тегами . Этот процесс не блокируются и будет включаться только тогда, когда возможно. Вот распространенные примеры.

Prefetch Google шрифты:

Prefetch Google код (jQuery)

Prefetch Google Analytics

Удаляем Query Strings из статичных ресурсов

Также можно извлечь пользу из удаления query strings из ваших статичных ресурсов, так как они могут приводить к возникновению проблем с прокси кэша и CDN. В WordPress для этого есть парочка опций.

Отредактируйте ваш файл functions.php , чтоб включить туда функцию, которая удалит query strings.

Function _remove_script_version($src){ $parts = explode("?ver", $src); return $parts; } add_filter("script_loader_src", "_remove_script_version", 15, 1); add_filter("style_loader_src", "_remove_script_version", 15, 1);

Если вы используете плагин кэширования типа W3 Total Cache, то у вас есть опция, которая предотвращает создание query strings. Есть бесплатные WordPress-плагины, которые также могут удалить query strings, и это плагины Query Strings Remover и .

3. Внедрение сети доставки содержимого (Content Delivery Network)

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

Загрузка всех ассетов из WordPress CDN

Убедитесь в том, что вы загружаете даже самые мелкие файлы, типа фавикона, из вашей CDN. Если загружено все из CDN, то создается одно единое соединение. Чтобы твикнуть ваш фавикон, просто киньте его в корневой каталог вашей инсталляции WordPress с помощью FTP, а затем добавить следующее в ваш header.php между тегами head.

Как вы видите из примера ниже, загружено 100% ваших ассетов из CDN.

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

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

Отключение и ограничение количества версий постов в WordPress

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

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

Отключение создания версий WordPress-постов

Чтоб отключить создание версии постов в WordPress, вам нужно добавить следующий код в ваш файл wp-config.php . Таким образом вы сначала измените интервал авто сохранения по умолчанию с 60 секунд на 5 минут, а затем и вовсе отключите создание версий записей. По умолчанию останется одно авто сохранение на пост.

Define("AUTOSAVE_INTERVAL", 300); // seconds define("WP_POST_REVISIONS", false);

Также есть бесплатный маленький плагин, который называется Disable Post Revision . Он делает тоже самое без необходимости копаться в коде.

Ограничение количества сохраненных версий WordPress-постов

Чтоб ограничить количество создаваемых версий WordPress-постов, вам нужно добавить следующий код в ваш файл wp-config.php. Таким образом вы измените интервал авто сохранения по умолчанию с 60 секунд на 5 минут и ограничите количество создаваемых версий до трех. Впрочем, вы можете указать любое желаемое количество сохраняемых версий.

Define("AUTOSAVE_INTERVAL", 300); // seconds define("WP_POST_REVISIONS", 3);

Удаление старых версий постов из вашей базы данных

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

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

Предупреждение об ограничении WordPress в 100 сраниц

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

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

Решение? Вам нужно начать использовать кастомные типы записей. Вы можете использовать бесплатный плагин типа Post Type Switcher , если у вас много страниц, и вы хотите конвертировать их в кастомные типы записей.

5. Оптимизируйте картинки, используя компрессию без потерь

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

6. Компрессия Gzip

18. Выберете надежный веб-хостинг

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

О наиболее бюджетных и провернных в .