Привет всем, думаю многие знают, что скорость загрузки сайта влияет на выдачу в гугле. Поэтому я решил заняться оптимизацией своего блога. Тем более WordPress сам по себе тяжелый, так и шаблон у меня оказался не из легких. С использованием ява скриптов и других ненужных функций.
В этой статье постараюсь рассказать, что я сделал со своим блогом, чтобы максимально ускорить его загрузку. Получилось ускорить где-то в 10 раз, что меня вполне устраивает. До оптимизации скорость загрузки была где-то 15-20 секунд, сейчас 2-3 секунды. Скорость загрузки блога проверял плагином Firebug для мазиллы.
Чистим базу данных
База данных имеет свойство засоряться сохраненными копиями статей. Со временем это начинает влиять на скорость загрузки сайта. Чтобы почистить базу данных необходимо зайти в админку, у меня это cPanel > phpMyAdmin > «Название базы» > Вкладка «SQL» > Там будет поле в котором необходимо вставить такой запрос:
DELETE FROM wp_posts WHERE post_type =»revision»;
И нажать ОК, после этого база будет очищена. На всякий случайно перед чисткой сохраните базу данных на у себя на компьютере.
Перед чисткой моя база весила 1.1 мб, после чистки стала весить 300 кб! Как видите очистка базы имеет смысл, так что советую и вам почистить свою базу.
Чистим шапку
С шапкой (Header.php) я провозился больше всего времени, пока не удалил от туда всё что только можно. Во первых я удалил все запросы к базе данных и прописал прямые пути.
Допустим был такой запрос к базе для CSS:
<link rel=»stylesheet» href=»<?php bloginfo(‘stylesheet_url’); ?>» type=»text/css» media=»screen» />
Я сделал такой путь:
<link rel=»stylesheet» href=»/wp-content/themes/statement/style.css»>
Причем нужно указывать путь без домена сайта, как на примере, это тоже ускоряет загрузку.
Ещё пример запроса кодировки блога:
charset=<?php bloginfo(‘charset’); ?>»
Я сделал так:
charset=»UTF-8″
Так же большую нагрузку делали ява скрипты, которые загружали сайтбар. Я решил упростить сайтбар, отключить скрипты, поэтому удалил вкладки «Комментарии» и «Архив» из файла sidebar.php. Осталась одна вкладка «Последние посты», которая не требует скриптов. После этого я удалил из шапки все запросы которые подгружали ява скрипты, а именно:
<script type=»text/javascript» src=»<?php bloginfo(‘template_directory’); ?>/tabber.js»></script>
<script type=»text/javascript»>document.write(‘<style type=»text/css»>.tabber{display:none;}<\/style>’);</script>
Теперь сайтбар загружается без ява скриптов. Эти запросы сильно снижали скорость загрузки блога, но при этом не играли никакую роль! После отключения ява скриптов, загрузка ускорилась почти в 2 раза, а на блоге ничего не изменилось!
После этого я протестировал все остальные запросы, которые были в шапке и оказалось, что они в принципе не особо важны и я решил их удалить. На этом скриншоте можете посмотреть, что было до и после чистки шапки.
Убираем ненужное
Есть различные плагины которые могут сильно затормаживать скорость загрузки блога. На моём опыте я понял, что самым тормозящим плагином является плагин ретвита. Этот плагин выводит кнопку ретвита в каждом посте на главной странице, это и тормозит загрузку.
Как решить эту проблему? Очень просто, советую поставить плагин tweetmeme и в настройках убрать галочку: «Display the button on the front page (home)». Это означает, что кнопки ретвита будут только на внутренних страницах блога, что является приемлемым решением проблемы.
Кнопки и различные счетчики так же тормозят загрузку, поэтому советую не заполонять свой сайт этим мусором. Но всё же некоторые счетчики необходимы и поэтому я решил перенести все необходимые счетчики на отдельную страницу Реклама.
Кэшируем сайт
Я думаю многие знают, что такое кэширование, это когда плагин сохраняет копию вашей страницы у себя в папке и тем самым ускоряет следующие загрузки этой страницы, тем самым снижается количество запросов к базе данных, что благотворно влияет на нагрузку сервера.
Я пробовал 2 плагина кэширования Hyper Cache и Super Cache, скажу честно, что второй мне больше понравился своей мобильностью и простатой. Кстати, чтоб вы знали, бывает такое, что меняешь на сайте что-то, обновляешь страницу и ничего не меняется! Это потому, что страница Закэширована и вам необходимо просто очистить кэш в настройках плагина!
К каждому шаблону нужно подходить индивидуально, у каждого свои плюсы и минусы, которые можно постараться устранить. Если хотите ускорить загрузку своего блога, то пишите мне в асю, постараюсь помочь чем смогу! :)
Если вам необходимы советы профессионалов по вопросам аудита, то советую эту компанию для решения своих проблем в области налогообложения и юриспруденции.
> «страница Закэширована и вам необходимо просто очистить кэш в настройках плагина!»
Спасибо, у меня была проблема именно в этом
Гоша — я первый раз долго мучился с этим кэшированием, сразу понял, что об этом надо упомянуть! :)
Отличная статья, проделаю то же самое у себя на блоге.
Считаю важным делом скорость загрузки, понятное дело контент, за ним и приходим на чужие блоги, но когда грузится долго, то интересные статьи и почитать не успеваю!
можно ещё оптимизировать графику под web и улучшить верстку загнав все параметры объектов в css
alchy — можно, если бы я знал как, то сделал бы!))
Не знал пор запрос в MySql сейчас попробую очистить, мне кажется там накопилось много разного и что исправить будет.
А у меня и без кэширования быстро работает. Может быть, дело в хостере?
Zuljin — у вас быстро грузится, потому что сам шаблон легкий и без наворотов!)
По-моему, чем проще шаблон сайта, тем лучше. Иногда реально «достает», когда куча картинок по несколько минут грузится.
Отличная статья, то что нужно, спасибо
хотя и не силен в хтмл и пхп, но попробуем что то сделать)
Про шапку и сайдбары не знал. В основном, все пишут только про кеширование и этим ограничиваются. Правда, для тех, кто слабо знаком с html, первый пункт будет сложным для понимания.
Хорошо бы если бы ты знал что очищаем тем sql запросом ))
Пока что не чувствуеться ни каких тормозов,блогу 1 месяц.Но всеравно спасибо за статью.
спасибо за статью и ответы в комментах. все вместе мне помогло блог оживить, думал уже все сносить и заново ставить, обошлось слава богу.
еще раз спасибо.
Интересная статья, попробую данные рецепты под движок Drupal приспособить
Отличный пост, данными методы позволят сократить расходы на хостинг) проверенно!
а как часто рекомендуете проводить чистку?
strikestar — зависит от того как часто вы пишите посты, думаю раз в 2-3 месяца нормально будет
будь это либо сайт либо блог нужно обьединить java и css скрипты и желательно все java перед закрытым body поставить также не помешает оптимизация фотографий.Советую page speed использовать для firefox
Сейчас и я устрою снос хлама на своих блогах. Спасибо за наВодку! :)
Nikolay — наВодку всегда рад дать!))
1. Для тех кто боится самостоятельно лезть в phpMyAdmin можно посоветовать плагин WP-Optimize: включаем, удаляем из БД ревизии постов и спам комментарии, отключаем. Соответсвенно ресурсов блога он не кушает (потому как постоянно включенным его нет смысла держать), а все ненужное удаляет одним щелчком мыши. В качестве плюшки — можно поменять логин администратора блога, чтобы потенциальным взломщикам, жизнь малиной не казалась.
2. Это в теории. Насколько я понимаю, в ВП есть функция которая всю информацию из базы грабит при загрузке страницы, а при использовании bloginfo(чтототам) мы информацию получаем уже непосредственно из функции а не из базы. Эксперименты на моем сайте это подтверждают, что до использования путей, что после, количество запросов никак не изменилось. С другой стороны, раз ничего плохого в этом не будет, то почему бы и не прописать, все равно делается это за пару минут. =)
3. Кстати, гасан дал ценный совет, вызов java-скриптов лучше производить в футере а не хидере. Результат можно увидеть на моем сайте: при входе контент появляется практически мгновенно (значит пользователь может уже приступать к ознакомлению), а по строке процесса загрузки видно, что скрипты продолжают потихоньку загружаться еще несколько секунд после этого (а их у меня чуть менее чем немеряно =) ).
4. Конечно дело вкуса, но я предпочитаю не TweetMeme, а TopSy. Мало того что он позволяет настроить тип\цвет кнопки и задать отступы с помощью стилей, но также, в настройках, одним щелчком, можно выбрать на каких страницах его оставить, а с каких убрать. В общем, куда более широкие возможности по тонкой настройке, да и TweetMeme более тяжеловесный, уж незнаю почему.
5. Со счетчиками это конечно так, но к сожалению не все можно сунуть на внутренние страницы. Те же счетчики посещений должны стоять на каждой. Кстати, можно добавить, что чем ближе к началу страницы стоит код счетчика, тем точнее он будет считать (именно поэтому так популярны двойные счетчики, в которых невидимую «счетную» часть можно без вреда для дизайна запихнуть в самый верх страницы, а саму иконку уже куда захочется).
6. Определение механизма кеширования конечно не совсем точное, но дело обстоит именно так. Использование кеширования, на данный момент, позволяет получить самый значительный прирост скорости загрузки.
Сама статья будет весьма полезна новичками, но конечно, приемов повышения скорости загрузки куда больше. И отключение автосохрания ревизий, и установка облегченного перевода, и использование бекграундных рисунков через css вместо вставленных с помощью img src. Вообщем, простор для творчества ограничен только фантазией.
2 Вячеслав: Вот когда количество уников дойдет до 500 — почувствуете. ;-)
P.S. Извиняюсь что двумя комментариями, но по другому не захотел ваш блог такой большой текст «схавать». =)
Узнал про скрипты в футере, и зачистке пары параметров в шапке.
Хотел добавить, что верстка на дивах, лучше чем на таблицах. Таблицу подружает, и дивы почти мгновенно выкатывает.
И маленький вопрос, по поводу скриптом и стилей, стоит ли, использовать плагины, для сжатия скриптов и стилей для дальнейшего вывода 1м файлом?