10 способов ускорить WordPress блог

Октябрь 16, 2012   Александр Маврин   37 комментариев

Иконка WordPress

Приветствую всех, кто ведет свой блог на WordPress. В этой теме я дам несколько советов о том, как ускорить WordPress блог. Наверняка многие из вас об этом задумываются. В первую очередь нужно думать о посетителях, а они не любят ждать, если ваш блог загружается медленно. Читал на каком-то иностранном авторитетном ресурсе о том, что каждые 0,5 секунды загрузки страниц, теряются от 20% посетителей. А еще, если снизить скорость загрузки портала Amazon,будет потеряна прибыль в 1%. И я с этим полностью согласен, да и вы наверное тоже. Прежде чем ускрорять WordPress, нам нужно проверить скорость загрузки сайта. Для этого можно воспользоваться сервисом. Для наглядности — вот мои показатели на сегодняшний день. Откроется в новом окне.

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

Нужно стараться, чтобы время загрузки не превышало 1 секунды. Если у вас этот показатель больше, то читаем дальше. 🙂 Для более детального анализа скорости загрузки сайта рекомендую еще один сервис. Он покажет вам с какой скоростью загружается каждый отдельный элемент и будет понятно, над чем именно нужно поработать, чтобы ускорить WordPress. Исследуйте ваш ресурс с помощью сервисов до оптимизации и после и сравните результаты.

server 1. Выбор сервера.

Это наверное первоочередная задача перед тем, как ускорить работу WordPress. От того, какой производительности сервер, на котором располагается ваш блог, зависит скорость его загрузки в браузер и бесперебойная работа (uptime). Чтобы оценить нагрузку на сервер, рассмотрим некоторые виды хостинга.

Shared Hosting — На одном сервере может располагаться 500 и даже 1000 клиентов. Сайтов конечно гораздо больше.


VPS — Сервер расчитан на небольшое количество людей. Порядка 20 человек.


Dedicated — индивидуальный сервер, который будете использовать только вы.


Выбирайте мощные сервера. Посмотрите как работают на них другие площадки, почитайте отзывы.

Иконка корзины2. Удаление ненужных плагинов

 Основным тормозом, чтобы ускорить загрузку сайта являются плагины. Посмотрите сколько у вас их установлено. Если больше 10, то спросите себя, все ли они вам нужны. По возможности избавляйтесь от них. Я уверен, большинство из них необязательные. Рекомендую вместо плагинов встраивать PHP код непосредственно в тему оформления. По этому поводу в интернете есть целые мануалы. Опытные веб-мастера стараются избавится от плагинов и необходимый PHP код вставляют в файлы темы. Это занятие конечно для более опытных, но если делать все по инструкции, то получится и у новичка. Это позволит существенно ускорить загрузку WordPress сайта. Может напишу скоро что-нибудь подобное. 😉

php3. Удаление ненужных тегов PHP

Если вы не сами делали тему, то открываем в административной части блога Внешний вид-Редактор-файл header.php на редактирование и смотрим, что у нас там есть. Если вы видите что-то типа этого:

<meta name="generator" content="WordPress <?php bloginfo('version'); ?/>" />

То эту конструкцию можно смело удалять, так как она говорит о версии вашего движка. Эта информация лишняя, она никому не нужна. Далее смотрим:

1
2
3
4
5
<title>< ?php bloginfo('name'); ?> < ?php bloginfo('description');?></title>
<link rel="shorcut icon" type="image/x-ico" href="&lt?php bloginfo('template_url'); ?/>/favicon.jpg" />
<link rel="stylesheet" type="text/css" media="screen" href="<?php bloginfo('stylesheet_url'); ?/>"/>
<link rel="stylesheet" type="text/css" media="print" href="<?php bloginfo('template_url'); ?/>/print.css" />
<link rel="alternate" type="application/rss+xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?/>" />


Все это содержимое можно заменить, только на формат HTML:

1
2
3
4
5
<title>Название вашего блога</title>
<link rel="shorcut icon" type="image/x-ico" href="http://ваш_сайт/wp-content/themes/название_темы/favicon.jpg" />
<link rel="stylesheet" type="text/css" media="screen" href="http://ваш_сайт/wp-content/themes/название_темы/style.css"/>
<link rel="stylesheet" type="text/css" media="print" href="http://ваш_сайт/wp-content/themes/название_темы/print.css" />
<link rel="alternate" type="application/rss+xml" title="RSS .92" href="http://ваш_сайт/feed/rss/" />

Если вы в чем-то сомневаетесь, то откройте любую страницу своего блога. Нажмите на клавиатуре Ctrl + U и в самом верху смотрим, что у вас написано в исходном коде. Можно просто скопировать эти самые строчки, которые браузер отобразил уже в HTML формате и вставить в header.php
Копируем их и вставляем вместо тех, которые написаны на PHP. Можно попробовать скопировать все, что находится между тегами

<head></head>

и заменить их на HTML.

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

Удаляем в header.php все лишние пробелы. Тем самым мы уменьшили количество запросов, чтобы ускорить загрузку.

cashing4. Используйте кэширование страниц

Для этого подойдет 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>

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

database5. Оптимизируйте базу данных

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

jpg6. Оптимизируйте все изображения

Размер картинок на сайте имеет важное значение и может стать одним из основных преткновений, чтобы ускорить WordPress блог. Избегайте больших изображений с высоким разрешением, они очень долго грузятся. Посетитель может не дождаться и закроет вкладку. Для оптимизации картинок можно воспользоваться специальными сервисами, а также специальными программами по оптимизации изображений. Одну из них можно скачать здесь. Называется Image Optimizer.

zip7. Сжать и объединить CSS и JS код

Для того, чтобы сжать CSS и JavaScript код нужно воспользоваться специальными сервисами.
Для сжатия CSS кода.
Для сжатия JS кода
Еще один. (Не поверял. Проверите, расскажете. :)).
Установить плагин для сжатия CSS и JS под названием WP-Minify. Если к вашей теме подключено несколько CSS файлов, например print.css или специально предназначенный для браузера IE-8. Можно объединить все файлы в один, скопировав весь код и переместив его в основной style.css. Остальные можно будет удалить и в header.php нужно будет убрать подключаемые стили. К примеру такой:

<link rel="stylesheet" href="/wp-content/themes/Theme/screen.css" type="text/css" media="screen" />

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

new 8. Всегда обновляйте WP до последней версии

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

ссылка 9. Отключение Hotlink’а

Не все наверное знают что такое Hotlink, но постараюсь объяснить. Hotlink-это размещение картинок, которые лежат у вас на, сервере, на других ресурсах. Другими словами, кто-то просто берет и копирует вашу статью вместе с изображением и вставляет ее на свой сайт. Она будет висеть на его странице, а располагаться на вашем сервере. Если множество картинок таким образом размещено без вашего метода, это создает дополнительную нагрузку на сервер, что не есть хорошо. Не скажу, что этот пункт нужно выполнять в обязательном порядке, но все же может кому-то пригодится. В основном это касается крупных сайтов с большой посещаемостью, которых нужно ускорить. Решение такое, нужно опять в файл .htaccass занести этот код:

1
2
3
4
5
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
#RewriteRule \.(gif|jpg)$ - [F]
RewriteRule \.(gif|jpg)$ http://www.yourdomain.com/nohotlink.gif [R,L]

В третьей строчке замените 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;
?>

Затем в браузере наберите путь до этого файла. На экране появится полный путь, который нам и нужен. Перепишите его, он нам пригодится, а 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/')

В административной части WordPress идем в Параметры-Медиафайлы и пописываем Полный URL-путь к файлам, который скопировали ранее. Сохраняем. О том, что у вас изменились пути к картинкам нужно оповестить поисковые системы. Снова открываем на редактирование файл .htaccess и пишем функцию перенаправления:

RedirectMatch 301 ^/wp-content/uploads/(.*)$ http://image.yourdomain.com/$1

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

Папку uploads с основного домена можно удалить.

Заключение

Путем экспериментов я оптимизировал свой блог и достиг таких результатов:

  • В 3 раза удалось ускорить WordPress блог
  • Нагрузка на сервер снизилась вдвое
  • Увеличилась посещаемость с поисковых систем (примерно в 2 раза)
  • Процент отказов стал гораздо ниже
  • Увеличилось количество просмотренных страниц
  • Увеличилось общее время, проведенное на блоге пользователем

Судите сами, насколько это хорошо и надо ли это вашему блогу. О своих успехах пишите в комментариях.

Понравился блог? Хотите бесплатно получать интересные материалы? Тогда рекомендую подписаться на рассылку. Буду рад знакомству. подписаться

Не стесняйтесь делиться записью в социальных сетях. Спасибо


37 комментариев
  1. Спасибо! Узнал кое-что новое для себя! 😈

  2. Реально полезная статья! Надо будет тоже заняться всеми этими процедурами, чтобы ускорить свой сайт)

  3. Отличный материал. Нужно обязательно применить на практике в своем блоге. Автору спасибо. 😎

  4. спасибо за информацию. буду разбираться.

    • Если скорость загрузки вашего блога оставляет желать лучшего, то нужно над этим поработать, а если все в порядке, то не стоит. Хотя, для практики будет полезно. 😉

  5. Александр, спасибо за такой тщательный и полезный обзор способов оптимизации! До сих пор попадались статьи, в которых уделялось внимание какому-либо одному направлению. У Вас же просто инструкция по применению! 🙂
    Спасибо!

  6. Спасибо за информацию, только я боюсь убирать чтото лишнее.

  7. tatyana:

    Объясните для чайника, сервер и хостинг это одно и тоже?

  8. corp:

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

  9. Недавно нашел один замечательный сервис по оптимизации PNG изображений. Конвертирует PNG-24 в PNG-8 практически без потери качества. Вернее потеря есть, но ее не видно. У меня получалось сократить размер картинки до 83%. Это супер, рекомендую. Вот этот сервис: TinyPng А вот скриншот по оптимизации некоторых PNG файлов. Этот скриншот был тоже обработан через этот сервис и дал результат в 87%!!!. С 217.5 KB до 27.6 KB. Разницы я не заметил.

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

  11. включить кэширование сайта браузером — в каком месте файла .htaccess нужно внести добавочные строчки?

  12. Актуальная для меня статья, плагинов конечно многовато наставил, а всё из за незнания HTML((( Буду по Вашим рекомендациям всё таки заменять их на коды…

  13. максим:

    Здравствуйте как вот обратно сделать по базе данных

    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

  14. Александр, спасибо! Мега-статья.. Очень актуальная, для меня в частности (больше 1,5 сек, а вердикт Alexa — Slow). В принципе, знаю основные «места» у себя, что исправить нужно, но в статье еще и дополнительные моменты указаны. Взял на вооружение 🙂

  15. Если заняться ускорением блога с помощью тяжелой артиллерии (оптимизация вебсервера, php, субд), до добиться можно весьма интересных показателей. Но пренебрегать настройками самого WP тоже не стоит.

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

  17. Очень полезная и нужная статья. Спасибо.

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

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