Приветствую всех, кто ведет свой блог на WordPress. В этой теме я дам несколько советов о том, как ускорить WordPress блог. Наверняка многие из вас об этом задумываются. В первую очередь нужно думать о посетителях, а они не любят ждать, если ваш блог загружается медленно. Читал на каком-то иностранном авторитетном ресурсе о том, что каждые 0,5 секунды загрузки страниц, теряются от 20% посетителей. А еще, если снизить скорость загрузки портала Amazon,будет потеряна прибыль в 1%. И я с этим полностью согласен, да и вы наверное тоже. Прежде чем ускрорять WordPress, нам нужно проверить скорость загрузки сайта. Для этого можно воспользоваться сервисом. Для наглядности — вот мои показатели на сегодняшний день. Откроется в новом окне.
Нужно стараться, чтобы время загрузки не превышало 1 секунды. Если у вас этот показатель больше, то читаем дальше. 🙂 Для более детального анализа скорости загрузки сайта рекомендую еще один сервис. Он покажет вам с какой скоростью загружается каждый отдельный элемент и будет понятно, над чем именно нужно поработать, чтобы ускорить WordPress. Исследуйте ваш ресурс с помощью сервисов до оптимизации и после и сравните результаты.
1. Выбор сервера.
Это наверное первоочередная задача перед тем, как ускорить работу WordPress. От того, какой производительности сервер, на котором располагается ваш блог, зависит скорость его загрузки в браузер и бесперебойная работа (uptime). Чтобы оценить нагрузку на сервер, рассмотрим некоторые виды хостинга.
Shared Hosting — На одном сервере может располагаться 500 и даже 1000 клиентов. Сайтов конечно гораздо больше.
VPS — Сервер расчитан на небольшое количество людей. Порядка 20 человек.
Dedicated — индивидуальный сервер, который будете использовать только вы.
Выбирайте мощные сервера. Посмотрите как работают на них другие площадки, почитайте отзывы.
2. Удаление ненужных плагинов
Основным тормозом, чтобы ускорить загрузку сайта являются плагины. Посмотрите сколько у вас их установлено. Если больше 10, то спросите себя, все ли они вам нужны. По возможности избавляйтесь от них. Я уверен, большинство из них необязательные. Рекомендую вместо плагинов встраивать PHP код непосредственно в тему оформления. По этому поводу в интернете есть целые мануалы. Опытные веб-мастера стараются избавится от плагинов и необходимый PHP код вставляют в файлы темы. Это занятие конечно для более опытных, но если делать все по инструкции, то получится и у новичка. Это позволит существенно ускорить загрузку WordPress сайта. Может напишу скоро что-нибудь подобное. 😉
3. Удаление ненужных тегов PHP
Если вы не сами делали тему, то открываем в административной части блога Внешний вид-Редактор-файл header.php на редактирование и смотрим, что у нас там есть. Если вы видите что-то типа этого:
Если вы в чем-то сомневаетесь, то откройте любую страницу своего блога. Нажмите на клавиатуре Ctrl + U и в самом верху смотрим, что у вас написано в исходном коде. Можно просто скопировать эти самые строчки, которые браузер отобразил уже в HTML формате и вставить в header.php
Копируем их и вставляем вместо тех, которые написаны на PHP. Можно попробовать скопировать все, что находится между тегами
<head></head>
<head></head>
и заменить их на HTML.
Перед тем, как изменять файлы шаблона, нужно предварительно сделать резервные копии для того, чтобы вернуть все на свои места, если вдруг пойдет что-то не так.
Удаляем в header.php все лишние пробелы. Тем самым мы уменьшили количество запросов, чтобы ускорить загрузку.
4. Используйте кэширование страниц
Для этого подойдет WordPress плагин WP Super Cashe, он поможет хорошо ускорить сайт. Но мы с вами стремимся использовать минимальное количество плагинов, поэтому есть способ от него отказаться. Решением является установка скрипта My-Cashe. Я бы сказал, что он даже лучше, чем все плагины кэшироавания вместе взятые, потому как очень сильно снижает нагрузку на сервер и одновременно кэширует. Установка скрипта не совсем стандартная, но есть инструкция, разобраться можно. Если что-то будет непонятно, пишите вопросы в комментариях.
Так же нужно включить кэширование сайта браузером. Делается это вставкой кода в .htaccess, находящийся в корне WP директории на сервере. Если у вас его нет, то создайте его и внесите следующие строки:
1
2
3
4
5
6
7
FileETag MTime Size
<ifmodule mod_expires.c><filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"</filesmatch></ifmodule>
FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>
Не думаю, что этот хак сильно повлияет на скорость загрузки, может быть немного ускорит, но снизит нагрузку на сервер точно.
5. Оптимизируйте базу данных
Также не рекомендую использовать для этих целей плагины. Все можно сделать вручную. Как именно, читайте в этой статье. Если по каким-то причинам у вас нет доступа к базе данных, то те же самые действия выполняет плагин Optimize DB. О том, как провести тотальную оптимизацию базы данный, написано здесь.
6. Оптимизируйте все изображения
Размер картинок на сайте имеет важное значение и может стать одним из основных преткновений, чтобы ускорить WordPress блог. Избегайте больших изображений с высоким разрешением, они очень долго грузятся. Посетитель может не дождаться и закроет вкладку. Для оптимизации картинок можно воспользоваться специальными сервисами, а также специальными программами по оптимизации изображений. Одну из них можно скачать здесь. Называется Image Optimizer.
7. Сжать и объединить CSS и JS код
Для того, чтобы сжать CSS и JavaScript код нужно воспользоваться специальными сервисами. Для сжатия CSS кода. Для сжатия JS кода Еще один. (Не поверял. Проверите, расскажете. :)).
Установить плагин для сжатия CSS и JS под названием WP-Minify. Если к вашей теме подключено несколько CSS файлов, например print.css или специально предназначенный для браузера IE-8. Можно объединить все файлы в один, скопировав весь код и переместив его в основной style.css. Остальные можно будет удалить и в header.php нужно будет убрать подключаемые стили. К примеру такой:
После объединения файлов, некоторые товарищи рекомендуют подключить их через футер. То есть вставить вызов этих файлов в подвал сайтов. Подразумевается, что они в этом случае начинают загружаться первыми. Мной замечено не было. Может в совокупности всех действий и будет какое-то ускорение.
8. Всегда обновляйте WP до последней версии
С каждой новой версией разработчики WP стараются улучшить движок, сделав его быстрым, функциональным и максимально удобным для пользователя. Регулярное обновление WordPress позволит избежать непредвиденных сбоев в работе
9. Отключение Hotlink’а
Не все наверное знают что такое Hotlink, но постараюсь объяснить. Hotlink-это размещение картинок, которые лежат у вас на, сервере, на других ресурсах. Другими словами, кто-то просто берет и копирует вашу статью вместе с изображением и вставляет ее на свой сайт. Она будет висеть на его странице, а располагаться на вашем сервере. Если множество картинок таким образом размещено без вашего метода, это создает дополнительную нагрузку на сервер, что не есть хорошо. Не скажу, что этот пункт нужно выполнять в обязательном порядке, но все же может кому-то пригодится. В основном это касается крупных сайтов с большой посещаемостью, которых нужно ускорить. Решение такое, нужно опять в файл .htaccass занести этот код:
В третьей строчке замените yourdomain.com на имя вашего сайта? а в пятой — http://www.yourdomain.com/nohotlink.gif-ссылка на картинку-заглушку. То есть, где раньше были размещены изображения с вашего сайта, будет показываться специально подготовленная картинка. Это может быть как реклама вашего блога, так и уведомление о том, что вы отключили хотлинки.
10. Картинки на поддомене
Если разместить все картинки на поддомен, то нагрузка на сайт снизится, за счет ее распределения, что хорошо повлияет на Ускорение WordPress. Если у вас много графических элементов, например фотографии, то данный способ должен помочь снизить нагрузку.
Потребуется создать поддомен, например images.yourdomain.com. Первое, что нам нужно, это узнать абсолютный путь до директории сохранения всей графики. Можно посмотреть его в админ. панели хостинга, но если нет такой возможности, то в корне поддомена создайте файл с расширением PHP, например info.php и добавить в него этот код:
1
2
3
4
< ?php
$p=getcwd();echo$p;?>
< ?php
$p = getcwd();
echo $p;
?>
Затем в браузере наберите путь до этого файла. На экране появится полный путь, который нам и нужен. Перепишите его, он нам пригодится, а info.php можно удалить. Копируем папку uploads и переносим ее на поддомен. Изменяем пути до картинок в базе данных. Для этого идем в PhpMyAdmin, выбираем БД вкладка SQL в поле пишем следующий код:
1
2
UPDATE wp_posts SET post_content = REPLACE(post_content,'http://yourdomain.com/wp-content/uploads/','http://images.yourdomain.com/')
UPDATE wp_posts SET guid = REPLACE(guid,'http://yourdomain.com/wp-content/uploads/','http://images.yourdomain.com/')
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com/wp-content/uploads/','http://images.yourdomain.com/')
UPDATE wp_posts SET guid = REPLACE(guid, 'http://yourdomain.com/wp-content/uploads/','http://images.yourdomain.com/')
В административной части WordPress идем в Параметры-Медиафайлы и пописываем Полный URL-путь к файлам, который скопировали ранее. Сохраняем. О том, что у вас изменились пути к картинкам нужно оповестить поисковые системы. Снова открываем на редактирование файл .htaccess и пишем функцию перенаправления:
Не забывайте указывать имя своего домена вместо того, который указан в качестве примера. Префикс базы данных может тоже отличаться от вашей. Имейте это в виду.
Папку uploads с основного домена можно удалить.
Заключение
Путем экспериментов я оптимизировал свой блог и достиг таких результатов:
Если скорость загрузки вашего блога оставляет желать лучшего, то нужно над этим поработать, а если все в порядке, то не стоит. Хотя, для практики будет полезно. 😉
Александр, спасибо за такой тщательный и полезный обзор способов оптимизации! До сих пор попадались статьи, в которых уделялось внимание какому-либо одному направлению. У Вас же просто инструкция по применению! 🙂
Спасибо!
Чтобы снизить показатель отказов, следует максимально уменьшить время загрузки сайта. Специально для таких целей существует множество программ и расширений, которые определяют скорость загрузки сайта и дают ценные советы по оптимизации. Далее приведены наиболее популярные ресурсы.
Недавно нашел один замечательный сервис по оптимизации PNG изображений. Конвертирует PNG-24 в PNG-8 практически без потери качества. Вернее потеря есть, но ее не видно. У меня получалось сократить размер картинки до 83%. Это супер, рекомендую. Вот этот сервис: tinypng.org А вот скриншот по оптимизации некоторых PNG файлов. Этот скриншот был тоже обработан через этот сервис и дал результат в 87%!!!. С 217.5 KB до 27.6 KB. Разницы я не заметил.
Актуальная для меня статья, плагинов конечно многовато наставил, а всё из за незнания HTML((( Буду по Вашим рекомендациям всё таки заменять их на коды…
выдает ошибку в базе данных #1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘UPDATE wp_posts SET guid = REPLACE(guid, ‘http://radostsvet.ru/wp-content/upload’ at line 2
сделал так
UPDATE wp_posts SET post_content = REPLACE(post_content, ‘http://radostsvet.ru/wp-content/uploads/’,’http://images.radostsvet.ru/’)
UPDATE wp_posts SET GUID-(заменил на заглавные) = REPLACE(GUID, ‘http://radostsvet.ru/wp-content/uploads/’,’http://images.radostsvet.ru/’)
Александр, спасибо! Мега-статья.. Очень актуальная, для меня в частности (больше 1,5 сек, а вердикт Alexa — Slow). В принципе, знаю основные «места» у себя, что исправить нужно, но в статье еще и дополнительные моменты указаны. Взял на вооружение 🙂
Если заняться ускорением блога с помощью тяжелой артиллерии (оптимизация вебсервера, php, субд), до добиться можно весьма интересных показателей. Но пренебрегать настройками самого WP тоже не стоит.
тоже верно. но когда с помощью, к примеру, nGinx кэшировать страницу целиком, то скорость отдачи будет меньше, чем результат всех вышеперечисленных действий)
Например, я смог ускорить блог в три раза благодаря этим фишкам и сейчас хочу поделиться этим с Вами. Ускорение блога на самом деле очень важно, ведь если ваш блог будет долго грузится, то посетители, не дождавшись загрузки будут с него уходить.
Спасибо! Узнал кое-что новое для себя! 😈
Пожалуйста. Я тоже раньше многого не знал.. 😉
Реально полезная статья! Надо будет тоже заняться всеми этими процедурами, чтобы ускорить свой сайт)
Отличный материал. Нужно обязательно применить на практике в своем блоге. Автору спасибо. 😎
Попробуйте. Потом расскажете, что у вас получилось.
спасибо за информацию. буду разбираться.
Если скорость загрузки вашего блога оставляет желать лучшего, то нужно над этим поработать, а если все в порядке, то не стоит. Хотя, для практики будет полезно. 😉
Александр, спасибо за такой тщательный и полезный обзор способов оптимизации! До сих пор попадались статьи, в которых уделялось внимание какому-либо одному направлению. У Вас же просто инструкция по применению! 🙂
Спасибо!
Пожалуйста, Юрий. Мне интересно, чтобы кто-нибудь тоже попробовал эти методы. Интересно узнать о результатах.
Спасибо за информацию, только я боюсь убирать чтото лишнее.
Не бойтесь экспериментировать. Сделайте резервные кропии файлов, чтобы потом можно быдло вернуть все на место, как было.
Объясните для чайника,сервер и хостинг это одно и тоже?
По сути, да.
Чтобы снизить показатель отказов, следует максимально уменьшить время загрузки сайта. Специально для таких целей существует множество программ и расширений, которые определяют скорость загрузки сайта и дают ценные советы по оптимизации. Далее приведены наиболее популярные ресурсы.
Недавно нашел один замечательный сервис по оптимизации PNG изображений. Конвертирует PNG-24 в PNG-8 практически без потери качества. Вернее потеря есть, но ее не видно. У меня получалось сократить размер картинки до 83%. Это супер, рекомендую. Вот этот сервис: tinypng.org А вот скриншот по оптимизации некоторых PNG файлов. Этот скриншот был тоже обработан через этот сервис и дал результат в 87%!!!. С 217.5 KB до 27.6 KB. Разницы я не заметил.
Спасибо. Пробовал ускорить свой блог, стал загружаться за две секунды, но с вашими методами попробую ускорить еще. Удачи вам.
Даже 2 секунды-это много..
включить кэширование сайта браузером — в каком месте файла .htaccess нужно внести добавочныестрочки?
Добавляйте в конец перед этойстрочкой:
# END WordPress
Если ее нет, то просто в конец всех записей этого файла.
Актуальная для меня статья, плагинов конечно многовато наставил, а всё из за незнания HTML((( Буду по Вашим рекомендациям всё таки заменять их накоды…
Давайте, давайте, много плагинов это не есть хорошо. 😉
Здравствуйте как вот обратно сделать по базе данных
UPDATE wp_posts SET post_content = REPLACE(post_content, ‘http://yourdomain.com/wp-content/uploads/’,’http://images.yourdomain.com/’)
UPDATE wp_posts SET guid = REPLACE(guid, ‘http://yourdomain.com/wp-content/uploads/’,’http://images.yourdomain.com/’)
не чего не получилось картинки изчезли помогите
Вместо yourdomain.com у вас название вашего домена написано?
да
выдает ошибку в базе данных #1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘UPDATE wp_posts SET guid = REPLACE(guid, ‘http://radostsvet.ru/wp-content/upload’ at line 2
сделал так
UPDATE wp_posts SET post_content = REPLACE(post_content, ‘http://radostsvet.ru/wp-content/uploads/’,’http://images.radostsvet.ru/’)
UPDATE wp_posts SET GUID-(заменил на заглавные) = REPLACE(GUID, ‘http://radostsvet.ru/wp-content/uploads/’,’http://images.radostsvet.ru/’)
получил #1046 — No database selected
отбой удалите сообщения
нужно сначала выбрать базу. `use databasename;` а потом уже творить чудеса.
Александр, спасибо! Мега-статья.. Очень актуальная, для меня в частности (больше 1,5 сек, а вердикт Alexa — Slow). В принципе, знаю основные «места» у себя, что исправить нужно, но в статье еще и дополнительные моменты указаны. Взял на вооружение 🙂
Всегда пожалуйста. Я старался. 🙂
Если заняться ускорением блога с помощью тяжелой артиллерии (оптимизациявебсервера, php , субд), до добиться можно весьма интересных показателей. Но пренебрегать настройками самого WP тоже не стоит.
Везде по чуть-чуть настроить и будет нормально. 🙂
тоже верно. но когда с помощью, к примеру, nGinx кэшировать страницу целиком, то скорость отдачи будет меньше, чем результат всех вышеперечисленных действий)
т.е. не скорость, а время, естественно.
Зависит конечно насколько объемный сайт. Если небольшой, то особо кэшировать-то нечего.
Например, я смог ускорить блог в три раза благодаря этим фишкам и сейчас хочу поделиться этим с Вами. Ускорение блога на самом деле очень важно, ведь если ваш блог будет долго грузится, то посетители, не дождавшись загрузки будут с него уходить.
Очень полезная и нужная статья. Спасибо.